zzuli oj 1873: This offer 【dfs+数组标记技巧(set会超时)】
来源:互联网 发布:能听裂空小说软件 编辑:程序博客网 时间:2024/05/21 17:25
1873: This offer
Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 210 Solved: 52
SubmitStatusWeb Board
Description
话说WX入职已经有一个多月了,公司boss突然扔给他了一个问题,如果解决不了的话就会被开除掉 - -#,情急之下他只能来请教你了,boss给了他N个不大于100的数,现在wx需要将这N个数通过在两两间添上‘+’或‘-’,最后合成为一个数,注意数字的顺序不能被改变,不同的方式会得到不同的结果,boss想要知道最后一共能得到多少种不同的结果
Input
输入案例有多组,每组数据占两行,第一行输入一个整数,即N(1<=n<=20),第二行输入N个数Ai(0<= Ai <= 100)
Output
对于每组数据,输出最终能得到的结果数
Sample Input
31 2 441 2 2 3
Sample Output
46
HINT
Source
Anything about the Problems, Please Contact us
GPL2.0 2003-2014 Base On HUSTOJ Project
代码:
#include <stdio.h>#include <string.h>#include <algorithm>using namespace std;int n;int a[50];int p[4005];void dfs(int sum,int i){if(i==n){p[sum+2000]=1;return;}dfs(sum+a[i],i+1);dfs(sum-a[i],i+1);}int main(){while(scanf("%d",&n)!=EOF){memset(p,0,sizeof(p));for(int i=0;i<n;i++){scanf("%d",&a[i]);}dfs(a[0],1);//因为第一个数肯定是正的,所以从第二个数开始进行加或者减 int cnt=0;for(int i=0;i<=4000;i++){if(p[i]){cnt++;}}printf("%d\n",cnt);}return 0;}
0 0
- zzuli oj 1873: This offer 【dfs+数组标记技巧(set会超时)】
- zzuli oj 1871: NO offer <set容器的用法>
- 一定要用数组标记|xi-xj|,不然会超时
- zzuli OJ 1115: 数组最小值
- zzuli OJ 1117: 查找数组元素
- zzuli OJ 1119: 一维数组排序
- zzuli OJ 1124: 两个有序数组合并
- 【zzuli-oj】-1900- 985的“树”难题(DFS & 并查集&STL)
- zzuli OJ-1107 小火山的宝藏收藏(dfs+邻接表)
- 【zzuli-oj】-1908: 小火山的围棋梦想-(DFS,好)
- zzuli OJ 1908: 小火山的围棋梦想 【DFS】
- zzuli oj 多校训练(三)【树链剖分--树状数组---STL----二分图----二分----DP】
- Light oj 1012--dfs(首次觉得自己会了)
- 杭电-1501Zipper(dfs+标记数组)
- 多校三zzuli oj 1159(寻宝)
- zzuli 2174【dfs】
- zzuli 2174 dfs
- zzuli OJ 1016: 银行利率
- 机器学习系列(9)_机器学习算法一览(附Python和R代码)
- Spring声明式事务配置管理方法
- Java之基于S2SH与手机数据交互(一)
- $GLOBALS ["HTTP_RAW_POST_DATA"] 取不到值如何排除
- 如何判断js中的数据类型
- zzuli oj 1873: This offer 【dfs+数组标记技巧(set会超时)】
- hdu2444The Accomodation of Students【判断二分图+最大匹配】
- SharedPreferences
- python @ property classmethod staticmethod
- 创建 xlx java
- Java 将15位身份证号转化为18位返回,非15位身份证号原值返回
- javascript去除字符串左右两端的空格
- 215. Kth Largest Element in an Array
- mac下安装brew遇到的问题总结