首先ORZ PB优化
考虑在k的位置把一个合法序列掰成两半:\([1,k-1]\)和\([k+1,n]\)spa
先考虑摆\([k+1,n]\)的方案数,容易发现剩下的是一个单调队列,每次能够从头尾两端取。设\(A_i\)表示有\(i\)个元素的单调队列的取法,有\(A_0=A_1=1,A_i=2A_{i-1}(i\geq 2)\),显然这能够预处理翻译
而后是考虑\([1,k-1]\)的方案数。能够发现code
设\(f[i][j]\)表示填了\(i\)个数,最小值为\(j\)的方案数排序
考虑新加一个数\(k\),若是\(k<i\),那直接转移,不然只有当前没填过的最大的\(k\)能加入序列,不然会构成大于2个单调降低序列或者破坏性质2.队列
因此有\(f[i][j]=\sum\limits_{k>j} f[i][k]+f[i-1][j]\)游戏
后缀和优化便可get
代码it
首先 和你旁边的人 手玩一下样例和本身造的树io
而后你旁边的人就会骂你把必败态给他玩
而后你会发现,若是存在叶子节点,选它的父亲能够迫使后手选叶子节点,重复这个过程。
再想一下,若是把已经涂色的点删掉,这个过程就是贪心求完美匹配的过程。
因而有结论:若是存在完美匹配,后手胜,不然先手胜。
一个取模引起的血案
这东西正着算很难算,考虑反着算 而后你就作完了
设\(f_{x,k}\)表示选k个点组成的连通图中不包括x的方案数,易知这k个点都在x的子树中
因此\(f_{x,k}=C^n_k-\sum\limits_{u\in x} C^{sz_u}_k\),\(ans_k=\sum f_{x,k}=n*C^n_k-\sum\limits_x\sum\limits_{u\in x} C^{sz_u}_k\)
设\(sz_u=i\)的个数为\(num_i\),则
\(ans_k=n*C^n_k-\sum\limits_{i=1}^{n-1} num_i*C^{i}_k\\=n*C^n_k-\sum\limits_{i=1}^{n-1} \frac{i!}{(i-k)!k!}\\=n*C^n_k-\frac{1}{k!}\sum\limits_{i=1}^{n-1} \frac{i!num_i}{(i-k)!}\)
令\(A_i=num_i*i!\),\(B_i=\frac{1}{(n-i)!}\),这就是一个套路的NTT
从原图中随便取一个凸多边形出来,设顶点点集为\(S\),凸多边形内(不含顶点)的点的集合为\(T\)
设\(T\)的子集为\(T'\),则$ S\cup T'$有\(2^{|T|}\)种取法,即\(2^{|S\cup T|-|S|}\)种取法,是否是和原题求的东西很像呢?也就是说,一个存在凸包的点集对答案有1的贡献。
因而就枚算一下不存在凸包的点集,即所有点共线的点集的个数,直接暴力\(O(n^3)\)
首先能够发现,不互质的数的相对位置不会改变。
而后你按字典序,对一个数\(x\),把它和尽可能小的不和它互质的数连边(这个我不知道怎么讲清楚,看代码8……),而后你就获得了一堆拓扑图。把它们丢去拓扑排序,按照题意,每次必定会把当前最大的入度为0的点输出,用优先队列维护拓扑排序的过程便可。
以前按奇数的个数讨论胜负,一看到题解"奇数个偶数"我就知道我想假乐
而后从新想
若是这个序列中若是存在1,把这个序列中(不为1的数-1)加起来,若是和为奇数先手胜,不然后手胜。
考虑前后手的一轮操做,在没有除法的状况下,能够保证奇/偶数个数的奇偶性不变,一样,在这个过程当中,gcd为奇数,因此除法不影响奇/偶数个数的奇偶性。而后变到1就不能操做,偶数个数整体趋势仍是减小的。当只剩一个偶数和一堆1时,根据上面的结论先手胜。因此有偶数个奇数时,先手必胜。
不然若是有偶数个偶数时,考虑游戏中任意一个局面,它的gcd为1,说明原序列中有\(\geq 1\)个奇数。也就是说,若是先手对偶数执行-1操做,gcd一直为奇数,除掉了之后奇偶数的个数不变,即变成了有奇数个偶数的状况,此时先手必败。那操做奇数呢?只剩下一个奇数时才能这么干,不然仍是先手必败,理由同上。因此有偶数个偶数,且奇数个数\(> 1\)时,后手必胜,不然除掉gcd继续处理。
模拟一下就完了
首先能够建一个\(i\rightarrow p_i\)的图,它显然会有不少个环。一个\(i\rightarrow a_i\)的图是由\(i\rightarrow p_i\)或\(i\rightarrow p_{p_i}\)的边组成
而后考虑一个环在通过这样子变化后会变成怎样:
全是\(i\rightarrow p_i\)的边
和原图同样
全是\(i\rightarrow p_{p_i}\)的边
奇环没被拆掉,不过和原来的环长得不同。
偶环被拆成两个大小同样的环。
两种边都有
最后会造成环套树,且树是链的形态,一个环点只能挂一条链。
如今从\(i\rightarrow a_i\)反推会\(i\rightarrow p_i\)
环
偶环和自环没变化,贡献为1
奇环能够变得不同也能够维持原样,贡献为2
合并环,设合并\(2i\)个长为\(l\)的环。因为环的形态是固定的,因此合并两个环的方案数为\(l\) . 而后环对内的顺序和环对的相对顺序没有关系,因此最后方案数为\(\frac{l^i*(2i)!}{i!2^i}\)
环套树
设挂链的环点为关键点,链长为\(len\),一个点和它后边第一个关键点的距离为\(dis\)
若是\(len<dis\),链的第一个点有两个地方塞,因此有两种塞法
若是\(len=dis\),只有一种塞法
不然没有塞法
加法/乘法原理统计一下就好了
1操做map判断有无连边,2操做可撤销并查集维护
上面是假的,在线要写ETT,然而LOJ最短的ETT板子也有6k……
考虑\(lstans\)只有0和1两种取值,而后就能够把一个询问\(q_i\)拆成两个\(q_{i,1},q_{i,2}\),组成全局询问。对全局询问处理,处理出和下一个和\(q_{i,j}\)彻底同样的询问出现的时间\(nxt\),则\(q_{i,j}\)这个询问存在的时间为\([i+1,nxt]\)。而后线段树分治+可撤销并查集进行处理。
处理方法:分治按时间分治。记上次的答案为\(lstans\),而后处理出真的询问/修改。若是是询问直接询问。若是是修改就拿个map记一下这个修改有没有被加过,没被加过就把这个修改对应的区间加上这条边,不然不加。
对于\(lstans\oplus 1\)对应的修改,也要判断是否能够加到线段树里进行加边,可是不哟用修改map!!
正确性嘛……没有涉及到的边会一直加,直到被涉及到……
哎金华集训讲过来着?证实我在睡觉
这里意译翻译一个官方题解,感受很妙:
考虑直接容斥:
求全部\(i\)知足\(p_i^2+i^2<(2n)^2+1\)的状况下,钦定\(k\)个\(i\)知足\(p_i^2+i^2<n^2\)的方案数。设\(l_i\)表示知足\(x^2+i^2<n^2\)最大的\(x\),\(r_i\)表示知足\(x^2+i^2<(2n)^2+1\)最大的\(x\).令\(被钦定了没被钦定h_i=l_i(被钦定了)\;or\;r_i(没被钦定)\)。把\(h_i\)从小到大排序,则方案数为\(\prod\limits_{i=0}^{2n-1} (h_i-i)\)
而后你 就须要和出题人同样有强大的脑洞 要考虑一下\(h\)有什么限制:
把\(l_i\)和\(r_i\)划分红三个集合\(A\),\(B\),\(C\):
设\(A\),\(B\),\(C\)里的元素分别为\(a\),\(b\),\(c\),把它们升序排序会发现全部的\(c\)在\(a\)和\(b\)的前面。
而后对于\(n\leq i\leq 2n-1\),\(h_i\)必须等于\(r_i\)。对于\(0\leq i \leq n-1\),\(h_i\)能够在\(l_i,r_i\)里选一个
先枚举选了多少个\(a\),而后考虑到\(i\)变大时\(l_i\)和\(r_i\)都是递减的,且对于同一个\(i\),\(l_i<r_i\)。因此设\(dp[i][j]\)表示dp到第\(i\)个数,选了\(j\)个\(a\). 先把全部的\(l,r\)排序,而后分类讨论这是\(a\)仍是\(b\)仍是\(c\),再记录一下填了有多少个\(b\)就能够\(O(1)\)肯定一个数的位置啦,就完了8
一题拖一星期我也真是厉害……
树是个二分图,因而把它黑白染色,设黑点权值为\(-1\),白点权值为\(1\),以\(x\)为根的子树和为\(f_x\)
则答案为\(\sum\limits_{i=1}^n |f_i|\)
咱们把黑点当作洞,把白点当作球。这个式子就是让\(i\)子树内全部子树内全部的洞和球都匹配完。为了达成这目的,咱们须要经过父边运一些球进来或运出去
设环边链接的两个点为\(u,v\)。所以\(u,v\)同色,就是咱们操做一次,能够往\(u,v\)同时放下或同时拿出一个球,因此能够计算出操做\((u,v)\)的次数(即\(f_1/2\)),剩下的按树的作
此时\(u,v\)不一样色,所以操做一次\(u\rightarrow v\)就至关于把\(u\)和它祖先的\(f\)都\(+1\),把\(v\)和它祖先的\(f\)都\(-1\)(\(v\rightarrow u\)同理)
设操做\(u\rightarrow v\)了\(x\)次(\(x<0\)即为操做\(v\rightarrow u\))
即要求\(\sum\limits_{x\in fa_u}|f_x-x|+\sum\limits_{y\in fa_v} |-f_y-x|\)的最小值
\(x\)取中位数便可