01 2021 档案

摘要:很容易理解一道题目,分类讨论即可: 如果本身就是好序列,直接输出 111 与本身字符串。 如果不是,输出 222 并且输出该字符串的第一个(或者最后一个)字符然后空格,接着是后面的。 代码: #include <iostream> #include <algorithm> #include <str 阅读全文
posted @ 2021-01-27 21:41 HappyBobb 阅读(3) 评论(0) 推荐(0) 编辑
摘要:来个正则表达式做法,其实也是每个判断,因为只有 555 种可行方案,不用写那么多 if。 更多关于正则表达式的使用请看我的题解。 代码: #include <iostream> #include <string> #include <regex> using namespace std; stati 阅读全文
posted @ 2021-01-26 21:53 HappyBobb 阅读(5) 评论(0) 推荐(0) 编辑
摘要:这道题还有什么说明啊??? 本题只需要输出一下样例即可: #include <iostream> using namespace std; int main() { cout << R"(f(10) = MAGNA NIMIS! f(-9) = -3642.00 f(-8) = -2557.17 f 阅读全文
posted @ 2021-01-18 08:14 HappyBobb 阅读(1) 评论(0) 推荐(0) 编辑
摘要:很水的一道题! 注意: 全部转换成大写 只有大写字母才算 要排序,所以封装成类(结构体也可以) 代码: #include <iostream> #include <cctype> #include <cstdio> #include <algorithm> #include <string> usi 阅读全文
posted @ 2021-01-18 08:10 HappyBobb 阅读(2) 评论(0) 推荐(0) 编辑
摘要:这题目用 python 做很好,虽然我是c党,但是没有自带高精度表示不服,学了学几个最简单的语句做了个py3代码然后A了: var = 1 ans = 0 while var == 1: num = int(input()) if num == 0: break else: ans = ans + 阅读全文
posted @ 2021-01-17 17:42 HappyBobb 阅读(2) 评论(0) 推荐(0) 编辑
摘要:本题是AT360的题目! 大家都用的是 DP,然后我看见了标签有个 模拟 \color{red} \text{模拟}模拟,于是就用一个模拟过了这道题。 其实如果模拟对于贪心也要有基础,这道题怎么贪心呢? 如果一段路都是空地,那一次走1,2,31,2,31,2,3格都一样,所以不用处理。 如果现在是空 阅读全文
posted @ 2021-01-17 12:56 HappyBobb 阅读(2) 评论(0) 推荐(0) 编辑
摘要:贪心题目,要想回文子串最多,排一下序。 我们想一下,对于每一个字符,都是回文的没错吧? 那么,abab 这个字符串排序(从小到大)就是 aabb,或者从大到小,bbaa,相同的字符都在一起,这些字符和前面其他的一些字符一样,相同的字母的子串,那么从左往右和从右往左不一样吗? 给代码(没有用 sort 阅读全文
posted @ 2021-01-16 15:35 HappyBobb 阅读(5) 评论(0) 推荐(0) 编辑
摘要:STL大法好!!! 这道题目其实 map + 一个 O(n2)\large \text{O}(n^2)O(n2) 的暴力就好了。 我们用 map 是为了统计每个字符出现数量,然后枚举找最大值,与 length2\LARGE \frac{length}{2}2length​ 作比较,注意小于等于是可以 阅读全文
posted @ 2021-01-16 15:26 HappyBobb 阅读(1) 评论(0) 推荐(0) 编辑
摘要:看了大家的题解,感觉我的有些没必要,竟然要用 map。 我第一眼看这道题,感觉很简单,然后打着代码,发现了一个问题: 连续的1不好处理。 于是我采用了这个方法: 开一个map<int, bool>,每次读入一个数,如果是1,将当前 i 当作下标,变成 true,即 mp[i] = true,然后先输 阅读全文
posted @ 2021-01-14 13:18 HappyBobb 阅读(4) 评论(0) 推荐(0) 编辑
摘要:这里看了看大家的代码,发现我的代码真是麻烦了…… 但是我的读入根本不用字符! 没有人知道 scanf 可以直接存输入的东西吗? 这里看样例,都是一个整数,一个逗号,所以我们把读入写成这样: int x; while (cin >> x) { scanf(","); } 那么最后一个逗号是没有的,怎么 阅读全文
posted @ 2021-01-14 08:17 HappyBobb 阅读(15) 评论(0) 推荐(0) 编辑
摘要:Update:2021.1.14,发现了几个错误 暴力就完了! 这里我们很明显可以用接近 O(n4)\large O(n^4)O(n4) 的暴力枚举,那么对于匹配两次出现我们可以用 find。 每次 erase? 不对,erase 的坏处是会直接破坏原来字符串,并且也不是 O(1)\large O( 阅读全文
posted @ 2021-01-13 20:17 HappyBobb 阅读(5) 评论(0) 推荐(0) 编辑
摘要:就用 STL 排序一下,然后找不一样的地方有几个。 这里我用的是稳定排序 stable_sort,实测比 sort 快一点。 我没有和大家一样比长度,因为如果长度不一样那 sort 完两个能一样吗? 代码: #include <iostream> #include <algorithm> #incl 阅读全文
posted @ 2021-01-13 13:46 HappyBobb 阅读(2) 评论(0) 推荐(0) 编辑
摘要:发现我的评测是最快的!465ms 题目看得迷迷糊糊,看了样例就懂了,原本是想把答案存到数组,突然想起了 stringstream,直接把答案放在那里最后输出呗! 然后我又想,第一个读入不是没有用吗?为啥不用 scanf(%*d); 把它吞了呢? 但是碰到这种题目有一点要考虑!如果一直是 B,那循环完 阅读全文
posted @ 2021-01-12 17:43 HappyBobb 阅读(3) 评论(0) 推荐(0) 编辑
摘要:暴力一下。 竟然是C题! 代码: #include <iostream> #include <algorithm> using namespace std; int a[105]; int main() { int n, l; cin >> n >> l; for (register int i = 阅读全文
posted @ 2021-01-09 12:33 HappyBobb 阅读(1) 评论(0) 推荐(0) 编辑
摘要:本题的确可以用 exgcd 做,但对于数论不扎实的而言 exgcd 求的是形如 ax+by=n\large ax+by=nax+by=n 的通解,即 x, y∈Z\large x,\, y \in Zx,y∈Z,本题求的是 x, y≥0\large x,\, y \ge 0x,y≥0 的解,所以直接 阅读全文
posted @ 2021-01-09 09:00 HappyBobb 阅读(3) 评论(0) 推荐(0) 编辑
摘要:这题谁翻译的!!! 害,一开始看着翻译以为要贪心…… 结果看了看题解说中间只会有1个左括号与1各右括号。 代码: #include <iostream> #include <string> using namespace std; int main() { ios::sync_with_stdio( 阅读全文
posted @ 2021-01-04 17:44 HappyBobb 阅读(2) 评论(0) 推荐(0) 编辑
摘要:Update:2021.1.4 LaTeX\, \, \, \, \, \large \LaTeXLATE​X 炸了 本题明显可以用 DFS,并且不会 TLE。 但会 RE\color{purple} \text{RE}RE。 附上 DFS 代码: #include <iostream> #incl 阅读全文
posted @ 2021-01-03 13:44 HappyBobb 阅读(2) 评论(0) 推荐(0) 编辑
摘要:本题还是很简单,但要注意开 long long,就因为没开卡了几次! 思路: 用前缀和每次推算出∑i=1ni3\Large \sum_{i = 1}^n i ^ 3∑i=1n​i3,然后开另外一个前缀和数组统计∑i=1nf(i)\Large \sum_{i = 1}^n f(i)∑i=1n​f(i) 阅读全文
posted @ 2021-01-03 10:19 HappyBobb 阅读(1) 评论(0) 推荐(0) 编辑
摘要:没有用 STL的吗? 我用的是自动排序的 set 与 当作桶的 unordered_map,然后枚举一遍原来的数组,最终输出下标。 这里介绍了一个不太好但是很有用的东西:goto,是无条件跳转语句,虽然功能强大,但有点……反正用得比较少,通常用 bool 判断是否执行接下来的而不是用 goto 直接 阅读全文
posted @ 2021-01-02 21:24 HappyBobb 阅读(3) 评论(0) 推荐(0) 编辑
摘要:推广博客:https://www.luogu.com.cn/blog/332914/ 本题很容易想到排序,将该字符串排序后每两个相减,不为 1 就是 No,否则就是 Yes。 那么如何判重?根本不用判!如果有重复的排序后肯定是相邻,相减不为1,所以得到 No。 代码: #include <iostr 阅读全文
posted @ 2021-01-02 18:48 HappyBobb 阅读(2) 评论(0) 推荐(0) 编辑
摘要:看见大家用的都是 find 函数,枚举等 string 基本操作,这里发一个正则表达式的做法。 首先,我们要了解一下正则表达式在 c++ 中的定义以及其使用方法: 正则表达式是标准 c++11 中的一种常用与匹配两个字符串之间的数据结构,需要包含头文件 <regex>,然后就可以声明某个正则表达式: 阅读全文
posted @ 2021-01-02 15:44 HappyBobb 阅读(4) 评论(0) 推荐(0) 编辑
摘要:本题是破坏成链的模板题,其公式为: ai+n=ai\LARGE a_{i + n} = a_iai+n​=ai​ 比如我们造一组数据: 5 1 0 0 0 1 用这个公式将这个数组变为: 1 0 0 0 1 1 0 0 0 1 你会发现原本一头一尾的1竟然连在了一起!那么接下来我们循环一遍就A过去了 阅读全文
posted @ 2021-01-02 09:26 HappyBobb 阅读(3) 评论(0) 推荐(0) 编辑
摘要:你们 python java 都用 正则表达式\large \color{red} \text{正则表达式}正则表达式,不要以为 c++ 没有正则表达式了! c++ 中的正则表达式需要包含头文件 <regex>,然后就可以声明某个正则表达式: regex name(^value$); // 其中^与 阅读全文
posted @ 2021-01-01 15:55 HappyBobb 阅读(2) 评论(0) 推荐(0) 编辑
摘要:这道题目n的范围其实是 1018\large 10^{18}1018。 所以暴力肯定是会 T 飞的。 那我们来想一下: 这里数字和最大是不是18个9是不是162? 那我们直接从 n−162\large n - 162n−162 枚举不就完了? 代码: #include <iostream> usin 阅读全文
posted @ 2021-01-01 14:16 HappyBobb 阅读(2) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示