0 点赞 评论 收藏
分享
牛客98450396...:#include<iostream>
(5488)#include<vector>
using namespace std;
int solution(vector<int>& choice, int r, vector<int>& dp)
{
if (r < 0)
return 0;
if (dp[r] != 0 || r == 0)
return dp[r];
long cur = 0;
for (auto i : choice)
{
cur += solution(choice, r - i, dp);
}
if (cur >= 1e9 + 7)
cur =cur % (long)(1e9 + 7);
dp[r] = cur;
return cur;
}
int main()
{
int n, m;
cin >> n >> m;
int t;
vector<int> data;
while (n-- && cin >> t)
data.push_back(t);
vector<int> dp(m+1, 0);
dp[0] = 1;
cout << solution(data, m, dp);
}

0 点赞 评论 收藏
分享
灰猫子:第一题不能边输入边输出,输出是耗时操作,先把结果保存到字符串或者列表之类的,然后再一次性输出就不会超时了

0 点赞 评论 收藏
分享
0 点赞 评论 收藏
分享
0 点赞 评论 收藏
分享

0 点赞 评论 收藏
分享
创作者周榜
更多
关注他的用户也关注了: