CF - 474 - D. Flowers(dp)
2014-11-10 20:02
267 查看
题意:一个兔子要吃红萝卜和白萝卜(排成一排),但是吃白萝卜时必须吃连续的 k 个,t 个询问(1 ≤ t, k ≤ 10^5),每个询问为a, b (1 ≤ ai ≤ bi ≤ 10^5),问长度为 a 到长度为 b 的区间有几种符合这只兔子吃法的排列有多少种。。
题目链接:http://codeforces.com/problemset/problem/474/D
——>>状态:dp[i] 表示前 i 个萝卜符合要求的排列总数
状态转移方程:dp[i] = (dp[i - 1] + dp[i - k]) % MOD;
加上预处理OK。。
(输入开挂46MS,比不开挂的 78MS 短。。)
#include <cstdio>
const int MOD = 1000000007;
const int MAXN = 100000;
int t, k;
int dp[MAXN + 10], sum[MAXN + 10];
void Init()
{
dp[0] = 1;
sum[0] = 0;
for (int i = 1; i <= MAXN; ++i)
{
dp[i] = dp[i - 1];
if (i >= k)
{
dp[i] = (dp[i] + dp[i - k]) % MOD;
}
sum[i] = (sum[i - 1] + dp[i]) % MOD;
}
}
int ReadInt()
{
int ret = 0;
char ch;
while ((ch = getchar()) && ch >= '0' && ch <= '9')
{
ret = ret * 10 + ch - '0';
}
return ret;
}
void Solve()
{
int a, b;
getchar();
while (t--)
{
// scanf("%d%d", &a, &b);
a = ReadInt();
b = ReadInt();
printf("%d\n", ((sum[b] - sum[a - 1]) % MOD + MOD) % MOD);
}
}
int main()
{
while (scanf("%d%d", &t, &k) == 2)
{
Init();
Solve();
}
return 0;
}
题目链接:http://codeforces.com/problemset/problem/474/D
——>>状态:dp[i] 表示前 i 个萝卜符合要求的排列总数
状态转移方程:dp[i] = (dp[i - 1] + dp[i - k]) % MOD;
加上预处理OK。。
(输入开挂46MS,比不开挂的 78MS 短。。)
#include <cstdio>
const int MOD = 1000000007;
const int MAXN = 100000;
int t, k;
int dp[MAXN + 10], sum[MAXN + 10];
void Init()
{
dp[0] = 1;
sum[0] = 0;
for (int i = 1; i <= MAXN; ++i)
{
dp[i] = dp[i - 1];
if (i >= k)
{
dp[i] = (dp[i] + dp[i - k]) % MOD;
}
sum[i] = (sum[i - 1] + dp[i]) % MOD;
}
}
int ReadInt()
{
int ret = 0;
char ch;
while ((ch = getchar()) && ch >= '0' && ch <= '9')
{
ret = ret * 10 + ch - '0';
}
return ret;
}
void Solve()
{
int a, b;
getchar();
while (t--)
{
// scanf("%d%d", &a, &b);
a = ReadInt();
b = ReadInt();
printf("%d\n", ((sum[b] - sum[a - 1]) % MOD + MOD) % MOD);
}
}
int main()
{
while (scanf("%d%d", &t, &k) == 2)
{
Init();
Solve();
}
return 0;
}
相关文章推荐
- Codeforces 474 D Flowers(DP)
- CF 219D Choosing Capital for Treeland 【树形dp + 思维】
- (poj1157)LITTLE SHOP OF FLOWERS(DP)
- CF_55D——Beautiful numbers(离散化数位DP)
- 【DP】 cf 321E
- 【CF 736C】Ostap and Tree,树形DP
- CF - 797E. Array Queries - dp+有选择地暴力
- POJ 1157 Little shop of flowers(DP,最优搭配)
- CF 445A Boredom DP
- CF 417D - Cunning Gena--状态压缩DP
- CF 475D CGCDSSQ 解题报告(DP)
- Codeforces 474 D. Flowers
- CF 55D 数位DP
- CF-18E - Flag 2(DP多阶段决策)
- cf 495人题 简单dp
- CF 316 E. Pig and Palindromes 求左上角走到右下角是回文的方法数 DP
- SGU 104 Little shop of flowers [dp]
- POJ 1157 LITTLE SHOP OF FLOWERS (插画的最大值_经典的动态规划DP)
- CF 9D. How many trees?(dp)
- Little shop of flowers - SGU 104 (DP)