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;

全部评论

相关推荐

无敌虾孝子:喜欢爸爸还是喜欢妈妈
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务