随笔分类 -  题解

摘要:发现我的评测是最快的!465ms 题目看得迷迷糊糊,看了样例就懂了,原本是想把答案存到数组,突然想起了 stringstream,直接把答案放在那里最后输出呗! 然后我又想,第一个读入不是没有用吗?为啥不用 scanf(%*d); 把它吞了呢? 但是碰到这种题目有一点要考虑!如果一直是 B,那循环完 阅读全文
posted @ 2021-01-12 17:43 HappyBobb 阅读(11) 评论(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 阅读(7) 评论(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 阅读(9) 评论(0) 推荐(0)
摘要:这题谁翻译的!!! 害,一开始看着翻译以为要贪心…… 结果看了看题解说中间只会有1个左括号与1各右括号。 代码: #include <iostream> #include <string> using namespace std; int main() { ios::sync_with_stdio( 阅读全文
posted @ 2021-01-04 17:44 HappyBobb 阅读(8) 评论(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 阅读(10) 评论(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 阅读(8) 评论(0) 推荐(0)
摘要:没有用 STL的吗? 我用的是自动排序的 set 与 当作桶的 unordered_map,然后枚举一遍原来的数组,最终输出下标。 这里介绍了一个不太好但是很有用的东西:goto,是无条件跳转语句,虽然功能强大,但有点……反正用得比较少,通常用 bool 判断是否执行接下来的而不是用 goto 直接 阅读全文
posted @ 2021-01-02 21:24 HappyBobb 阅读(12) 评论(0) 推荐(0)
摘要:推广博客:https://www.luogu.com.cn/blog/332914/ 本题很容易想到排序,将该字符串排序后每两个相减,不为 1 就是 No,否则就是 Yes。 那么如何判重?根本不用判!如果有重复的排序后肯定是相邻,相减不为1,所以得到 No。 代码: #include <iostr 阅读全文
posted @ 2021-01-02 18:48 HappyBobb 阅读(9) 评论(0) 推荐(0)
摘要:看见大家用的都是 find 函数,枚举等 string 基本操作,这里发一个正则表达式的做法。 首先,我们要了解一下正则表达式在 c++ 中的定义以及其使用方法: 正则表达式是标准 c++11 中的一种常用与匹配两个字符串之间的数据结构,需要包含头文件 <regex>,然后就可以声明某个正则表达式: 阅读全文
posted @ 2021-01-02 15:44 HappyBobb 阅读(13) 评论(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 阅读(10) 评论(0) 推荐(0)
摘要:你们 python java 都用 正则表达式\large \color{red} \text{正则表达式}正则表达式,不要以为 c++ 没有正则表达式了! c++ 中的正则表达式需要包含头文件 <regex>,然后就可以声明某个正则表达式: regex name(^value$); // 其中^与 阅读全文
posted @ 2021-01-01 15:55 HappyBobb 阅读(7) 评论(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 阅读(8) 评论(0) 推荐(0)
摘要:前缀和好题,但不知道为什么标签是 数论。\color{blue} \text{数论。}数论。 然后将前缀和加进去最后暴力枚举一下。但这里注意,暴力时如果已经超过了n那么就得终止循环,不然你会得到TLE。 代码如下: #include <iostream> #include <vector> usin 阅读全文
posted @ 2020-12-31 20:47 HappyBobb 阅读(8) 评论(0) 推荐(0)
摘要:公式变形: ∵ax+by+c=0\large∵ ax + by + c = 0∵ax+by+c=0 ∴ax+by=−c\large∴ ax + by = -c∴ax+by=−c 然后就请出我们的贝祖(也叫pei shu)定理: ax+by=n\large ax + by = nax+by=n 且 a 阅读全文
posted @ 2020-12-27 20:00 HappyBobb 阅读(17) 评论(0) 推荐(0)
摘要:小学学拓欧真疯了!表示难以看懂,只好套个模板。 给出一点解释: 在欧几里得算法最后一步中,b=0\large b = 0b=0,显然可以发现一组x=1, y=0\large x = 1, \,y = 0x=1,y=0满足ax+by=gcd(a,b)\large ax + by = gcd(a, b) 阅读全文
posted @ 2020-12-23 18:39 HappyBobb 阅读(15) 评论(0) 推荐(0)
摘要:给一个map做法与普通做法 分解质因数其实并不难,可以每次边统计边输出,也可以用map,将i当为key值,cnt为值,最后输出。 两种代码: 1、map #include <iostream> #include <map> using namespace std; #define fast_io i 阅读全文
posted @ 2020-12-23 17:43 HappyBobb 阅读(11) 评论(0) 推荐(0)
摘要:真的想问CF的评测机速度有多快,O(n3n^3n3)都能过 代码: #include <stdio.h> int main() { int n, cnt = 0; scanf("%d", &n); for(register int i = 1; i <= n; i++) { for(register 阅读全文
posted @ 2020-12-20 14:01 HappyBobb 阅读(8) 评论(0) 推荐(0)
摘要:只需要一直输出a,b,c,可以满足回文子串最长长度为1,代码: #include <stdio.h> int main() { int t; scanf("%d", &t); while(t--) { int n; scanf("%d%*d", &n); //%*d是指输入但不保存 n--; for 阅读全文
posted @ 2020-12-20 10:27 HappyBobb 阅读(6) 评论(0) 推荐(0)
摘要:这题真是细节多。但是算法很好掌握。 对于n\large nn,将其分解质因数,可以得到: n=p1∗p2∗p3……∗pn\Large n = p_1 * p_2 * p_3 …… * p_nn=p1​∗p2​∗p3​……∗pn​ 如果其质因数个数小于k,无解。 如果其质因数个数等于k,全部输出。 如 阅读全文
posted @ 2020-12-19 11:01 HappyBobb 阅读(11) 评论(0) 推荐(0)
摘要:求过。 STL大法好! 本题是set好题,将三个数加起来存到set中,既可以去掉重复的,还能从小到大排序! 但是有个大问题!如何输出那个第三大的?set是不能用下标访问的!我们的确可以用end返回的迭代器三次自减然后输出,类似第一篇题解。不过我这里给大家介绍另一种迭代器类型,那就是:reverse_ 阅读全文
posted @ 2020-12-18 16:57 HappyBobb 阅读(9) 评论(0) 推荐(0)