您的位置:首页 > 其它

JZOJ 100035【NOIP2017提高A组模拟7.10】区间

2017-07-10 19:23 295 查看

题目大意:



1<=k<=n<=2∗107

1<=t,p<=109

time limits:2s

题解:

我们注意到这是没有办法用逆元的。

但就就是这就是分块啊(为毛比赛没有一个人想到)。

把n个序列分成长度为k的若干段,当然最后一段不一定是k。

然后对每一块求一个前缀、后缀乘积和。

最后暴枚区间,注意到每个区间刚好会被两段或一段覆盖,直接O(1)算即可。

这道题最难点在于想到刚好每段是k个,这样查询时刚好只会覆盖两段的前缀、后缀。

如果是k+1、k-1个,还勉强可以。

k+2个,可能就不是前后缀了。

k-2个,可能就覆盖三段了,就是这么巧。

Code:
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: