Hdu 1709 The Balance 母函数
来源:互联网 发布:手写软件下载 编辑:程序博客网 时间:2024/05/21 14:42
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1709
题目大意:给你N个砝码,问1-S(S为所有砝码的总和)之中不能称出的重量是那些?
解题思路:砝码可以放在天平的两端,故有正有负,然后套模板组合
代码如下:
#include <stdio.h>#include <string.h>const int MAX=10025;int c1[MAX],c2[MAX];int main(){ int N,v[110],mark[10025]; while(~scanf("%d",&N)) { int sum=0; for(int i=1; i<=N; i++) { scanf("%d",&v[i]); sum+=v[i]; } memset(c1,0,sizeof(c1)); c1[0]=1; for(int i=1; i<=N; i++)//循环每个因子 { memset(c2,0,sizeof(c2)); for(int j=0; j<=1; j++) //每个因子的每一项 for(int k=0; k+j*v[i]<=sum; k++) //循环c1数组的每一项 { c2[k+j*v[i]] += c1[k]; if(k>=j*v[i]) c2[k-j*v[i]] += c1[k]; else c2[j*v[i]-k] += c1[k]; } memcpy(c1,c2,sizeof(c2)); } int ans[sum+5],cnt=0; for(int i=1; i<=sum; i++) if(!c1[i]) ans[cnt++]=i; if(cnt==0) printf("0\n"); else { printf("%d\n%d",cnt,ans[0]); for(int i=1; i<cnt; i++) printf(" %d",ans[i]); printf("\n"); } } return 0;}
当然,也可以先套模板,后暴力。。。,代码如下:
#include <stdio.h>#include <string.h>const int MAX=10025;int c1[MAX],c2[MAX];int main(){ int N,v[110],mark[10025]; while(~scanf("%d",&N)) { int sum=0; for(int i=1; i<=N; i++) { scanf("%d",&v[i]); sum+=v[i]; } memset(c1,0,sizeof(c1)); c1[0]=1; for(int i=1; i<=N; i++)//循环每个因子 { memset(c2,0,sizeof(c2)); for(int j=0; j<=1; j++) //每个因子的每一项 for(int k=0; k+j*v[i]<=sum; k++) //循环c1数组的每一项 c2[k+j*v[i]] += c1[k]; memcpy(c1,c2,sizeof(c2)); } //查找 相减可以得到的数 memset(mark,0,sizeof(mark)); for(int i=sum; i>0; i--) { if(c1[i]) { for(int j=1; j<i; j++) if(c1[j]) mark[i-j]=1; } } int ans[sum+5],cnt=0; for(int i=1; i<=sum; i++) { if(!c1[i]&&!mark[i]) ans[cnt++]=i; } if(cnt==0) printf("0\n"); else { printf("%d\n%d",cnt,ans[0]); for(int i=1; i<cnt; i++) printf(" %d",ans[i]); printf("\n"); } } return 0;}
0 0
- hdu 1709 The Balance (母函数)
- [母函数]HDU 1709 The Balance
- Hdu 1709 The Balance 母函数
- HDU 1709 The Balance (母函数)
- hdu 1709 The Balance (母函数)
- HDU 1709 The Balance 母函数
- HDU 1709 The Balance【特殊母函数】
- hdu 1709 The Balance(母函数)
- hdu 1709 The Balance(母函数)
- HDU 1709 The Balance(母函数)
- 【HDU】1709 - The Balance(母函数)
- HDU - 1709 The Balance(母函数)
- hdu 1709 The Balance(母函数)
- HDU 1709 The Balance(母函数)
- HDU 1709 The Balance【负次方母函数】
- HDU 1709-The Balance(母函数的应用)
- hdu 1709 The Balance
- hdu 1709 The Balance
- ASIHTTPRequest官方文档
- Android开发学习之TabView选项卡详解 -- 基于Android4.4
- 视频会议十大开源项目排行
- 20140425收盘小结
- 面试题-树(持续更新)
- Hdu 1709 The Balance 母函数
- TabBar返回按钮
- CAS操作
- 【二叉排序树(3)】
- 捕获参数修改事件从而修改Revit其它模型
- c++ 使用蚁群算法解决TSP问题。
- sysctl配置
- python学习笔记(三)Unicode
- 如何将FusionCharts图表导出为图像/PDF