牛客练习赛133

news/2025/1/10 21:32:37/文章来源:https://www.cnblogs.com/maburb/p/18664754

A 万年沉睡的宝藏

题意:有一些岛和一些宝藏,都用字符串来描述,会有4个操作:给一个岛加一个宝藏,问这个岛有多少宝藏,某个宝藏是否在这个岛上,有多少岛上有至少一个宝藏。

用map存string和set就行了,注意特判没有这个岛的情况。

点击查看代码
void solve() {int q;std::cin >> q;std::map<std::string, std::set<std::string> > mp;while (q -- ) {int op;std::cin >> op;if (op == 1) {std::string s, t;std::cin >> s >> t;mp[s].insert(t);} else if (op == 2) {std::string s;std::cin >> s;int ans = mp.count(s) ? mp[s].size() : 0;std::cout << ans << "\n";} else if (op == 3) {std::string s, t;std::cin >> s >> t;int ans = mp.count(s) ? mp[s].count(t) : 0;std::cout << ans << "\n";} else {std::cout << mp.size() << "\n";}}
}

B 完美主义追求者

题意:给你a和b,求a个点的二叉树有多少个本质不同的,对b取模。

猜了一下是a的阶乘个,不会证明。
因为a很大,无法算阶乘,但注意b只有1e6,当a<b时暴力,否则a>=b时因为因子乘了一个b,模数肯定是0.
(赛时写的python,以为要用高精度算阶乘,结果wa了一发,后来发现正确做法后只需要随便改一下就行了,所以还是python代码)

点击查看代码
import matha, b = map(int, input().split());if a < b:ans = 1for i in range(1, a + 1):ans = ans * i % bprint(ans)
else:print(0)

C 异或与位移

题意:一个长度位n的数组a,和一个k,a的值在-k + 1到 k - 1之间,m个询问,给你一个二进制数y,它是由一个x变过来的:第i次变化中,如果\(a_i\) > 0就让x和x左移\(a_i\)位异或,否则和x右移\(a_i\)位异或。求这个x。

举个例子,对于一个二进制数abc(a, b, c等于0或1), 它左移2位等于110,那么就是c00 ^ abc = 110这是可以求出来abc的,先根据那几个0来确定后面几位,如何根据后面的数确定前面的数。右移一样的思路。

