06 2022 档案
摘要:分配问题 二分图 + 费用流 建图: 源点与人相连,容量为 ,费用为 汇点与工作相连,容量为 , 费用为 人与工作一一相连,容量为 ,费用为对应的效率 最小费用最大流模板 最大费用最大流的时候,只需要把费用更改为负数即可 #include <iostream> #i
阅读全文
摘要:飞行员配对方案问题 之前做的,没想到忘了发 二分图匹配最大流问题 模板 #include <iostream> #include <cstdio> #include <algorithm> #include <queue> using namespace std; const int maxn =
阅读全文
摘要:圆桌问题 最大流 建图完就很简单 考虑将单位和餐桌视为点 限制每个餐桌上的代表所属的单位不同:只要将单位和餐桌之间的流容量设置为 源点对单位有容量为 的边,餐桌对汇点有容量为 的边 最大流如果为 则说明每个人都能上桌 答案的输出
阅读全文
摘要:负载平衡问题 费用流 主要是建图,其他都是模板 每个仓库视为一个点,设置一个源点,对仓库有一条边,容量就为仓库原有的库存量,费用为 0 然后相邻的仓库之间有一条容量为无穷大,费用为 1 的边 每个仓库对汇点有一个边,容量为平均值,费用为 0 #include <iostream> #include
阅读全文
摘要:软件补丁问题 状态压缩 + 最短路 对于当前 bug 的状态,可以作为一个点,表示的方式用状态压缩的方式,接着边就是通过一个补丁,转换到另外一个 bug 状态 直接最短路,dijkstra 或 bfs 或 SPFA 都可 #include <iostream> #include <cstdio> #
阅读全文
摘要:±1 Operation 2 离线 + 尺取 或者 直接二分 二分更简单 二分一下当前询问的数 的位置 ,左边(小于等于当前数)的每一个数字的贡献都为 ,右边(大于当前数)的每一个数字的贡献都为 ,因此考虑求和的时候用前缀和优化一下就好 #i
阅读全文
摘要:Lucky Numbers 思维题 不难看出,如果我们固定了数组 的一个值,那么数组 的其他值都可以通过数组 算出来,所以我们可以通过一个位置的值来表示一整个数组 ,这样的话就可以枚举所有位置上的最佳值,判断他是属于哪个数组的,然后这个数组的值 + 1,最后选取最大值即
阅读全文
摘要:传送门 A - You should output ARC, though this is ABC. 直接输出 #include <iostream> #include <cstdio> #include <algorithm> #include <vector> #include <string>
阅读全文
摘要:孤岛营救问题 bfs + 状态压缩 对钥匙的状态进行压缩,然后 bfs 剪枝搜索 #include <iostream> #include <cstdio> #include <queue> using namespace std; int dp[20][20][1 << 16 | 1]; int
阅读全文
摘要:小红的子序列 今日无事,勾栏.. 今天心血来潮打了一下牛客,发现了一道有趣的题 dp 大概就是把 颜色 和 奇偶 分成两个状态:当前位置是否是奇数,当前颜色是否是红色,类似于状态压缩一样压一下,然后 dp 不断维护最大值就好 状态转移就是从将当前状态 取反 转移过来就好 #include <iost
阅读全文
摘要:【模板】最小费用最大流 EK 改 SPFA #include <iostream> #include <queue> #include <algorithm> using namespace std; typedef long long ll; const int maxn = 1e5 + 10;
阅读全文
摘要:传送门 现在还在 hack 期间,要是被 hack 了就再更新代码 G 还挺感兴趣的,找时间看看题 A - Print a Pedestal (Codeforces logo?) 对 3 取模的三种情况进行构造 #include <iostream> #include <cstdio> #inclu
阅读全文
摘要:Small d and k bfs 题目给出了限定:每个点的度最多为 3,并且提问的距离也最多为 3 所以直接 bfs 搜索,然后存一下访问的点,回退状态的时候就不用整个 vis 置为 0 #include <iostream> #include <cstdio> #include <algorit
阅读全文
摘要:Together Square 唯一分解定理 + 递推 如果从 递推到 的话,只要考虑任意的组合 的所有个数的 2 倍,再加上一个 就可以了 接下来就考虑能不能快速求出 满足条件的个数 如果一个数是平方数,则
阅读全文
摘要:传送门 看到我们集训队的榜单挺惨淡的,就来 vp 了一把,感觉 D 如果卡了 E 也应该能做 F 看着还挺有趣的,找时间补题 更新:在看了大佬的题解之后,把 F 补了 A - Last Two Digits 直接对 100 取模 #include <iostream> #include <cstdi
阅读全文
摘要:Number of Groups 并查集 + set 我觉得这个题 cf 自己的题解写的挺好的 把所有的区间段化成左端点和右端点的方式,然后从左到右逐个遍历点,这样就可以降维 如果当前访问到一个左端点,则加入到 set 当中,表示现在是处于这个区间段上的,当然当前的点可以处于多个区间段内 如果当前访
阅读全文
摘要:不知道比赛后续有没有补题渠道 榜单:http://ccpc.pintia.cn/ 更新:补题渠道:https://pintia.cn/market/item/1534086632285245440 还是比较喜欢 cf 的补题渠道,但是目前只有 pta 赛前 赛前一两个星期左右的状态非常非常差,看着我
阅读全文
摘要:Max GEQ Sum 单调栈 + 线段树 这题非常值得 思路: 假设我们此时的最大值为 ,那么我们考虑不等式是否成立时,就应该考虑一个最大的区间 ,在这里找有没有不符合不等式的情况出现 最大区间 : 且 $a_{r + 1}
阅读全文
摘要:传送门 感觉这一场的题目真的非常棒,找时间一定要把 E 也给补了(除非看完答案还是不会),虽然现在还没看,但是前几题的质量让我有继续做下去的欲望 更新:E 题已经补了,感觉还挺不错 A. Beat The Odds 要么全是奇数,要么全是偶数,看着哪个少就删哪个 #include <iostream
阅读全文