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;

全部评论

相关推荐

头顶尖尖的程序员:我也是面了三四次才放平心态的。准备好自我介绍,不一定要背熟,可以记事本写下来读。全程控制语速,所有问题都先思考几秒,不要急着答,不要打断面试官说话。
点赞 评论 收藏
分享
05-27 14:57
西北大学 golang
强大的社畜在走神:27届真不用急,可以搞点项目、竞赛再沉淀沉淀,我大二的时候还在天天打游戏呢
投递华为等公司10个岗位
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-11 11:00
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务