hdu1171 http://acm.hdu.edu.cn/showproblem.php?pid=1171
2012-11-07 16:28
671 查看
//给你每中物品的价值 和 该物品的数量 让你尽量把它们的总价值平均分配。 //注意细节 用母函数容易超时 注意 step sumMoney 以及 value*fac个代表的含义 step代表前一个数列式子的个数 sumMoney最大的指数 value*fac当前总价值 #include<stdio.h> #include<string.h> #define max 250003 int c1[max],c2[max]; int main() { int N; int i,j,k; int value,fac; int sumMoney; int step; while(scanf("%d",&N)!=EOF) { if(N<0) break; memset(c1,0,sizeof(c1)); memset(c2,0,sizeof(c2)); scanf("%d%d",&value,&fac); sumMoney=step=value*fac; for(i=0;i<=sumMoney;i+=value) { c1[i]=1; c2[i]=0; } for(i=1;i<N;i++) { scanf("%d%d",&value,&fac); sumMoney+=value*fac; for(j=0;j<=step;j++) { for(k=0;k<=value*fac;k+=value) c2[k+j]+=c1[j]; } step+=value*fac; for(int ii=0;ii<=sumMoney;ii++) { c1[ii]=c2[ii]; c2[ii]=0; } } // printf("%d\n",sumMoney); for(j=sumMoney/2;j>=0;j--) { if(c1[j]) { printf("%d %d\n",sumMoney-j,j); break; } } } return 0; }
相关文章推荐
- http://acm.hdu.edu.cn/showproblem.php?pid=2544
- http://acm.hdu.edu.cn/showproblem.php?pid=1905 素数判断 + 二分
- 01背包:http://acm.hdu.edu.cn/showproblem.php?pid=2955
- 饭卡 (背包01 一维数组) http://acm.hdu.edu.cn/showproblem.php?pid=2546
- http://acm.hdu.edu.cn/showproblem.php?pid=2871 更新最左区间
- http://acm.hdu.edu.cn/showproblem.php?pid=1087
- http://acm.hdu.edu.cn/showproblem.php?pid=1034
- http://acm.hdu.edu.cn/showproblem.php?pid=2112
- http://acm.hdu.edu.cn/showproblem.php?pid=2363
- http://acm.hdu.edu.cn/showproblem.php?pid=1874
- http://acm.hdu.edu.cn/showproblem.php?pid=3501 欧拉函数
- http://acm.hdu.edu.cn/showproblem.php?pid=1166
- http://acm.hdu.edu.cn/showproblem.php?pid=1039(水~)
- http://acm.hdu.edu.cn/showproblem.php?pid=1166
- 最大报销额 http://acm.hdu.edu.cn/showproblem.php?pid=1864
- Quoit Design&&http://acm.hdu.edu.cn/showproblem.php?pid=1007
- http://acm.hdu.edu.cn/showproblem.php?pid=2795 更新节点构造线段数很关键,询问特殊
- http://acm.hdu.edu.cn/showproblem.php?pid=1040。。。
- http://acm.hdu.edu.cn/showproblem.php?pid=1540 更新节点,询问节点所在的位置有多少连续的区间
- 找规律。。&&http://acm.hdu.edu.cn/showproblem.php?pid=1097