T1
这个题就是考虑去大力分类讨论。
首先可以知道(K>3)的情况答案肯定是0.
那么分类讨论(3,2,1,0)的情况。
首先是(k=3)的情况。
这个情况很简单。
首先(m)必须为3。
就是我们考虑一下用总的方案去掉钝角三角形的方案。
那么答案就是:
这很简单直接等差数列求和就可以。
(k=2)
这个分(m)是不是(3)两种情况。
答案分别是
两个锐角在凸包上必然相邻。
那么我找到这两个锐角的点,然后找其他的位置上的点的个数就可以了。
这个组合数是(inom{i}{m-2})多个求和得到的。
(k=1)
这个情况可以枚举一个锐角,然后找到形成锐角的三个点,在同时找到这两个边里面的点,从中选出(m-4)个就可以了。
这样需要保证(mgeq 5)
这一部分的答案是(n(m-4)inom{frac{n}{2}+1}{m-1})这是做了两次组合数求和得到的。
(k=0)
我们知道(kleq 3)。
所以
就可以了。
T2
对于若干个和为(n)的变量。
我们发现其权值种类数不超过(sqrt{n})。
那么分析操作。
对于某个点,如果想要增加其儿子的权值种类数。
必然要去操作其孙子。
那么其儿子有效增加权值种类数的操作个数最多是(m),那么依靠这种方式增长的权值最多有(m)个。
所以一个点儿子的权值种类个数最多是(sqrt{m})个。
这样我们搞个前向星存一下各个种类的权值和个数来维护就可以了。
T3
设(n)个变量(x_iin[1,T])的和为(j)的方案数为(G(n,j))
我们发现需要求的答案是:
后面的组合数是可以展开的。
这样我们只需要知道对于一个(j),(G(n,x)x^j)的和是多少就可以了。
我们这样来求。
用生成函数。
设
(F(j,w)=sumlimits_{|x|=w}(sum x_i)^j)
这样我们发现有这种类似卷积的转移:
这样就可以了。
那么最终我们相当于做了一个长度为(m-n)的多项式快速幂。
直接暴力做就可以了。
然后我们知道(F(j,1)=sumlimits_{i=1}^{T}i^j)
这个自然数幂和直接拉格朗日插值插出来就可以了。
复杂度是(O((m-n)^2logn))