腾讯算法笔试

白花问题,哪里出错了啊,调了一个多小时通过0
long int mod = 1e9 + 7;
int main() {
int n;
int k;
cin >> n;
cin >> k;
for (int i = 0; i < n; i++)
{
int a;
int b;
cin >> a >> b;
if (k>b)
{
cout << 1 << endl;
continue;
}
vector<long int> dp(b + 1,0);
for (int j = 1; j < k; j++)
dp[j] = 1;
dp[k] = 2;
for (int j = k + 1; j <= b; j++)
{
dp[j] = (dp[j - 1] + dp[j - k]) % mod;
}
long int num = 0;
for (int j = a; j <= b; j++)
{
num = (num + dp[j])%mod;
}
cout << num << endl;
}
}

#腾讯##笔试题目#
全部评论
我的过了
点赞
送花
回复
分享
发布于 2019-09-01 23:37
为什么第二题我我没看到要取模啊?
点赞
送花
回复
分享
发布于 2019-09-02 00:21
滴滴
校招火热招聘中
官网直投
我的dp跟你写的差不多,也是0,我结束后才想到一个,边界有问题,k>b的时候不能直接输出1,要输出a到b的累加值
点赞
送花
回复
分享
发布于 2019-09-01 23:44

相关推荐

点赞 9 评论
分享
牛客网
牛客企业服务