05 2022 档案
摘要:P3376 【模板】网络最大流 网络流 FF 算法 直接用 dfs 求增广路 时间复杂度 , 为边, 为最大流 #include <iostream> #include <cstdio> using namespace std; typedef long long ll;
阅读全文
摘要:传送门 A - Median? 找中间数 #include <iostream> #include <cstdio> #include <algorithm> #include <vector> #include <string> #include <queue> #include <functio
阅读全文
摘要:Rmq Problem / mex 求区间的 MEX 回滚莫队 模板题 不难发现,如果是删除的话,只要判断删除的数字是否比当前的 MEX 小,然后更新就行;如果是增加的话,还要继续往下遍历才能得到结果,复杂度会很高 所以我们考虑回滚莫队,只进行删除操作 发现删除操作比增加操作好写很多 #includ
阅读全文
摘要:Machine Learning 询问一个区间,求区间内数的桶的 MEX,还有单点修改 带修莫队 直接离线用带修莫队,然后维护一个桶的桶,每次询问答案的时候直接找 MEX 就行了 一开始想复杂了,一直想维护 MEX 的值,然后用了一个 set 去维护,但是每次修改的时候都会乘上一个 logn 级别,
阅读全文
摘要:XOR and Favorite Number 询问一个区间,求所以异或值为 k 的子串数量 普通莫队 一开始一直在想这个异或怎么处理,一直卡在 的想法,后来发现可以用前缀异或和,问题就转化成在 区间中,找到两个前缀和,使得 $sum_i \oplus sum_
阅读全文
摘要:【模板】回滚莫队&不删除莫队 回滚莫队 模板题 最近状态挺差的,本来就应该一遍过,但是愣是出了很多很不应该的错误 #include <iostream> #include <cstdio> #include <algorithm> #include <cmath> using namespace s
阅读全文
摘要:Powerful array 问区间出现的各个数字的 次数 值的大小 之和 莫队 模板 我发现用了 inline 在莫队的 add() del() 函数中会快很多 #include <iostream> #include <cstdio> #include <algorithm> #include
阅读全文
摘要:数颜色 带修莫队 模板题 看到别人题解,发现有个小技巧,时间纬度在更改的时候直接 swap 当前值和要修改的值,下次回来的时候 swap 回去是一样的,这样就可以不用多记录状态了 https://fangkaipeng.com/?p=1504 我还发现非常 BZOJ 的数据和 AcWing 的数据相
阅读全文
摘要:传送门 A - ASCII code 输出 #include <iostream> #include <cstdio> #include <algorithm> #include <vector> #include <string> #include <queue> #include <functi
阅读全文
摘要:Required Length bfs 直接搜就好了 一开始还以为会爆 unsigned long long,在接近边界的时候还特判了一下 结果发现是小学数学没学好 #include <iostream> #include <cstdio> #include <algorithm> #include
阅读全文
摘要:传送门 A. Game with Cards 看最大的在谁那,谁就赢 如果最大的都一样,则先手赢 #include <iostream> #include <cstdio> #include <algorithm> #include <vector> #include <string> #inclu
阅读全文
摘要:D-query 区间内,有多少个不同的数 莫队 模板题 #include <iostream> #include <cstdio> #include <algorithm> #include <cmath> using namespace std; #define endl '\n' const i
阅读全文
摘要:蒲公英 求区间众数 分块 用的蓝书法二做的:预处理每个区间的最大众数,然后二分检查更新答案,同时更新边角的答案,记得分块的数量的是 这个代码过不了 acwing 的:https://www.acwing.com/problem/content/251/ #
阅读全文
摘要:Little Elephant and Array 区间内,数值为 x 的数出现了 x 次的有多少个 莫队 模板题 #include <iostream> #include <cstdio> #include <algorithm> #include <cmath> using namespace
阅读全文
摘要:Sona 莫队 模板题 多组输入 #include <iostream> #include <cstdio> #include <algorithm> #include <vector> #include <string> #include <queue> #include <functional>
阅读全文
摘要:小Z的袜子(hose) 莫队 板子题 在 add 和 del 上边得先删除原本的,再添加新的 #include <iostream> #include <cstdio> #include <algorithm> #include <cmath> using namespace std; #defin
阅读全文
摘要:磁力 分块 整个过程像 bfs,就把能吸引的加入队列,然后一个个判断能不能吸引,暴力的复杂度是 可以通过分块的技术,先按照质量分块,在块内再对距离进行分块,每次搜索的时候一定存在一个 k,使得 的块内,所有的点的质量都符合条件,同时 的块内所
阅读全文
摘要:传送门 A. Digit Minimization 一开始以为是只能换相邻的,wa 了好多发 如果是 n = 2 的话,只能是第二个 其他的情况就都是最小的那个,把最小的放到第一个,然后剩下的慢慢磨 #include <iostream> #include <cstdio> #include <al
阅读全文
摘要:A Simple Problem with Integers 线段树 || 分块 模板题 线段树: #include<cstdio> #include<algorithm> using namespace std; typedef long long ll; const int maxn = 2e5
阅读全文
摘要:Climbing the Hill 阶梯博弈 一开始觉得可以以后面那个紧跟前面那个的操作,就联想到了阶梯博弈,但是一想到阶梯博弈只能一个个走,这个能全部一起走,就放弃了这个想法,没想到最后居然真的是阶梯博弈 我们将所有的人从后往前两两分组,如果最前面有一个是落单的话,就假设有一个石子在终点处与它组队
阅读全文
摘要:A Multiplication Game 巴什博奕 这题的控制范围在于 x * 18 可以观察: 必败态 必胜态 [n / 9, n) 必败态 [n / 9 / 2, n / 9) 必胜态 [n / 9 / 2 / 9, n / 9 / 2) 可发现必败态是 [n /
阅读全文
摘要:取(2堆)石子游戏 威佐夫博弈 + 二分 || 直接打表 一开始真的想半天不知道该如何寻找答案 考虑同时减的,通过差值计算本应该的小值 n,然后判断是否比当前的 n 小,小的话直接减 每次考虑更改一个,如果是小的那个,更改完肯定是小的,如果是大的那个,更改完有可能比 a 大,也有可能比 a 小,所有
阅读全文
摘要:Toss a Coin to Your Graph... 二分 + 记忆化搜索 答案是单调的,所以直接二分答案,然后检查的时候就记忆化搜索,看看在限制当前最高值的情况下,能不能走 k 步,如果走的发现是个环,则直接返回可以走 k 步就行 #include <iostream> #include <c
阅读全文
摘要:Rooks Defenders 树状数组 用树状数组维护一下行和列是否有车存在,为了防止同行或同列有多个车的存在,还要开两个数组去维护同行同列有多少个车的数量,然后在删除和添加时,车的数量 0-1 变换的时候才用树状数组维护 #include <iostream> #include <cstdio>
阅读全文
摘要:传送门 A. AvtoBus 直接判断就好了,大的话就尽量用4,小的话就尽量用6,然后根据取余的关系找就行了 #include <iostream> #include <cstdio> #include <algorithm> #include <vector> #include <string>
阅读全文
摘要:Moving Chips 线性dp 本来想用连通块求最短的方法,但是我一看到一个奇葩样例,直接否决这个想法,就是样例的第三个,那个倒三角 采取 dp 的方式: 设 ,表示前 i 列只剩下一个芯片,且该芯片位于 第 i 列 第 j 行,所花费的最小代价 dp 的状态转移(以第 0
阅读全文
摘要:Binary String 二分 + 尺取 || 尺取 二分+尺取:时间复杂度为 答案是单调的,所以直接二分枚举答案,然后再 judge 判断的时候,尺取中间剩下的区间 #include <iostream> #include <cstdio> #include <algori
阅读全文
摘要:传送门 想不到这次居然还能把 E 整出来,怀疑 D E 题是不是反了 上大分 A. Minimums and Maximums 大概就是两个区间之间判断一下交点,其实数据量很小,直接 for 循环跑一边都行 #include <iostream> #include <cstdio> #include
阅读全文
摘要:取石子游戏 威佐夫博弈 板子加规律题,就很没办法 他们的差值与最小的那个值有黄金分割比例,最小的那个值比差值大 #include <iostream> #include <cmath> using namespace std; typedef long long ll; int main() { l
阅读全文
摘要:取(m堆)石子游戏 尼姆博弈 同 HDU-1850,我的题解: https://www.cnblogs.com/dgsvygd/p/16270024.html #include <iostream> using namespace std; const int maxn = 2e5 + 10; in
阅读全文
摘要:Being a Good Boy in Spring Festival 尼姆博弈 求出异或和之后, 就是除去当前值,其他数字的异或和,为了使整体异或为 0,所以就要让此时的 变成 ,因此,如果 $num[i
阅读全文
摘要:Public Sale 巴什博奕 这题的分析同 HDU-2188,我的题解:https://www.cnblogs.com/dgsvygd/p/16268092.html 注意如果 的情况下,要从小到大地输出所有答案 #include <iostream> using namespa
阅读全文
摘要:悼念512汶川大地震遇难同胞――选拔志愿者 巴什博奕 拿到题想了老半天,感觉能超出 n 资金是个坑点,一直想不明白,就暴力打了个表,然后发现复杂度能过就交了,然后过了 后来分析发现“能超出 n 资金”这一条件完全是可有可无 如果当前 n mod (m + 1) = 0: 可以直接确定先手必输,因为后
阅读全文
摘要:Prefix Equality 给出两个数组 ,问 数组前 个 和 数组前 个,这两组各自形成的集合是否相等 尺取 我用的是尺取过的,但是看了别人的题解,好像都是用哈希来预处理 的前缀集合 还有 的前缀集合,然后直接判断是否相等
阅读全文
摘要:250-like Number 且有 且 和 都是素数,问在 中有多少个 二分 素数筛 这个题比较有趣 首先素数的话先用一个欧拉筛预处理一下 接着要寻找合理的情况,本来是想用 强行莽一下,但是一
阅读全文
摘要:传送门 闲来无事,突然想 vp 一场之前忙的来不及做的 A - Adjacent Squares 这题没想到居然还会卡了一下 给出一个图,给出当前位置,看看有多少个格子相邻 行和列分别判断就好 #include <iostream> using namespace std; int main() {
阅读全文
摘要:Coin Game 环形博弈 分两种情况: k = 1 时,就是一个一个拿,奇数先手胜利,偶数后手胜利 k > 1 时,如果先手能全部拿完,则先手胜利,否则后手能全部拿完 或者 将链分成长度相等的两份,易分析 ,因此此时先手拿到的是必败态 我居然是完全
阅读全文
摘要:Finding Seats 方格中只有数字 1 和 0,求最小的矩阵,使得其和大于等于 k 尺取 首先思考暴力,枚举行和列的起点和终点,时间复杂度是 ,显然不可行 接下来考虑优化,如果只是一个一维的,题目转化为,求一个连续的区间,使得其和大于等于 k 上述这个问题一眼可以看出能够使用
阅读全文
摘要:pairs 给出n个数字,问有多少个对数字的差的绝对值小于等于 k 尺取 排序之后,用尺取,固定左端,看看多少个数字 k>=num[l] 即可 #include <iostream> #include <cstdio> #include <algorithm> #include <vector> #
阅读全文
摘要:Graveyard Design 找到所有的区间,使得区间平方和为n 尺取 注意退出的边界 #include <iostream> #include <cstdio> #include <algorithm> #include <vector> #include <string> #include
阅读全文
摘要:String 给出字符串,问有多少个子串包含n个不同的字母 尺取模板 #include <iostream> #include <cstdio> #include <algorithm> #include <vector> #include <string> #include <queue> #in
阅读全文
摘要:Subsequence 找一个最短的区间,使得区间和大于等于s 尺取模板 #include <iostream> #include <cstdio> #include <algorithm> #include <vector> #include <string> #include <queue> #
阅读全文
摘要:Sum of Consecutive Prime Numbers 问有多少个连续的素数区间和为n 尺取模板 不用素数筛可能会T #include <iostream> #include <cstdio> #include <algorithm> #include <vector> #include
阅读全文
摘要:Bound Found 给出一个数组,要找到一个连续子序列的和的绝对值最接近给出的k 尺取 这个尺取非常难想到 我们使用尺取的时候讲究的是固定了左端,然后右端一直往右滑动,如果滑动到一个不符合条件的情况,那么后面的情况都不符合。但是由于该数组存在负数的情况,所以显然不符合尺取的条件,考虑排序 直接排
阅读全文
摘要:Jessica's Reading Problem 尺取法模板题 #include <iostream> #include <cstdio> #include <algorithm> #include <vector> #include <string> #include <queue> #incl
阅读全文
摘要:No Gambling 简单博弈 我表示很不理解为什么,但是总觉蓝就是比红多一步,不论是红采取堵人或者自己走自己的策略,都是比蓝慢一步 状态又太多了没法分析,试了一下居然过了,也没翻到什么详解的 blog #include <iostream> using namespace std; int ma
阅读全文
摘要:传送门 上次打了一场校赛,刚好和上次的 div2 冲了,最近又各种 ddl 轰炸,搞得没啥时间写题解 这场打下来感觉就是各种模板题 A. Lucky? 直接写,前三个数字的和等于后三个数字的和 #include <iostream> #include <cstdio> #include <algor
阅读全文
摘要:传送门 今天这场的代码写的有点烂,回去也不想重新敲一遍了 A. Prof. Slim 他能交换负号的位置,所以直接把负号放到最前面几个,判断是否非递减就行 #include <iostream> using namespace std; const int maxn = 1e5 + 10; int
阅读全文
摘要:传送门 A. Food for Animals 直接找一下本身够不够,然后不够再拿 c #include <iostream> #include <cstdio> #include <algorithm> #include <vector> #include <string> #include <q
阅读全文
摘要:传送门 省流:没有 A H K 2021年辽宁省赛 vp 五一集训第三天的模拟赛,这套题有种区分度不是很大的感觉,就是一开场疯狂过题,接着三小时直接坐牢,不过题目还是很不错的 后来补题的时候发现有的题确实思路就差点点 B. 阿强的路 这题是赛后补题的 弗洛伊德算法 一个路径的代价是这条路径的最大点权
阅读全文
摘要:阿强的路 弗洛伊德算法 一个路径的代价是这条路径的最大点权和最大边权的积 对于边权,我们用弗洛伊德来维护 对于点权,我们将其从小到大排序,弗洛伊德枚举中间点的时候就是从小到大 做这题的时候,发现对于弗洛伊德的理解还是不够透彻,其记忆化的方式在于,第一层循环的用意是,起点 -> 中间点 -> 终点,中
阅读全文
摘要:传送门 省流:没有 C F G 2021年四川省赛 vp 官方的信息:https://sua.ac/problems.html ,有题解、榜单、题面 五一集训第二天的模拟赛,这套题打起来真的挺爽,全程划水的时间比较少,基本都在想题,最后卡题的时候也是充满希望地在想题,不会说一点都想不出来那种 不过这
阅读全文
摘要:传送门 省流:没有 E H 五一集训第一天的模拟赛,这题目真的读起来极其费劲,又没有什么算法,基本都在模拟罢了 这场比赛 4 小时,三人一机 A. Alphacode 这题直接 dp 就行: 表示第 i 个位置有 x 种方案数 状态转移:显然是从后往前转移 如果当前的数字
阅读全文
摘要:Codeforces Round #786 (Div. 3) 今天五一集训第三天,找时间把集训的模拟赛整理一下,今晚有div3打星,就来瞧一瞧是啥题 A. Number Transformation 题目大意:给出两个数 x 和 y,问两个值 a 和 b,使得 直接让
阅读全文
摘要:Codeforces Round #785 (Div. 2) 今天五一集训第一天,刚打完一场组队赛,晚上本来想摆了,但是刚好洗完澡就开始了,就顺手写一下 A. Subtle Substring Subtraction 题目大意:两人博弈,A只能删除偶数个字符的子串,B只能删除奇数个字符的子串,a-z
阅读全文