随笔分类 -  性质推理

性质推理
摘要:https://loj.ac/problem/576 题解: 考虑询问了区间$[l,r]$,就知道了和,也就知道了$s[r]$和$s[l-1]$的差。 那么给$r$和$l-1$连一条边,我们相当于要搞出点为$0..n$的最小生成树。 运用kruskal的想法,每次找最小的连接不同联通块的边,发现一定 阅读全文
posted @ 2020-08-01 10:59 Cold_Chair 阅读(417) 评论(0) 推荐(0)
摘要:题目大意: 给一棵$n$个点的树,选$k=1 \sim n$条不相交边,使得权值和最大。 \(n \le 2 \times 10^5\) 题解: 考虑设$f[i][j][0/1]$表示$i$子树里选了$j$条边,$i$选了没有的最大值。 猜性质,它是凸的。 那么就可以闵科夫斯基和快速合并两个这样的数 阅读全文
posted @ 2020-07-21 21:37 Cold_Chair 阅读(303) 评论(0) 推荐(0)
摘要:Description: : $1 \le n, Q \le 5e5$ 题解: 这题唯一的难度就是如何知道最小不可询问子草原绿值。 这个相当于问:有一堆数,每个可以用一次或不用,问最小凑不出来的自然数是多少。 首先把这些数排序,假设当前的答案是$p$,初值$=1$ 从小到大加入每个数$x$,若$x 阅读全文
posted @ 2020-05-09 22:17 Cold_Chair 阅读(424) 评论(2) 推荐(0)
摘要:https://loj.ac/problem/2087 干脆把这年NOI改成猜结论大赛好了。 先把$h$从小到大排序。 上来先猜三个显然的结论: 1.一个$h[i]$不会被用多次 2.我们用到的一定是$h$的一个后缀 3.$h$的后缀用法,把$h$的后缀划分成若干段,从左往右每次合并一段 设$f[i 阅读全文
posted @ 2020-04-29 17:46 Cold_Chair 阅读(195) 评论(0) 推荐(0)
摘要:https://loj.ac/problem/2084 发现当c=0的时候,我们可以选择把角上的一个点围起来使得答案$\le 2$ 所以大胆猜想任何时候答案$\le 2$ 什么时候是 1呢?$c\le 2$且这些点相邻。 什么时候是0呢?白点一开始就不连通。 什么时候是1呢?白点中有桥点。 其它时候 阅读全文
posted @ 2020-04-29 11:40 Cold_Chair 阅读(194) 评论(0) 推荐(0)
摘要:https://codeforces.com/contest/1270/problem/H 考虑一个联通块一定是一个连续段,可以反证,假设有两段,发现中间的数一定会和两段相连。 那么其实就是要求分界点的个数。 一个分界点可以定义为左边的数全部大于等于右边的数。 那么枚举一个$v\in a[i]$,把 阅读全文
posted @ 2020-04-28 15:03 Cold_Chair 阅读(245) 评论(0) 推荐(0)
摘要:http://codeforces.com/contest/1158/problem/F 先考虑如何求一个序列的density。 假设要求序列$A[1..n]$的density。 找到$A[1..n]$的最小一个前缀$A[1..i]$,使其包含$1 c$的所有颜色。 那么我们可以 以这些颜色作为那些 阅读全文
posted @ 2020-04-27 16:59 Cold_Chair 阅读(418) 评论(0) 推荐(0)
摘要:https://loj.ac/problem/3210 过了这么久看看自己要多久才能切这题,发现还是想歪了一次。 先考虑暴力的做法。 还是贪心的逐位确定,逐位确定判有没有解,相当于下面的问题: 树上有一些路径,一条路径表示要把$x$的数字换到$y$去,问有没有解。 对于一条路径$p[1],p[2], 阅读全文
posted @ 2020-04-24 12:19 Cold_Chair 阅读(929) 评论(0) 推荐(0)
摘要:https://loj.ac/problem/522 第一个性质是在告诉我们这是个DAG。 所以暴力的做法就是设$f[i]$表示$i$结尾的最大答案,去枚举能够到达$i$的$j$,转移即可,转移顺序可以按半径从大到小。 注意到那个转移式显然是不可优化的,也就是我们只能暴力枚举$j$,事实上对于每个$ 阅读全文
posted @ 2020-04-22 12:45 Cold_Chair 阅读(460) 评论(0) 推荐(1)
摘要:https://loj.ac/problem/2434 先考虑$a[i]$确定时,答案怎么求? 设$s[x]$表示$x$为根的子树的$a$的和。 对于每一个$x$为根的子树,假设确定了$x$的儿子的子树的答案,接下来合并,那么显然是尽可能插空合并。 设$max=max(a[x],s[y1],s[y2 阅读全文
posted @ 2020-04-11 21:32 Cold_Chair 阅读(181) 评论(0) 推荐(0)
摘要:https://loj.ac/problem/3014 题解 对于一个点x,合法的y一定在它到最远点的路径上。 而一个点x的最远点一定是直径的一个端点。 那么以直径的端点做根,每一个点x在距离较大的那个根上统计答案。 那么就是求每个点x到根路径上的合法的y的不同颜色数。 先对树进行长链剖分,设son 阅读全文
posted @ 2020-03-13 21:09 Cold_Chair 阅读(221) 评论(0) 推荐(0)
摘要:http://codeforces.com/problemset/problem/603/E 题解: 先思考对于一个图怎么样是合法的? 如果这个图有奇数大小的联通块,显然不行: 因为一条边会使度数和+2,度数和始终是偶数,而奇数大小联通块要求的度数和是奇数。 大胆猜测这也是充分条件。 证明的话,对于 阅读全文
posted @ 2020-03-05 20:35 Cold_Chair 阅读(258) 评论(0) 推荐(0)
摘要:https://loj.ac/problem/3153 题解: 若有$a[i]、a[j](i=a[i],a[j]$,则$a[i]、a[mid]$作为前两个一定更优。 那么,所以有用的$a[i]、a[j]$便缩减到了$O(n)$个,具体为每个数和它左边第一个比他的大的数形成的对+每个数和它右边第一个大 阅读全文
posted @ 2020-02-29 22:30 Cold_Chair 阅读(446) 评论(0) 推荐(0)
摘要:https://gmoj.net/senior/ main/show/100137 题解: 对于一个串$S$,怎么求$f(S)$? 把S结尾的一段连续B去掉。 我们知道最后一定是变成AAA……BBB…… 考虑将'A'看做+1,’B‘看做 1,变成了一个折线图 每次会使最低点+1,直到最低点=A的个数 阅读全文
posted @ 2020-02-25 17:04 Cold_Chair 阅读(315) 评论(0) 推荐(0)
摘要:题解: 显然对整个序列考虑不行,不如对每一个元素单独考虑。 一个元素x在x和x+1都成为分割点前显然会被一直计算答案,设$T(x)$表示x分割点出现的时间。 那么$Ans=\sum_{i=1}^n max(T(i 1),T(i))$。 众所周知,冒泡排序都是去考虑每一个元素的往左移动,而不是往右移动 阅读全文
posted @ 2020-02-25 14:23 Cold_Chair 阅读(207) 评论(0) 推荐(0)