~10-11 部分题解。
密码xoi。
删去了部分一句话题解。
10.1
T4 euclid
看
建出后缀数组后,发现本质上就需要查询
直接做有些麻烦。
换维后,把
10-2
T1 safe
首先逆序对二分图,直接转成顺序对两个团。
顺序对一定有传递性,所以我们选出来的必定是两条上升子序列。
判定性问题不难。可以
那最优化就可以按位贪心。如果这一位取负的话,后面能接上,那就可以,否则不行。
T3 euclid
妙妙博弈。
考虑如果现在在
否则我们对于对方必输的点维护一个
如果他能到达能对面输的点,并且这个点权值要小于当前点权值,他能赢。
题解感觉就很妙妙呀,就是不管是谁,每次都只能走权值更小的点,否则是负收益。
然后看谁走最后一步。完事了!!!
T4 keter
很怪的题呀。
conclusion 1:
考虑选的斜率
然后求和就是
直接背包的复杂度是
根据结论,我们可以换维做到
然后根据一个贪心,如果我们要选
conclusion 2:
合法的
证明很不严谨,并且似乎常数很大?
这个
在
分别积分一下,得到
然后
10-5
T3 euclid
记住后缀排序,基数排序是从后往前排的。
感觉从高位往低位做很困难,但是反过来就容易了。
从低向高合并,如何判断这一位是
也就是将新的字符串重新标号,然后变成
T4 euclid+
赞美保证有解。
首先一个obs是如果
然后由于一定是长的区间包含,短的区间;不难想到从短往长去合并区间。
由于保证有解,我们一定要么没有与其相交的区间,要么相交。
如果此时被覆盖,那么那两个拼起来的区间,一定和该区间有交,那么把两段交拼起来。也是合法的。
不相交正确性显然。
相交的话,考虑与他前面交的极长那段,和后面极长那段,不难发现这两段都是合法的。然后本质上就是不交情况。
然后拿并查集维护连续段就好。
10-8
T3
式子简单的,就折线嘛。
主要是如何处理
我们可以直接扩域
求逆也很简单,做完了。
T4
发现这东西类似链覆盖呀。
考虑链覆盖的时候我们在干什么,我们最后减去了链边的贡献。
也类似的考虑,我们先让每个状态直接连到
那就直接减去原先这条链的贡献,就好。
网络流建模,就是左边的点,连向右边的点,一个右边的点,实际上会回到左边,接上继续做。
然后直接费用流就行。
10-11
T3
李超树/维护凸包。
现在想想,是个很板子的李超。自己却做成了“维护最大子段”。
T4 euclid
Q1
如果我们知道了每个连通块的大小,如何知道构成的树的个数。
所以答案就是
然后我们先二项式反演一下。变成求钦定
然后一个连通块的贡献就是
发现如果我们要去维护
正确的解决办法是考虑
然后此时我们只需要知道最上面的点所在连通块被没被选即可。
这样变成
10-11
T3
积和式的求解是难的,但是判断积和式是否
这个题如果我们钦定后,那么判断积和式减去他的超集是否为
所以还是经典套路,把每条边随机一个权值,放入。然后计算行列式的值。
值得注意的是:行列式交换两行是要变号的!!!!。
T4
被暴力过了。/kk
树上
当然这只能处理包含根的答案。
再套上个点分树就好了。
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!