HDOJ 1709-The Balance【模拟】
2016-04-06 21:38
351 查看
The Balance
Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 7241 Accepted Submission(s): 2985
[align=left]Problem Description[/align]
Now you are asked to measure a dose of medicine with a balance and a number of weights. Certainly it is not always achievable. So you should find out the qualities which cannot be measured from the range [1,S]. S is the total quality
of all the weights.
[align=left]Input[/align]
The input consists of multiple test cases, and each case begins with a single positive integer N (1<=N<=100) on a line by itself indicating the number of weights you have. Followed by N integers Ai (1<=i<=N), indicating the quality
of each weight where 1<=Ai<=100.
[align=left]Output[/align]
For each input set, you should first print a line specifying the number of qualities which cannot be measured. Then print another line which consists all the irrealizable qualities if the number is not zero.
[align=left]Sample Input[/align]
3 1 2 4 3 9 2 1
[align=left]Sample Output[/align]
0 2 4 5
[align=left]Source[/align]
HDU 2007-Spring Programming Contest
解题思路;
主要是一个天平有多个砝码问可以称出的重量,天平左右两边都可以放砝码。暴力就好,随便爆。
#include<stdio.h> #include<string.h> #include<cmath> #include<algorithm> using namespace std; int n; int num[30000]; int ans[30000]; int wc[30000]; int pp[30000]; int main() { while(scanf("%d",&n)!=EOF) { memset(ans,0,sizeof(ans)); memset(pp,0,sizeof(pp)); int i,j; int sum=0; for(i=0;i<n;i++) { scanf("%d",&num[i]); sum+=num[i]; } for(i=0;i<n;i++) { for(j=1;j<=sum;j++) { if(ans[j]) { pp[abs(j+num[i])]=1; pp[abs(j-num[i])]=1; } } for(j=1;j<=sum;j++) { if(ans[j]==0&&pp[j]==1) { ans[j]=pp[j]; } } ans[num[i]]=1; memset(pp,0,sizeof(pp)); } int nn; nn=0; for(int k=1;k<=sum;k++) { if(!ans[k]) { wc[nn++]=k; } } printf("%d\n",nn); for(int k=0;k<nn;k++) { if(k==0) printf("%d",wc[k]); else printf(" %d",wc[k]); } if(nn!=0) printf("\n"); } return 0; }
相关文章推荐
- Windows Server 2008 R2 AD导入大批量的用户账户
- UIAlertController(UIActionSheet、UIAlertView)
- 复利计算-结对
- DOM元素querySelectorAll和querySelector
- 算法_动态规划_最长单调递增子序列
- 百度地图循环添加个标点及信息框
- 微软笔试 Font Size
- HDU 1069 Monkey and Banana
- 求因子(1405)
- 建立名称server
- 复利计算-结对
- 1050 Moving Tables(贪心-4)
- CSS3秘笈复习:第十一章
- 机房重构之泛型集合的应用
- FZU FOJ 2030 括号问题【dp】||【暴搜+栈判断括号匹配】
- 程序运行时随机崩溃的几点调试方法
- Java学习·模板方法模式
- nginx设置反向代理服务器
- 用java生成GUID
- java中的基本数据类型