NYOJ--第456题邮票分你一半
来源:互联网 发布:徐贤气质知乎 编辑:程序博客网 时间:2024/05/21 01:56
一道动态规划的问题,01背包问题。最近一直在纠结01背包,这个题算是自己的一个进展吧。先把代码贴出来,大家看看吧。不知道你们能不能看出这几串代码的不同。具体思路和下面代码的解释过段时间再写。今天弄这问题弄的头晕,贴完就洗洗睡了。
原题地址:点击打开链接。
代码如下:
#include<stdio.h>#include<string.h>int main(){int i,j,k,l,n,m,a[100005],b[100005];scanf("%d",&m);while(m--){scanf("%d",&n);memset(b,0,sizeof(b));memset(a,0,sizeof(a));int sum=0;for(i=1;i<=n;i++){scanf("%d",&a[i]);sum+=a[i]; }for(i=1;i<=n;i++){for(j=sum/2;j>=a[i];j--){ if(b[j]<=b[j-a[i]]+a[i]) b[j]=b[j-a[i]]+a[i];}}printf("%d\n",sum-2*b[sum/2]);}return 0;}另一串代码
#include<stdio.h>#include<string.h>int main(){int i,j,k,l,n,m,a[100005],b[100005];scanf("%d",&m);while(m--){scanf("%d",&n);memset(b,0,sizeof(b));memset(a,0,sizeof(a));int sum=0;for(i=1;i<=n;i++){scanf("%d",&a[i]);sum+=a[i]; }for(i=1;i<=n;i++){for(j=sum/2;j>=a[i];j--){ b[j]=(b[j]>b[j-a[i]]+a[i]?b[j]:b[j-a[i]]+a[i]);}}printf("%d\n",sum-2*b[sum/2]);}return 0;}
又一串代码
#include<stdio.h>#include<string.h>int a[100005],b[100005];int main(){int i,j,k,l,n,m;scanf("%d",&m);while(m--){scanf("%d",&n);memset(b,0,sizeof(b));memset(a,0,sizeof(a));int sum=0;for(i=1;i<=n;i++){scanf("%d",&a[i]);sum+=a[i]; }for(i=1;i<=n;i++){for(j=sum/2;j>=a[i];j--){ if(b[j]<=b[j-a[i]]+a[i]) b[j]=b[j-a[i]]+a[i];}}printf("%d\n",sum-2*b[sum/2]);}return 0;}
- NYOJ--第456题邮票分你一半
- nyoj 456-邮票分你一半
- NYOJ-456 邮票分你一半 AC
- NYOJ 456 邮票分你一半
- NYOJ 456 邮票分你一半
- Nyoj 456 邮票分你一半
- NYOJ 456 邮票分你一半
- NYOJ 456 邮票分你一半
- NYOJ 456 邮票分你一半
- nyoj-456 邮票分你一半
- 邮票分你一半 456 NYOJ
- NYOJ 456 邮票分你一半
- NYOJ--456--邮票分你一半
- nyoj 456 邮票分你一半<背包>
- NYOJ 456 邮票分你一半
- NYOJ 456 邮票分你一半
- NYOJ-456-邮票分你一半
- nyoj 456 邮票分你一半
- Chain Of Resoponsibility(职责链模式)
- arthurwidgets.cpp:54:35: error: private/qpixmapdata_p.h: No such file or directory 的解决
- Ogre例子Facial Animation分析
- 配置文件INI的操作
- 大数相乘模板
- NYOJ--第456题邮票分你一半
- 编译相关问题和解决办法
- How Do Fixes Become Bugs
- 用vi修改文件,保存文件时,提示“readonly option is set”的解决方法。
- TQ2440中的uvc_stream中 Unable to set format: 22. 错误
- 回调函数
- 错排
- 小四的故事-黑客防线人物专访
- 高性能计算专业应用软件大观