- 采药
- 2015-11-06 19:36:31 @
#include<iostream>
#include<string>
#include<cstring>
using namespace std;
int max()
{
int a,b;
if (a>b)
return a;
else return b;
}
int main()
{
int v;
int m;
cin>>v;
cin>>m;
int f[1001]={0};
int c[1001]={0};
int w[1001]={0};
for(int i=0;i<m;i++)
{
cin>>c[i];
cin>>w[i];
}
for(int i=0;i<=m;i++)
{
for(int a=v;a>=w[i];a--)
{
f[a]=max(f[a],f[a-c[i]]+w[i]);
}
}
cout<<f[v];
return 0;
}
还有一个
#include<iostream>
#include<cstring>
#include<cstdio>
using namespace std;
int main()
{
int p[1001],w[101];
int t,m,f[1001][101];
memset(f,0,sizeof(f));
memset(w,0,sizeof(w));
memset(p,0,sizeof(p));
cin>>t>>m;
for(int i=1;i<=m;i++)
{
cin>>w[i]>>p[i];
}
for(int i=1;i<=m;i++)
{
for(int j=0;j<=t;j++)
{
f[i][j]=f[i-1][j];
if((j>=w[i])&&((f[i-1][j-w[i]]+p[i])>f[i][j]))
{
f[i][j]=f[i-1][j-w[i]]+p[i];
}
}
}
cout<<f[m][t];
return 0;
}
2 条评论
-
TenderRun LV 10 @ 2015-11-08 17:07:18
#include <iostream>
#include <stdio.h>
using namespace std;
int timedp[2000];
int yao[1500][4];
int main()
{
int n,time;
scanf("%d%d",&time,&n);
for(int i=1;i<=n;i++)
scanf("%d%d",&yao[i][1],&yao[i][2]);
for(int i=1;i<=n;i++)
for(int j=time;j>=yao[i][1];j--)
timedp[j]=max(timedp[j-yao[i][1]]+yao[i][2],timedp[j]);
cout<<timedp[time];
} -
2015-11-08 17:06:07@
这样的排版程序没人看啊
- 1