03 2019 档案
摘要:传送门 分析 我们考虑一个点有多少中情况可以被删除 我们发现只有删除它自己和删祖先共$dep_i$中 所以每个点的答案就是$\frac{1}{dep_i}$ 代码
阅读全文
摘要:传送门 分析 先进行缩点 之后从终点倒着跑 对于一组边如果有一个点不能到达则这组边直接废掉 最后看只用没废掉的边能不能从起点走到终点 代码
阅读全文
摘要:传送门 分析 首先把式子分开 我们知道lcp(i,j) = min(height[i+1],height[i+2],......,height[j]) 于是我们可以对于每个点求出它作为min的区间 于是左端点范围[le-1,i-1],右端点范围[i,ri] 这个题就解决了 代码
阅读全文
摘要:传送门 分析 首先我们不难求出一共有多少子串 之后我们只需要减掉重复个数即可 于是我们对于每个后缀减去它跟它前一名的最长公共前缀即可 代码
阅读全文
摘要:传送门 分析 将字符串复制一遍然后直接求sa即可 代码
阅读全文
摘要:传送门 分析 我们先考虑如果所有数都不相同我们应该怎么办 我们可以直接贪心的在每个点放可行的最大权值 但是题目要求可以有相同的数 我们可以考虑每次让当前节点可发且尽量大的同时给兄弟节点留的数尽量大 我们用线段树维护每个点比它大的点还剩几个 对于每个点要给它的子树预留足够的点即可 代码
阅读全文
摘要:传送门 分析 我们先跑一遍最小割 然后我们只留下没满流的边进行tarjan 如果一条边连两点不在一个联通块里则一定在一个方案里 如果起点和s在一个联通块中且终点和t在一个联通块中,那它一定是一个关键边 代码
阅读全文
摘要:传送门 分析 https://blog.csdn.net/forever_shi/article/details/88048528 代码
阅读全文
摘要:传送门 分析 我们发现第一段数和最后一段数对答案的贡献系数为1/-1,其余为0/2/-2 而且对于相邻两段不能系数均非0 于是可以dp 代码
阅读全文
摘要:传送门 分析 我们可以建一个k层图,把dp转移的三维对应到每个点上,每个第k层点连向0层点 我们让第0层点为实点其余为虚点,只要碰到虚点就dfs到他连得所有实点再将实点入队即可 代码
阅读全文
摘要:传送门 分析 比较套路的题 我们将原来的男向女连边,后面的女向男连边 对于每一组看他们是不是在同一个强连通分量理即可 代码
阅读全文
摘要:传送门 分析 我们多维护一个值,代表某个点子树中所有点的权值和 于是如果某个点它的min和max乘a(/b)的值小于范围则直接把整个子树都加进去 估价函数就是这个点的子树中的理论最小值 代码
阅读全文
摘要:传送门 分析 我们可以枚举每一个点算它的最近点 估价函数应该分为3种情况计算: 大于max,小于min,位于min和max之间 代码
阅读全文
摘要:传送门 分析 首先给大家推荐一个非常好的KDTree笔记 here 此题就是用优先队列维护距离最远的k个,最后输出队首元素即可 估价函数就是max和min两点到 询问点的最远距离 代码
阅读全文
摘要:传送门 分析 我们让s到1,关键点到t分别连流量为inf的边 于是我们可以考虑跑s到t的最小割 于是我们将所有点拆为两个点,关键点和1的两个点之间连inf,其余点连1 将原图的边也连上,流量为inf 于是跑最小割即可 代码
阅读全文
摘要:传送门 分析 首先我们发现要让答案最小,或运算一定是没有用的 我们还可以发现a^b = a&(~b) 所以异或运算也没有用 于是我们只考虑否和与 我们还会得到一个性质就是没增加一个数一定会让答案的1的个数至少减少一半 因为我们会让答案与上a和(~a)中是的答案的0的数量增加最多的一个 所以最坏增加剩
阅读全文
摘要:传送门 题目大意 给定一个只包含012序列,0表示这个人有2个红球,1表示一个红球一个蓝球,2表示两个蓝球。进行n*2次游戏,每次游戏所有有球的人选择一个球递给前一个人,第一个人把球放到一个序列中,'r'表示红球,'b'表示蓝球,问一共多少种序列 分析 一定要满足前i个人的所有红球>=序列前i个位置
阅读全文
摘要:传送门 分析 我们发现可以通过容斥得到Ans = sum(1,R1,1,R2) - sum(1,R1,1,L2-1) - sum(1,L1-1,1,R2) + sum(1,L1-1,L2-1) 于是我们可以吧一个询问分成4部分 然后进行莫队即可 代码
阅读全文
摘要:传送门 分析 我们考虑先将所有数离散化 之后我们对于每个状态用一个bitset来记录 其中第i段表示颜色i的信息 对于每一段信息均是段首若干1,剩余若干0表示这种颜色有多少个 于是我们不难想到莫队 答案就是1的总个数-异或值的1的个数乘3 但是我们发现开1e5*1e5的bitset会炸 于是我们考虑
阅读全文
摘要:传送门 分析 权值不同点之间连权值为1的边 起点向每个1,每个0向终点也连权值为1的边 跑最小割即可 代码
阅读全文
摘要:传送门 分析 我们只要求出拿出权值和最小的点集是的剩下的点合法即可 求这个我们可以考虑最小割 我们将棋盘黑白染色 起点向黑点,白点向终点连边权为点权的边 黑点向白点连边权为inf的边 之后跑最小割即可 代码
阅读全文
摘要:传送门 分析 起点向狼连边,羊向终点连边,边权均为inf 每个点向它四联通的点连边权萎1的边 跑最小割即可 代码
阅读全文
摘要:传送门 分析 从1道m进行匹配,找到第一个不能继续匹配的点即可 代码
阅读全文
摘要:传送门 分析 我们发现n特别小,所以可以从这里入手 我们记录出所有列中某一种状态的列有多少个 我们再记录出每种列最少有多少个1(原来的1的个数和取反后的个数去最小值) 于是我们可以得出对于所有列异或一个数的答案 (实际就是对于每一行有一个全异或1或不异或的操作,将所有行压起来) 于是我们不难得到式子
阅读全文
摘要:传送门 分析 我们先考虑暴力如何计算 对于S的子串SS,如果它有位置i使得SS[i] != T[i]那么我们就将两个字符之间用并查集连边 最后答案很明显就是并查集中所有边的个数 于是我们可以发现对于S[i] != T[j]衣服那个会在S的第i-j个子串连边 我们通过观察可以发现i - j = i -
阅读全文
摘要:传送门 分析 我们可以将所有的b[i^j]直接对应到b[f(i^j)]上 于是显然可以fwt 我们对b进行t次fwt之后直接将答案与e0卷起来即可 注意由于模数不确定,我们可以将模数扩大$2^m$然后ifwt是直接除掉这个数即可 此题还要使用快速乘 代码
阅读全文
摘要:传送门 分析 我们已知所有堆的异或和为0是后手必胜 我们又知道只有一堆时只有异或和为质数的情况为1其它为0 又因为ans[k][i^j] = ans[k-1][i] * ans[k-1][j] 所以直接fwt即可 我们可以对a数组fwt后用快速幂取它的n次方,然后再ifwt回来即可 代码
阅读全文
摘要:传送门 题目大意 分析 因为n为质数所以i-1的逆元唯一 因此ai唯一 代码
阅读全文
摘要:传送门 题目大意 分析 here 对于最后求p的过程我想再说一下 那个45就是最前一位分别是0~9,所以总贡献就是45乘上每一种数开头对应多少种情况 而后面的10则是他前面可以填多少不同的数对他做的贡献 代码
阅读全文

浙公网安备 33010602011771号