CodeForces 474.D Flowers
生活随笔
收集整理的這篇文章主要介紹了
CodeForces 474.D Flowers
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題意:
有n朵花排成一排,小明要么吃掉連續的k朵白花,或者可以吃單個的紅花。
給出一個n的區間[a, b],輸出總吃花的方法數模 109+7 的值。
分析:
設d(i)表示吃i朵花的方案數。
則有如下遞推關系:
d[i] = d[i-1] + d[i-k], (i ≥ k, d[0] = 1)
我們在計數i+1的情況時,可以分為如下兩種情況:
- 最后一朵是紅花,方案數為d[i]
- 最后k朵是白花,方案數為d[i-k]
然后預處理一下前綴和。
代碼中注意取模。
1 #include <cstdio> 2 const int maxn = 100000 + 10; 3 const int MOD = 1000000000 + 7; 4 int d[maxn]; 5 6 int main() 7 { 8 int t, k, i; 9 scanf("%d%d", &t, &k); 10 11 d[0] = 1; 12 for(i = 1; i < k; ++i) d[i] = 1; 13 for(; i < maxn; ++i) d[i] = (d[i-1] + d[i - k]) % MOD; 14 15 for(i = 1; i < maxn; ++i) d[i] = (d[i] + d[i-1]) % MOD; 16 for(i = 0; i < t; ++i) 17 { 18 int a, b; 19 scanf("%d%d", &a, &b); 20 printf("%d\n", (d[b] - d[a-1] + MOD) % MOD); 21 } 22 23 return 0; 24 } 代碼君?
轉載于:https://www.cnblogs.com/AOQNRMGYXLMV/p/4104016.html
總結
以上是生活随笔為你收集整理的CodeForces 474.D Flowers的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【SQL】大杂烩
- 下一篇: Android UI(三)Sliding