点击查看代码
void solve() {int n, m, k;std::cin >> n >> m >> k;std::vector<int> a(n);for (int i = 0; i < n; ++ i) {std::cin >> a[i];}while (m -- ) {std::string s;std::cin >> s;s = std::string(k - (int)s.size(), '0') + s;bool flag = true;for (int i = n - 1; i >= 0; -- i) {std::string t(k, '?');if (a[i] > 0) {for (int j = k - a[i]; j < k; ++ j) {t[j] = s[j];}for (int j = k - a[i] - 1; j >= 0; -- j) {if (t[j + a[i]] == '?') {flag = false;break;}t[j] = ((t[j + a[i]] ^ s[j]) & 1) + '0';}} else {for (int j = 0; j < -a[i]; ++ j) {t[j] = s[j];}for (int j = -a[i]; j < k; ++ j) {if (t[j + a[i]] == '?') {flag = false;break;}t[j] = ((t[j + a[i]] ^ s[j]) & 1) + '0';}}if (t.find('?') != t.npos) {flag = false;}if (!flag) {break;}s = t;// std::cout << s << "\n";}if (!flag) {std::cout << -1 << "\n";continue;}int p = s.find('1');if (p == s.npos) { std::cout << "0\n";} else {std::cout << s.substr(p) << "\n";}}
}

D 被拒绝在外的打卡

写麻了,每次wa一发后就发现了问题,前前后后de一个小时bug,最后还是没过,感觉应该还是思路的问题。
待补。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/867339.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

1.10日学习笔记之C++的类

类其实就是一种数据类型,和结构相似。类的成员包括两类,属性(成员变量)和行为(成员函数)。 成员函数定义的两种方法(可能有多种,觉得这两种比较常用) 1、将类的成员函数定义在类体内,如 class CPerson {public: short age;short getage(){return age;}};2、将类的成…

着火智能监测识别摄像机

着火智能监测识别摄像机利用了先进的图像处理技术和人工智能算法,能够快速、准确地检测环境中的着火点,从而及时采取必要的安全措施。其工作原理如下:首先,摄像机配备高清摄像头,能够实时捕捉并传输环境图像。这些图像通过内置的处理单元,进行高效处理和分析。其次,利用…

BurpSuite实操之测试器功能

对web应用程序进行自动化攻击。此功能有多种用途,如漏洞利用、模糊测试、进行暴力pojie等1、目标设置代理发送过来请求的目标主机及端口信息。 输入要攻击的目标及端口2、位置设置在这个模块可以设置攻击的参数,及攻击使用的类型(1)Sniper-狙击手(2)Battering ram-破城锤…

采沙船智能监测识别摄像机

采沙船智能监测识别摄像机还支持数据记录和分析功能,可以生成详尽的非法采沙统计报告和趋势分析,为河流管理决策提供科学依据。管理部门可以通过监控系统的数据分析,制定精准的禁采政策和优化河流资源管理,有效保护水域生态环境,防止非法采砂对生态系统的破坏。在实际应用…

C api简单查询需要的几步

C api查询简单需要的几步 1.准备sql语句 2.绑定变量 通过sqlstatement类bindout方法将查询出来的值与存储他们的变量绑定。 这里绑定是为了以后从结果集中提取一行时只需要一行就可以完成将提取出 来的变量赋值。 3.执行execute 在这一步将sql语句执行。在这里有几个重点 mysql…

iterm2

外观 这个github上的项目提供了很多主题 https://iterm2colorschemes.com/ 亮色主题感觉还可以的几个: OneHalfLight、BuiltinLight、BlulocoLight、Materil、ProLight、Tango Half Adapted 下面截图是基于 Tango Half Adapted用蓝色代替青色,黄色加深之后的效果(vim括号插件…

22. MDI窗口设计

一、什么是MDI窗口MDI 窗口(Multiple-Document Interface),又称多文档界面,它主要用于同时显示多个文档,每个文档显示在各自的窗口中。MDI 窗口中通常包含子菜单和窗口菜单,用于在窗口或文档之间进行切换。用 QMainWindow 建立的主界面,通常会同时建立或打开多个相互独立…

详解:订单履约系统规划

大家好,我是汤师爷~ 什么是订单履约系统? 订单履约是从消费者下单支付到收到商品的全流程管理过程,包括订单接收、订单派单、库存分配、仓储管理和物流配送等环节,核心目标是确保商品准时、准确地送达消费者手中。 通过订单履约系统,消费者可以实时了解商品的物流状态和预…

文件单独编译生成

编译设备树也最好在 source过的那个窗口中来编译错误提示如下: 同时在makefile文件修改时也要注意

In‐band Network Telemetry

#卫星 #遥测技术 #INT 一、INT是什么? INT,In‐band Network Telemetry ,带内网络遥监测。telemetry,英文原意是遥测技术。从其英文名称可以了解如下: a.In-band,说明监测指令及数据均在带内传输 b.telemetry ,说明是长距离,远程获取网络数据的方法。 想象一下卫星在…

潮汐指纹识别工具 : 在线网站识别利器

最近发现了一个免费在线收集网站信息的工具,感觉挺好用的,给各位推荐下。潮汐在线指纹识别是山东新潮信息技术有限公司安全团队提供的一个免费开源在线网站信息收集工具。 功能亮点: 全面扫描 只需输入目标网站的URL或IP地址,即可获取该网站的标题、中间件、操作系统、域名…

JAVA-Day 11:数组的静态初始化和遍历

数组的静态初始化和遍历 数组静态初始化格式 数组的静态初始化与遍历 完整格式:数据类型 [] 数组名=new 数据类型[]{元素1,元素2,元素3,....} 简化格式:数据类型 [] 数组名={元素1,元素2,元素3,....} []在数组名前后都可以 代码如下: int number[]={1,2,3,4,5};for (int …