T1
1
先考虑只有n的时候怎么求。。。。。。。。。。。。
First【x】表示x处的数,在他之前最先出现的是哪里。
Dp[i]表示到i的时候,他的所有子区间的和;
没有出现过。。
Dp1是i前面包括i的子区间的和
Dp[x]=dp[x-1]+dp1[x];
第一次出现的位置为r
Dp[x]=dp[x-1]+dp1[x];
考虑长度小于等于n的序列。
Point 30
当k==2
用同样的方式求一个dp[2*n];
找规律
等差数列
一共有k-2项 公差是d
D=i-first[i];
推到3.。。。。。。。。。。。。。。。只求出dp1首项
2*n之后i%n相同的是等差,并且公差一样.
%n==1***是dp1【z*n+1】最后一项是((k-2-1)*d+x+x)*(k-2)/2;