热身赛-ZZULIOJ-1873-This offer
2016-04-20 17:09
429 查看
Contest - “玲珑杯”郑州轻工业学院第八届ACM程序设计大赛暨河南高校邀请赛-热身赛
Problem C: This offer
Time Limit: 1 Sec Memory Limit: 128 MB
Submit: 222 Solved: 56
SubmitStatusWeb Board
Description
话说WX入职已经有一个多月了,公司boss突然扔给他了一个问题,如果解决不了的话就会被开除掉 - -#,情急之下他只能来请教你了,boss给了他N个不大于100的数,现在wx需要将这N个数通过在两两间添上‘+’或‘-’,最后合成为一个数,注意数字的顺序不能被改变,不同的方式会得到不同的结果,boss想要知道最后一共能得到多少种不同的结果
Input
输入案例有多组,每组数据占两行,第一行输入一个整数,即N(1<=n<=20),第二行输入N个数Ai(0<= Ai <= 100)
Output
对于每组数据,输出最终能得到的结果数
Sample Input
3
1 2 4
4
1 2 2 3
Sample Output
4
6
这算是热身赛三道题中比较”难”的吧。
数据最多只有20个,结果也就只有2的19次方种,由于2的10次方才1024,所以最终结果数量不会太大,直接深搜暴力枚举所有结果即可。
实际是借用数组下标记录数值,元素标记此数值是否出现过,这样可以避免枚举出数值后的去重,不过搜索要从2000+num[0]开始。
代码
Problem C: This offer
Time Limit: 1 Sec Memory Limit: 128 MB
Submit: 222 Solved: 56
SubmitStatusWeb Board
Description
话说WX入职已经有一个多月了,公司boss突然扔给他了一个问题,如果解决不了的话就会被开除掉 - -#,情急之下他只能来请教你了,boss给了他N个不大于100的数,现在wx需要将这N个数通过在两两间添上‘+’或‘-’,最后合成为一个数,注意数字的顺序不能被改变,不同的方式会得到不同的结果,boss想要知道最后一共能得到多少种不同的结果
Input
输入案例有多组,每组数据占两行,第一行输入一个整数,即N(1<=n<=20),第二行输入N个数Ai(0<= Ai <= 100)
Output
对于每组数据,输出最终能得到的结果数
Sample Input
3
1 2 4
4
1 2 2 3
Sample Output
4
6
这算是热身赛三道题中比较”难”的吧。
数据最多只有20个,结果也就只有2的19次方种,由于2的10次方才1024,所以最终结果数量不会太大,直接深搜暴力枚举所有结果即可。
实际是借用数组下标记录数值,元素标记此数值是否出现过,这样可以避免枚举出数值后的去重,不过搜索要从2000+num[0]开始。
代码
#include<iostream> #include<stdio.h> #include<string.h> #include<algorithm> #include<string> using namespace std; const int maxn=4005; bool flag[maxn];//初始化为0,出现过标记为1 int num[maxn];//接收数据 int N;//数据数量 void DFS(int sum,int deep)//传入运算结果和搜索深度 { if(deep==N) flag[sum]=1; else { DFS(sum+num[deep],deep+1); DFS(sum-num[deep],deep+1); } } int main() { while(~scanf("%d",&N)) { for(int i=0; i<N; i++) scanf("%d",&num[i]); memset(flag,0,sizeof(flag)); DFS(2000+num[0],1); int sum_num=0; for(int i=0; i<maxn; i++) if(flag[i]) sum_num++; printf("%d\n",sum_num); } return 0; }
相关文章推荐
- 模拟+BFS-BZOJ-1611-[Usaco2008 Feb]Meteor Shower流星雨
- web 前端,on的使用
- 几何-BZOJ-1610-[Usaco2008 Feb]Line连线游戏
- js onchange事件,以及setAttribute,getAttribute
- html标签特效代码大全
- jQuery插件的写法
- Javascript 弱类型:除法结果是小数
- ckeditor使用过程中的问题总结1
- jQuery阻止冒泡事件的几种方法
- [剑指offer]从尾到头打印链表
- javascript中如何删掉字符串中的反斜杠
- jquery分页插件
- 《CSS计数器(序列数字字符自动递增)详解》
- JavaScript格式化时间
- 解码端的buffer
- 在jsp页面修改XML配置文件里的参数值
- JS_检索/选择元素的各种方式
- css的位置引起的ie下的“无样式内容的闪烁FOUC”,和非ie的“白屏”
- jquery中的表单验证,,,,
- HTML DOM 方法