06 2022 档案
AtCoder Beginner Contest 257 下分记录
摘要:A 题: 暴力拼串然后输出就行了。 string s; signed main() { int n = read(), k = read(); for(int i = 1; i <= 26; i++) { for(int j = 1; j <= n; j++) { s += i + 'A' - 1;
CF660C Hard Process 题解
摘要:Solution 一眼 吊打 。 求个前缀和,然后双指针去移动,求最大值。 int qzh[N][2], a[N]; int maxx = 0, ansl, ansr; int f = 0; int cnt =
P7076 [CSP-S2020] 动物园 题解
摘要:阅读理解题,读懂了就是sb题。 建议多模两遍样例就会做了。 我们首先要知道我们能有多少种饲料可以用,用一个变量来存所有的 二进制表示下是否在这一位上有 。 如果所有的 在这一位下都没有 。 那说明这种饲料一定不能用,也就是这一位上一定不能为 \(1
KMP
摘要:感谢 @奇乐编程学院 的图。 KMP 算法,是一种利用已经知道的信息来避免重复运算的字符串匹配算法。 KMP 的算法流程 对于字符串匹配,暴力算法是一位一位的比较,但不同时,将起始指针加 。然后继续匹配,复杂度为 。 那我们就想,再没有匹配上的这一位之前的
P7913 [CSP-S 2021] 廊桥分配
摘要:Solution 更新一下,之前写的太烂了。 首先我们能想到一个暴力算法,就是枚举分配到国内区和国外区的廊桥个数,然后用两个优先队列来模拟,复杂度 预计得分: 40 然后我们考虑,当一个区的廊桥数确定为 的时候,另一个廊桥数是 $n -
ABC 255 下分记录
摘要:A 直接输出 即可。 B 没看数据范围,直接写的二分。 对于这个光的范围二分,然后判断合不合法即可。 int n, k; double x[MAXN], y[MAXN]; int a[MAXN]; double ans; #define eps 1e-6 bool vis[
单调队列
摘要:维护一个区间的最大最小值用的,是离线做法,区间不能往回动。 用队列来实现。 队首就是答案,当值小的时候就踢出去,也有的虽然值大,但编号不在这个区间,也踢出去。 deque <node> q1, q2; int sc1, sc2; int Max[N], Min[N]; signed main() {
单调栈
摘要:单调栈 就是一个栈,不过栈内元素保证单调性。即,栈内元素要么从小到大,要么从大到小。而单调栈维护的就是一个数前/后第一个大于/小于他的数。 如何维护的,谁把他删了谁就是答案。 例如这组数据 5 1 4 2 3 5 来求每个数后面的比他大的值。 我们从从后往前枚举,从后往前的原因是我要考虑每个数后面的