05 2022 档案

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

点击右上角即可分享
微信分享提示
主题色彩