您的位置:首页 > 其它

sicily 1342. 开心的金明

2014-01-05 15:05 260 查看
//转化成01背包问题
#include <stdio.h>
#include <iostream>
#include <memory.h>
using namespace std;

int dp[30001];

int main()
{
int N,m;
while(cin >> N)//相当于背包中能承载的重量
{
cin >> m;//相当于物品个数
int w[26],v[26];//w相当于背包中每个物品的重量,v为价值
for(int i = 0;i < m;i++)
{
cin >> w[i] >> v[i];
}

memset(dp,0,sizeof(dp));
dp[0] = 1;
for(int i = 0;i < m;i++)
for(int j = N;j >= w[i];j--)
dp[j] = max(dp[j],dp[j - w[i]] + w[i] * v[i]);

cout << dp
<< endl;
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: