http://codevs.cn/problem/3231/
动态规划,01背包。。。。懒了,好像,呵呵。。。。
不过第一次提交时还是wa了,第二个for习惯性的由v[i]++到M。。
#include<iostream>
#include<stdio.h>
#include<cmath>
#include<string.h>
#include<map>
#include<algorithm>
using namespace std;
int main()
{
int n,m;
int v[105]={0};
int w[105]={0};
int f[10005]={0};
cin>>n>>m;
for(int i=1;i<=n;i++)
cin>>v[i];
for(int i=1;i<=n;i++)
cin>>w[i];
for(int i=1;i<=n;i++)
{
for(int j=m;j>=v[i];j--)
f[j]=max(f[j],f[j-v[i]]+w[i]);
}
cout<<f[m]<<endl;
return 0;
}