摘要: 题目链接 观察什么时候x到y之间那一段可以被统计 xorsum[x-1]^xorsum[y]=k xorsum[x-1]=xorsum[y]^k||xorsum[y]=xorsum[x-1]^k 莫队维护。阅读全文
posted @ 2018-04-19 21:19 Konoset 阅读(2) 评论(0) 编辑
摘要: 题目链接 好的 看到这题之后我一直在想反演,然后想不出来,一度以为自己脑子有问题 然后我脑子真的有问题,这题tm根本就不是反演 设f[i][j][k][l]表示现在已经DP到从高位往低数的第i位,有没有碰到n的上界,有没有碰到m的上界,有没有碰到k的上界 然后记忆化DFS搞一搞,把方案数和异或和都记阅读全文
posted @ 2018-04-19 14:25 Konoset 阅读(1) 评论(0) 编辑
摘要: 题目链接 费用流,类似最小路径覆盖。 从起点向i连一条容量1费用0的边,从i'向终点连一条容量1费用0的边; 从起点向i'连一条容量1费用为瞬移的边,从i向j'连一条容量1费用为边权的边。 然后跑就可以了。阅读全文
posted @ 2018-04-19 13:03 Konoset 阅读(1) 评论(0) 编辑
摘要: 题目链接 其实这题用Set就完事了但我不会Set 智商-=inf 求虚树上所有边权和的两倍。 具体方式就是splay把所有在虚树上的点存一下,(按照DFS序排序的)每次插入/删除会更新前驱和它、后继和它、前驱和后继的值阅读全文
posted @ 2018-04-19 09:46 Konoset 阅读(1) 评论(0) 编辑
摘要: 题目链接 这题好喵啊…… 设f[i]是最少用i次才能全关上转移到最少用i-1次才能全关上灯的期望值,那么n个灯里有i个是正确的,剩下的都是不正确的 因此期望是$f[i]=frac{n}{i}+frac{(n-i)*f[i+1]}{i}$ 然后我们把初始状态最少用多少次才能关掉求出来 DP一遍,最后统阅读全文
posted @ 2018-04-18 08:48 Konoset 阅读(2) 评论(0) 编辑
摘要: 题目链接 这次坑我的是与或的结合顺序…… 开十个LCT记录一下即可。以上。阅读全文
posted @ 2018-04-18 08:09 Konoset 阅读(1) 评论(0) 编辑
摘要: 题目链接 这题……费用流即可……(哇啊要被打死辣) 然而我printf("%d")爆零四次 好的心如死灰阅读全文
posted @ 2018-04-17 19:08 Konoset 阅读(1) 评论(0) 编辑
摘要: 题目链接 想到缩点后DP这题就迷之好做 横天门就点向该行连一条边 纵门就点向该列连一条边 ziyou门直接枚举……map搞搞……话说ziyou门为啥是违规内容不让我发布? 然后缩点,DP,1A 不过写得迷之心累……想装死……阅读全文
posted @ 2018-04-17 10:23 Konoset 阅读(2) 评论(0) 编辑
摘要: 题目链接 题目描述非常直接,要求你用快速幂解决第一问,exgcd解决第二问,bsgs解决第三问。 emmmm于是现学bsgs 第二问让求最小整数解好烦啊…… 假设我们要求得方程$ax+by=c(mod p)$的最小整数解 令$d=gcd(a,b)$ 我们求得一个解$x_0,y_0$使得$ax_0+b阅读全文
posted @ 2018-04-17 09:15 Konoset 阅读(3) 评论(0) 编辑
摘要: 题目链接 LCTrotate打错尬死 容易发现本题就是问两边子树大小乘积,于是开个数组动态维护LCT每个节点虚子树上有多少点,在Access和Link的时候更新即可。阅读全文
posted @ 2018-04-17 08:10 Konoset 阅读(1) 评论(0) 编辑
摘要: 题目链接 首先可以想到路径一定是在直径上的。 然后对每个点dfs出不经过直径的以它开始的路径最大长度,记为dis 然后就可以求出直径之后枚举左右端点,设左端点l右端点r,直径上点距离直径上起点的距离用sum[]表示 则此时的$ans=max(max(sum[l],sum[End]-sum[r]),m阅读全文
posted @ 2018-04-16 19:14 Konoset 阅读(1) 评论(0) 编辑
摘要: 题目链接 震惊!两个线段树和一个线段树竟是50分的差距! 本题可以使用二分答案,二分那个位置上最后是什么数。怎么验证呢? 把原序列改变,大于等于mid的全部变成1,小于mid的全部变成0,之后线段树排序。 最后看那个位置上是1还是0,若是1则说明最后那个位置上是个>=mid的数。阅读全文
posted @ 2018-04-16 14:35 Konoset 阅读(1) 评论(0) 编辑
摘要: 题目链接 有个结论是x到y的路径上最长边权值等于最小生成树上最长边权值,于是问题转化为最小生成树。 再考虑把问题反过来,删边变成加边。 于是变成动态维护最小生成树,LCT可以做到。阅读全文
posted @ 2018-04-16 11:02 Konoset 阅读(1) 评论(0) 编辑
摘要: 题目链接 将每个点拆成时刻1~9,然后根据题目要求连边,比如i-j有一条权为x的边就从点i-x向点j-1连一条边,表示经过x次之后可以到达。 然后就矩阵快速幂乱搞就好了。阅读全文
posted @ 2018-04-14 15:55 Konoset 阅读(2) 评论(0) 编辑
摘要: 题目链接 容易发现值为x的点只可能从值为x-1的点转移过来,所以我们把原序列连成一棵树,dfs序就是原序列的一种形式。 就可以直接求啦阅读全文
posted @ 2018-04-14 11:10 Konoset 阅读(3) 评论(0) 编辑