TC SRM 660 div2 1000pts
题意:
f(i)=i2k−1 ,求: (∑ni=1f(i))modM
参数范围:i ⊂[1,100000],k⊂[1,400],M⊂[1,1000000000]
思路:
首先呢,求 f(i) ,就是一个快速幂嘛,但是指数是 2k−1 ,转化成二进制就是 1⋅1⋯1k 个 ,所以快速幂的复杂度就是 O(k) ,然后怎么求快速求解答案呢?对于每个素数 i ,直接可以得到
f(i) ,贡献记为 s[i] ,那么对于不是素数的 i 的话,相信你知道怎么做了吧,分解质因数啊,因为素数对答案的贡献我们已经知道了为s[p] ( p 为i 的质因子),所以就可以快速得到 i 为非素数时候的答案了!比赛的时候只想到了求逆元,所以就GG了~~,好爽!
codeforces round #239(div 2) D long path
思路:
就是一个递推关系,利用前面已经得到的状态信息!这里dp的定义比较重要,可以定义
dp[i] 为从 i 到i+1 号房间所需步数,所以:
dp[i]=2+∑j=i−1j=a[i]dp[j]modM ,初始化呢就是 dp[1]=2 ,这里 a[i] 是指他使用第二个转送可以到达的地方!
codeforces round #239(div 2) E
思路:
待补。。。