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 阅读全文
posted @ 2021-11-27 19:48 After_rain 阅读(37) 评论(0) 推荐(0) 编辑
摘要:题意:有多少条,一定被包含在最大匹配里面 sol. 60分,断掉每一条边,看是否任然满流,若不满流,则必须出现在最大匹配里面 考虑满分做法 直接如果一条边,在残余网络的一个强连通分量里面,是可以不选的 就做完了 #include<bits/stdc++.h> #define MAXN 10005 # 阅读全文
posted @ 2021-11-27 19:47 After_rain 阅读(23) 评论(0) 推荐(0) 编辑
摘要:sol. subtask 1:考虑n很小,可以开个三维,O()做掉 subtask 2:考虑变成 mod 2 = fi存在--问题,只要路上存在一个奇环,任意情况都可以满足,如果不存在,只能看路径长度 subtask 3:考虑m为质数,考虑剩余系一类的东西,可以很 阅读全文
posted @ 2021-11-23 19:56 After_rain 阅读(68) 评论(0) 推荐(0) 编辑
摘要:类似于限制类的就应该往最大流方向考虑 类似于最小化/最大化选择的 应该往最小割方向考虑 1.类似于两个集合划分 就是类似于 i 分配到S1权值为Ai , 分配到S2权值为Bi 拆点,分成Li,Ri中间连一条边 边权是costi 能分配到S1的就L朝S连个无限大 能分 阅读全文
posted @ 2021-11-17 07:34 After_rain 阅读(32) 评论(0) 推荐(0) 编辑
摘要:例题:lgP6329 【模板】点分树 | 震波 题意:给你一颗形态固定的树支持两个操作 1.每次问你距离一个节点 <=k的节点的权值和 2.修改一个节点的权值 sol.首先发现,要是每一个都拿点分治来处理,肯定会T飞 并且发现 点分治都过程重复了很多次 不妨先把点分治 的关系树建出来 发现 至多 阅读全文
posted @ 2021-11-09 21:39 After_rain 阅读(34) 评论(0) 推荐(0) 编辑
摘要:题意:题意省~ sol.考虑 你每一个排列的分数,是若干个循环长度的lcm 然后只要计数方案就好了 考虑 长度ai的环有bi个 那么这个环贡献的方案数就是 Crestaibi(bi1) #include<bit 阅读全文
posted @ 2021-11-09 19:52 After_rain 阅读(51) 评论(0) 推荐(0) 编辑
摘要:题意 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 阅读全文
posted @ 2021-11-06 16:35 After_rain 阅读(30) 评论(0) 推荐(0) 编辑
摘要:题意: sol.对于这种修改和查询就不是很会 不妨对于每个点,只维护他的儿子 每次一个范围内修改的话,就暴力修改它的父亲,然后想办法如何快速处理它的儿子就好了 然后这题就变成了一个 支持 整体+1 , 求异或和 , 以及一些修改的题 非常好做吧,反向建trie > 整体+1 异或和 >顺带维护sz 阅读全文
posted @ 2021-11-06 15:33 After_rain 阅读(18) 评论(0) 推荐(0) 编辑
摘要:题外话,昨天我写的题解被电脑重启还原卡搞没了 A - Pay to Win 题意:简单来说 题意就是 给一个N 然后给了4种操作的代价 求最小的代价。 sol.可以发现,对于每一次操作,如果要进行乘除法操作,那么肯定应该不留余数 那么只要对 数进行上下取证考虑就好了 #include<bits/st 阅读全文
posted @ 2021-11-05 18:21 After_rain 阅读(28) 评论(0) 推荐(0) 编辑
摘要:题目给定的操作等价于: 覆盖[icnti+1,i] 最后答案就是 [ST][ST]=ans 单点修改很好做,直接修改一下并集就好了 但是区间整体 +/- 1就不是很好办了 直接平移一下区间就好了 注意到 如果一个 区间的右端点在 当前确定的区间 阅读全文
posted @ 2021-11-04 20:39 After_rain 阅读(36) 评论(0) 推荐(0) 编辑
摘要:题外话,好像这场的题都比较牛逼(好多题idea都是出自这场的) A - Range Flip Find Route 题意: 相当于是每一次操作可以使得一个子矩阵翻转一下 sol.其实挺好想的,如果我们一段走的都是.\(,\),那么直接把走的这个路径所框出 阅读全文
posted @ 2021-11-03 21:44 After_rain 阅读(44) 评论(0) 推荐(0) 编辑
摘要:题目给定的操作等价于: 覆盖[icnti+1,i] 最后答案就是 [ST][ST]=ans 单点修改很好做,直接修改一下并集就好了 但是区间整体 +/- 1就不是很好办了 直接平移一下区间就好了 注意到 如果一个 区间的右端点在 当前确定的区间 阅读全文
posted @ 2021-11-02 20:57 After_rain 阅读(30) 评论(0) 推荐(0) 编辑
摘要:好菜啊,大原题都没做过 题意转换,相当于是 每次 单点修改后 求p[i]/i的单调递增子序列的最长长度 之后就不是很会了。。。。 参阅题解之后,相当于是 把pushup的操作变复杂一点 加强它 然后就可以很快的实现单点修改 + 固定一个端点的 单调递增子序列的最大长度 代码实现也很简单 阅读全文
posted @ 2021-11-02 19:27 After_rain 阅读(13) 评论(0) 推荐(0) 编辑
摘要:好久没打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 阅读全文
posted @ 2021-11-01 20:35 After_rain 阅读(27) 评论(0) 推荐(0) 编辑
摘要:T1 发现,第一枪可以将原来的矩阵划分成四块,总的期望可以由每一个第一枪位置所划分的每一个快内,继续开枪,沿着你划分的位置走的长度的累加和 考虑如何做这个问题 相当于是 对于一个子矩阵,统计一下有多少种方式可以到他的上下左右边界 不妨记 g[x1][x2][y1][y2][03]表示兔 阅读全文
posted @ 2021-11-01 17:15 After_rain 阅读(47) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示