联合省选2025 tj
d1 t2
实际上只需要把\(x\)能到的点集\(S_x\)和\(Sa_{[l,r]}\)交起来得到\(S\),再找到最大的\(v\)满足\(S\)和\(Sb_{[v,n]}\)的交不空即可
可以分块+手写\(bitset\)维护
复杂度\(O(\frac{NQ}w+Q\sqrt N)\)
d1 t3
遗憾\(\times1\)
考虑树/森林的部分分
显然对于每棵树,可以用该联通块内点值最小的那个点作为根,且给它放到序列的第一位
考虑后面怎么做,发现此时根\(rt\)的所有子树对应在序列上都是一段连续的区间,也即可以递归下去,以儿子\(x\)对应的子树为例,但是注意到有连边\((rt,x)\),也就以为着,在\(x\)子树对应的区间\([l,r]\)中,设\(x\)在位置\(p\),那么要满足,\(x\)的子树,要么是在\([l,p)\)中的连续区间,要么是\((p,r]\)中的连续区间
那么树就解决了,森林的话,考虑俩序列 A
和 B
,要么是 AB
的形式,要么是 ABA
,即把 B
整个的插入到 A
中间
注意到如果我们求出了所有联通块的序列,然后也可以这样合并
现在考虑联通块咋整,发现联通块其实就是树上加了点环嘛,考虑咋处理这个环
大概画一个环 1,2,3,4,...,n,1
,定义环边为我们这个环最外面那圈边(\((i,i\%n+1)\)),其余称做横叉边
显然我们必须得是把他们放成 1,2,3,...,n
,任意一个数开头都行,总之要沿着环边绕一圈,否则一定会有边相交的
那么可以发现,所有的横叉边也不能相交,否则一定无解,而题目是保证有解的
那么问题就解决了,只需要对环特殊处理(即必须是按顺序放入序列),剩下的操作和树的操作差不多
这个找到环的过程就对啥各种\(scc\)乱搞就可以得到了啊
复杂度\(O(NlogN)\),瓶颈在排序
d2 t2
先考虑\(C\)性质,此时就是只要有一个点能走到其它所有点即可
若钦定就是\(1\)节点,那么可以设\(dp[S]\)表示\(1\)节点能通过只走\(S\)集合中的数就走到\(S\)集合中所有数的概率,\(1\in S\),转移有\(dp[S]=1-\sum_{T\subset S}dp[T]\times 2^{-edge(T,S-T)}\)
其中\(edge(A,B)\)表示集合\(A,B\)间的边数
现在考虑如果钦定的是集合\(P\)内的点都要到达所有点,怎么办,首先集合\(P\)得是一个强联通的联通块,这个可以类似这种\(dp\)的得到概率,考虑\(dp\)过程中的限制,就是要满足\(P\subset S\)
那么直接\(dp\)复杂度太高,考虑连边\(T\rightarrow S\),满足\(T\subset S\),边权为\(-2^{-edge(T,S_T)}\)
那么\(P\)对应的\(dp\)值就是所有\(P\subset S\)的\(S\)走到全集\(U\)的所有路径的权值和,一条路径的权值定义为所有边的乘积
复杂度\(O(3^N)\)
考虑没有\(C\)性质
首先有一个重要的性质,发现一个随机的图\(G'\)合法,当且仅当\(\forall v\),只取出权值\(\leq v\)的边后,\(G'\)的弱联通块和\(G\)的弱联通块都相同,且\(G'\)的每个弱联通块中都要有一个点能到达该弱联通块的所有点
考虑从\(v\rightarrow v+1\)的过程,实际上就是在合并所有弱联通块的\(P\)
枚举\(v\),现在取边权\(\leq v-1\)的所有边后的图,考虑加上权值为\(v\)的边后的影响
设\(f[S]\)表示\(S\)中的点恰为它们所处弱联通块的\(P\)的概率,且它们在加入\(v\)后存在\(S\)中某些点能到达\(S\)中所有点,\(g[S]\)表示\(S\)中的点都在同一弱联通块中且\(S\)就是该联通块的\(P\)的概率
转移过程类似\(C\)性质的
因为每次只需要重新计算会发生改变的部分,所以复杂度\(O(3^N)\)
d2 t3
遗憾\(\times2\)
考虑把原序列循环个\(m\)次,且每次把所有元素都\(-1\)
那么最终得到的序列就等同于,找到一个序列\(0<p_1<p_2<...<p_k\),满足\(p_1+n=p_k\),且\(a_{p_i}>a_{p_{i-1}+1\sim p_i-1}\)
然后如果你想得到复杂度大点的做法就是没想到循环多次,后面解法差不多,就是很多优雅的优化做不到了,为啥我知道,因为我考场就还没来得及上这个优化
然后你得到的就是\(a_{p_2\sim p_k}\),这里可以发现\(p_k\leq n\)得不到啊,这个反正暴力处理一下就好了嘛
然后发现有很多\(\{p_i\}\)其实本质相同,就是满足\(\forall i\leq k\),\(p_i=p'_i+ne\),其中\(e\)对于一对\(\{p_i\}\)和\(\{p'_i\}\)是一个固定的非零整数
我们称之为等价类
对于同一等价类的,显然可以放到那个\(p_1\)最小的上面去处理,然后这个\(\{p_i\}\)对答案的贡献就是\(\min a_{p_i}\),且此时满足\(p_1\in[1,n]\)
显然可以\(dp\)了
如果把\(\min\)值放进\(dp\)位里复杂度太高了,于是考虑固定\(u\)满足\(u\in\{p_i\}\)且\(u\)是满足\(a_u=\min\)且最小的点,那么就是说,\(<u\)的只能选\(>a_u\)的,大于\(u\)的可以选\(\geq a_u\)的
\(dp\)转移显然两侧独立,且其中一侧的转移有单调性
复杂度\(O(N^2)\)