02 2022 档案
摘要:A. 计数题 以每个位置结尾的字符串最多只有一个,对于一个串,如果扩展他的前缀,不会使结果变差,那么我们就强制取以1位置开始的子序列,发现如果产生了冲突,那么一定是一个前缀和一个子串的后缀相同,那么这个前缀或者这个子串我们只能留一个,一个前缀可能和多个子串后缀冲突,但是一个子串只会和一个前缀冲突,所
阅读全文
摘要:A. 异或 这种题就是打表,什么性质不性质的不重要 不知道我打表出的式子怎么解释,, 粘一下题解做法吧 "考虑每一位的贡献,从低到高的第位会每隔个数变化一次,于是第$$i位对答案的贡献就是, 把每一位的贡献加起来即可。" 我的代码
阅读全文
摘要:扩展欧几里得算法(求ax+by=gcd(a,b)的一组特解) 欧几里得算法(求最大公约数) gcd(int a,int b) { return b==0?a:gcd(b,a%b); } 扩展欧几里得 exgcd(int a,int b,int &x,int &y) { if(!b) { x=1; y
阅读全文
摘要:求和 等差数列求和,直接乘会炸,需要龟速乘(考试时候懒得打高精主要是不会,也忘了有龟速乘这个东西.......) code #include<cstdio> #include<cstring> using namespace std; typedef unsigned long long
阅读全文
摘要:这套题咕咕咕咕咕了好久,还是决定先写一点吧 A. 第零题 从到,在处死了,那么与从到死的次数是一样的,也就是说可以向上走到一下的最后一次死的点,最后这一段统计一下需不需要多死一次就好了,树上倍增记录的第级死亡点,1级死亡点时候记录
阅读全文
摘要:A. 打地鼠 大水题,暴力比正解难系列 二维前缀和枚举即可 code #include <cstring> #include <cstdio> using namespace std; const int maxn=2005; int max(int x,int y){return x>y
阅读全文
摘要:A. 玩游戏 贪心,尝试向两边扩展,能扩展到使手里的数更小的地方就扩展,直到边界处或者两边扩展不了(走不动或者不能使手里的数更小) 貌似不能贪心了? 逆向思维,假如能够扩展完,那么最终手里的数为我们假设走出来了,从两边向里扩展,进行逆向操作(可以看做移动的
阅读全文
摘要:A. 字符交换 每个字母分开考虑,一定至少有一个字母不动,枚举不动的位置,向两侧扩展至最大,尝试更新答案 注意无穷大的选择 code #include <cstring> #include <cstdio> using namespace std; int sum[27][4005],cnt[27]
阅读全文
摘要:卡特兰数 卡特兰数 1, 1, 2, 5, 14, 42, 132, 429, 1430, 4862, 16796, 58786, 208012, 742900, 2674440...... 设为数的第项 , \(h(n)=
阅读全文