摘要:
Description: https://gmoj.net/senior/ main/show/5728 题解: 考虑不是环上怎么做: 预处理$f[i][j]$表示i个分成j段,段与段之间有序,且乘上的了段的大小,这样的所有方案权值和。 考虑,现在相当于有第i个颜色有$b[i]$段,把这些合并,是的 阅读全文
摘要:
Description: https://gmoj.net/senior/ main/show/6638 题解: 因为数据太水了,所以暴力用map维护就能过这题了。 考虑一个更加靠谱的做法,类似于《蚯蚓》,用两个队列维护,一个队列是一开始的排好序加进去。 另一个队列就是新产生的数的队列。 不难发现, 阅读全文
摘要:
Description: : $1 \le n, Q \le 5e5$ 题解: 这题唯一的难度就是如何知道最小不可询问子草原绿值。 这个相当于问:有一堆数,每个可以用一次或不用,问最小凑不出来的自然数是多少。 首先把这些数排序,假设当前的答案是$p$,初值$=1$ 从小到大加入每个数$x$,若$x 阅读全文
摘要:
https://gmoj.net/senior/ main/show/5753 $1\le n \le 1e5$ 题解: 加入一个串之后答案会发生什么变化呢? $ans+=n max\{lcp(news,s'\in oldS)\}$ 现在思考如何快速求两个串的lcp,发现可以维护每个串的hash值的 阅读全文
摘要:
https://gmoj.net/senior/ contest/show/2391/1 $T\le 10, n \le 100$ 发现不会有两个矩形的横坐标是相交的,这样不如变成不相交更优。 但是会有两个矩形是包含的。 设$f[i][j][k]$表示覆盖横坐标$\in [i,j]$,纵坐标$ k$ 阅读全文
摘要:
https://www.luogu.com.cn/problem/P1224 先考虑$k=2$怎么做。 注意到点积不为0就为1。 我们随机一个排列$p[i]$,然后枚举$i=1 n$,看看$p[i]$与$p[1..i 1]$的点积和$S$。 如果$S≠(i 1)~mod~k$,则说明$p[1..i 阅读全文
摘要:
http://uoj.ac/problem/7 记$dis[i]$为到根的距离。 dp就是: $f[i]=min(f[j]+(dis[i] dis[j]) p[i]+q[i])$ 可行的$j$是$i$到一个祖先的一条链。 考虑树是一条链的时候,直接扫过去并用线段树维护下凸壳,查询就线段树上每个区间二 阅读全文
摘要:
https://loj.ac/problem/2087 干脆把这年NOI改成猜结论大赛好了。 先把$h$从小到大排序。 上来先猜三个显然的结论: 1.一个$h[i]$不会被用多次 2.我们用到的一定是$h$的一个后缀 3.$h$的后缀用法,把$h$的后缀划分成若干段,从左往右每次合并一段 设$f[i 阅读全文
摘要:
https://loj.ac/problem/2084 发现当c=0的时候,我们可以选择把角上的一个点围起来使得答案$\le 2$ 所以大胆猜想任何时候答案$\le 2$ 什么时候是 1呢?$c\le 2$且这些点相邻。 什么时候是0呢?白点一开始就不连通。 什么时候是1呢?白点中有桥点。 其它时候 阅读全文
摘要:
https://codeforces.com/contest/1270/problem/H 考虑一个联通块一定是一个连续段,可以反证,假设有两段,发现中间的数一定会和两段相连。 那么其实就是要求分界点的个数。 一个分界点可以定义为左边的数全部大于等于右边的数。 那么枚举一个$v\in a[i]$,把 阅读全文