标签:style io for 数据 div 代码 amp ef size
1 1000 5 800 2 400 5 300 5 400 3 200 2
3900
解题思路:
此题用到动态规划,求取全局最优解。
首先要自定义函数求两个数的最大值,得到每一步的最优解。
定义数组时应当将数组稍稍定大一点,以免输出超限。
应用memset()将定义的数组初始化。
程序代码:
#include<stdio.h> #include<string.h> #define max(a,b) a>b?a:b int n,m; int v[10005]; int p[6]; int t[30005]; int main() { int i,j; int s; scanf("%d",&s); while(s--) { scanf("%d%d",&n,&m); memset(t,0,sizeof(t)); memset(p,0,sizeof(p)); memset(v,0,sizeof(v)); for(i=1;i<=m;i++) { scanf("%d%d",&v[i],&p[i]); //printf("%d %d\n",v[i],p[i]); for(j=n;j>=v[i];j--) { t[j]=max(t[j],t[j-v[i]]+p[i]*v[i]); } } printf("%d\n",t[n]); } return 0; }
标签:style io for 数据 div 代码 amp ef size
原文地址:http://blog.csdn.net/yzi_angel/article/details/40791555