01背包求方案数裸题

小Q的歌单

http://www.nowcoder.com/questionTerminal/f3ab6fe72af34b71a2fd1d83304cbbb3

    01背包求方案数裸题, 将所有的歌的长度都存到a数组中, 遍历a数组,一重循环遍历物品, 二重循环遍历空间

#include <iostream>
#include <cstring>
#include <algorithm>
#include <cmath>

using namespace std;
const int N = 10010,mod = 1000000007;

int k, A, X, B, Y;

long long f[N];
int a[N];


int main()
{
    cin >> k >> A >> X >> B >> Y;
    int n = X + Y;
    for(int i = 1; i <= X; i++)
        a[i] = A;
    for(int i = X + 1; i <= n; i++)
        a[i] = B;
    f[0] = 1;
    for(int i = 1; i <= n; i++)
    {
        for(int j = k; j >= a[i]; j--)
        {
            f[j] += f[j - a[i]];
            f[j] %= mod;
        }
    }
    cout << f[k] <<endl;
    return 0;
 } 
全部评论

相关推荐

01-18 09:26
已编辑
门头沟学院 Java
王桑的大offer:建议中间件那块写熟悉即可,写掌握 面试包被拷打到昏厥
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务