腾讯算法笔试

白花问题,哪里出错了啊,调了一个多小时通过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

相关推荐

10-14 23:01
已编辑
中国地质大学(武汉) Java
CUG芝士圈:虽然是网上的项目,但最好还是包装一下,然后现在大部分公司都在忙校招,十月底、十一月初会好找一些。最后,boss才沟通100家,别焦虑,我去年暑假找第一段实习的时候沟通了500➕才有面试,校友加油
点赞 评论 收藏
分享
点赞 9 评论
分享
牛客网
牛客企业服务