摘要:
Compress Words 本人蒟蒻,请看更详细的题解 CF1200E Compress Words 题解 重点是利用KMP计算最长前后缀,注意几个点:长度、越界。 点击查看代码 #include<bits/stdc++.h> using namespace std; const int N = 阅读全文
posted @ 2023-09-24 17:06
不o凡
阅读(15)
评论(0)
推荐(0)
摘要:
P3375 【模板】KMP 字符串匹配 点击查看代码 #include<bits/stdc++.h> using namespace std; const int N = 1e6 + 10; string s1, s2; int ne[N]; void get_ne() { ne[1] = 0; i 阅读全文
posted @ 2023-09-24 15:39
不o凡
阅读(14)
评论(0)
推荐(0)
摘要:
E - Complete Binary Tree 完全二叉树 三个值N,X,K,分别表示点的个数,点的编号,求到X点的距离为K点的个数。 首先,我们对以X为根的子树进行分析,可以知道到X点距离为K的点的个数为2^k。这里需要特判,深度为K时最左边的编号不能大于N,点的个数就等于min(r,n)-l+ 阅读全文
posted @ 2023-09-24 14:56
不o凡
阅读(67)
评论(0)
推荐(0)
摘要:
题意:给定一个数K,问第K小的数是多少,数字严格按照按321式递减 可知,数最大为987654321,可以暴力枚举 点击查看代码 #include<bits/stdc++.h> using namespace std; #define LL long long vector<LL> ans; LL 阅读全文
posted @ 2023-09-24 09:40
不o凡
阅读(43)
评论(0)
推荐(0)
摘要:
贪心 做好优化,否者超时 对于第一位a,它只可能替换成a-1,所以如果在a到a-1的数字内只有a或者a-2,那么a-1就可以取代a。 因此我们可以开10个数组来存储每个数字的下标,对于每一位从0开始贪心的枚举每一位,如果有满足的j,那么直接替换,肯定有一个j满足要求(因为它自己肯定满足)。 代码里有 阅读全文
posted @ 2023-09-23 17:03
不o凡
阅读(11)
评论(0)
推荐(0)
摘要:
二分查找+优先队列 先看要求:寻找r[i]值,使得在【i,r[i]】区间内数组A的和<=k[i]c[i],在【i,r[i]+1】数组A的和>k[i]c[i],且r[i]的取值在[i-1,n] 这个可以利用前缀和s数组来二分查找,寻找r[i]的值,利用函数upper_bounder(s+i,s+1+n 阅读全文
posted @ 2023-09-23 09:56
不o凡
阅读(14)
评论(0)
推荐(0)
摘要:
H. Mad City 题意:b能否不被a抓到。 题解:这是基环树,只要b先与a在环上,b就永远也不会被抓到。 所以,此题就是求a,b到环上的距离,如果有一点b到环上的距离小于a,那么就永远也不会被抓到。 比较简单的找环的方式就是利用拓扑排序,然后就是最短路径的模板了(利用简单的bfs或者dfs就行 阅读全文
posted @ 2023-09-22 15:16
不o凡
阅读(112)
评论(0)
推荐(0)
摘要:
双指针 创建l,r指针,r满足向右走sum+=a[r],r++,不满足l向右走sum-=a[l],l--; 当l==r使,r向右走 当高度不满足时,重新累计sum=0,l指针直接转向r,r++; 然后取r-l最大的区间 点击查看代码 #include<bits/stdc++.h> using nam 阅读全文
posted @ 2023-09-22 10:45
不o凡
阅读(45)
评论(0)
推荐(0)
摘要:
G. ABBC or BACB 贪心 举个例子:BAAAA,BAAAAA,答案是A的总数 注意点:在连续的A中插入B,如:AAABABAA,AAABAA。很明显答案是A的总数减去最小的连续A的个数 点击查看代码 #include<bits/stdc++.h> using namespace std; 阅读全文
posted @ 2023-09-22 09:51
不o凡
阅读(74)
评论(0)
推荐(1)