11 2021 档案
摘要:#include<bits/stdc++.h> #define MAXN 65 typedef long long ll; using namespace std; int n,m; int mod; int jc[MAXN],inv[MAXN],ans,inv2[MAXN]; int gcd(in
阅读全文
摘要:题意:有多少条,一定被包含在最大匹配里面 sol. 60分,断掉每一条边,看是否任然满流,若不满流,则必须出现在最大匹配里面 考虑满分做法 直接如果一条边,在残余网络的一个强连通分量里面,是可以不选的 就做完了 #include<bits/stdc++.h> #define MAXN 10005 #
阅读全文
摘要:sol. subtask 1:考虑n很小,可以开个三维,做掉 subtask 2:考虑变成存在--问题,只要路上存在一个奇环,任意情况都可以满足,如果不存在,只能看路径长度 subtask 3:考虑m为质数,考虑剩余系一类的东西,可以很
阅读全文
摘要:类似于限制类的就应该往最大流方向考虑 类似于最小化/最大化选择的 应该往最小割方向考虑 1.类似于两个集合划分 就是类似于 i 分配到权值为 , 分配到权值为 拆点,分成中间连一条边 边权是 能分配到S1的就L朝S连个无限大 能分
阅读全文
摘要:例题:lgP6329 【模板】点分树 | 震波 题意:给你一颗形态固定的树支持两个操作 1.每次问你距离一个节点 的节点的权值和 2.修改一个节点的权值 sol.首先发现,要是每一个都拿点分治来处理,肯定会T飞 并且发现 点分治都过程重复了很多次 不妨先把点分治 的关系树建出来 发现 至多
阅读全文
摘要:题意 sol.线段树分治板子 + 可撤销并查集按秩合并 #include<bits/stdc++.h> #define MAXN 400005 using namespace std; int n,m,k,ans[MAXN]; int fa[MAXN],sz[MAXN],dis[MAXN]; vec
阅读全文
摘要:题意: sol.对于这种修改和查询就不是很会 不妨对于每个点,只维护他的儿子 每次一个范围内修改的话,就暴力修改它的父亲,然后想办法如何快速处理它的儿子就好了 然后这题就变成了一个 支持 整体+1 , 求异或和 , 以及一些修改的题 非常好做吧,反向建trie > 整体+1 异或和 >顺带维护sz
阅读全文
摘要:题外话,昨天我写的题解被电脑重启还原卡搞没了 A - Pay to Win 题意:简单来说 题意就是 给一个N 然后给了4种操作的代价 求最小的代价。 sol.可以发现,对于每一次操作,如果要进行乘除法操作,那么肯定应该不留余数 那么只要对 数进行上下取证考虑就好了 #include<bits/st
阅读全文
摘要:题目给定的操作等价于: 覆盖 最后答案就是 单点修改很好做,直接修改一下并集就好了 但是区间整体 +/- 1就不是很好办了 直接平移一下区间就好了 注意到 如果一个 区间的右端点在 当前确定的区间
阅读全文
摘要:题外话,好像这场的题都比较牛逼(好多题idea都是出自这场的) A - Range Flip Find Route 题意: 相当于是每一次操作可以使得一个子矩阵翻转一下 sol.其实挺好想的,如果我们一段走的都是,那么直接把走的这个路径所框出
阅读全文
摘要:题目给定的操作等价于: 覆盖 最后答案就是 单点修改很好做,直接修改一下并集就好了 但是区间整体 +/- 1就不是很好办了 直接平移一下区间就好了 注意到 如果一个 区间的右端点在 当前确定的区间
阅读全文
摘要:好菜啊,大原题都没做过 题意转换,相当于是 每次 单点修改后 求的单调递增子序列的最长长度 之后就不是很会了。。。。 参阅题解之后,相当于是 把的操作变复杂一点 加强它 然后就可以很快的实现单点修改 + 固定一个端点的 单调递增子序列的最大长度 代码实现也很简单
阅读全文
摘要:好久没打cdq分治,都不太会了 有更简单地树状数组做法 #include<bits/stdc++.h> #define MAXN 60005 typedef long long ll; using namespace std; ll n,ans; struct node{ll v,x;}t[MAXN
阅读全文
摘要:T1 发现,第一枪可以将原来的矩阵划分成四块,总的期望可以由每一个第一枪位置所划分的每一个快内,继续开枪,沿着你划分的位置走的长度的累加和 考虑如何做这个问题 相当于是 对于一个子矩阵,统计一下有多少种方式可以到他的上下左右边界 不妨记 表示兔
阅读全文