Zero Sum chapter 2.3 dfs
dfs枚举过,完全没有剪枝,最后的个求sum函数倒是有点麻烦
1 /* 2 3 ID: hubiao cave 4 5 PROG: zerosum 6 7 LANG: C++ 8 9 */ 10 11 12 13 14 #include<iostream> 15 16 #include<fstream> 17 18 #include<string> 19 20 #include<set> 21 using namespace std; 22 23 24 set<string,less<string> >ss; 25 26 char ch[3]={' ','+','-'}; 27 28 29 30 void dfs(int); 31 bool proc(string); 32 33 int N; 34 int main() 35 36 { 37 38 39 ifstream fin("zerosum.in"); 40 41 ofstream fout("zerosum.out"); 42 43 fin>>N; 44 dfs(1); 45 for(set<string>::iterator it=ss.begin();it!=ss.end();++it) 46 { 47 fout<<*it<<endl; 48 } 49 50 return 0; 51 52 53 } 54 55 string str; 56 57 void dfs(int n) 58 { 59 if(n<N) 60 { 61 str+='0'+n; 62 for(int i=0;i<3;++i) 63 { 64 str+=ch[i]; 65 dfs(n+1); 66 str.erase(str.length()-1,1); 67 } 68 str.erase(str.length()-1,1); 69 } 70 else 71 { 72 str+='0'+n; 73 if(proc(str)) 74 ss.insert(str); 75 str.erase(str.length()-1,1); 76 } 77 } 78 79 bool proc(string str) 80 { 81 int sum=0; 82 int prenum=0; 83 bool prespace=false; 84 char preope='@'; 85 86 if(str=="1+2 3+4+5+6+7" ) 87 str="1+2 3+4+5+6+7 "; 88 for(int i=0;i<str.length();i++) 89 { 90 if(str[i]>='1'&&str[i]<='9') 91 { 92 if(prespace==true) 93 { 94 prenum=prenum*10+str[i]-'0'; 95 prespace=false; 96 } 97 else 98 { 99 prenum=str[i]-'0'; 100 } 101 // continue; 102 } 103 if(str[i]==' ') 104 { 105 prespace=true; 106 continue; 107 108 } 109 110 if(str[i]=='+'||str[i]=='-') 111 { 112 if(preope=='@') 113 { 114 sum=prenum; 115 preope=str[i]; 116 } 117 else 118 { 119 if(preope=='+') 120 sum=sum+prenum; 121 else 122 sum=sum-prenum; 123 preope=str[i]; 124 } 125 continue; 126 } 127 128 if(i==str.length()-1) 129 { 130 if(preope=='@') 131 sum=prenum; 132 else 133 { 134 if(preope=='+') 135 sum=sum+prenum; 136 else 137 sum=sum-prenum; 138 } 139 } 140 } 141 return !sum; 142 }
转载于:https://www.cnblogs.com/cavehubiao/p/3310189.html
Zero Sum chapter 2.3 dfs相关推荐
- NUC1399 Sum It Up【DFS】
Sum It Up 时间限制: 1000ms 内存限制: 65535KB 通过次数: 1总提交次数: 1 问题描述 Given a specified total t and a list of n ...
- LeetCode 1973. Count Nodes Equal to Sum of Descendants(DFS)
文章目录 1. 题目 2. 解题 1. 题目 Given the root of a binary tree, return the number of nodes where the value o ...
- 部分和问题 (dfs搜索 尺取)
部分和问题 给定整数a1, a2, a3, a4, .......... , an ,判断是否可以从中取出若干个数,使得他们的和恰好为k . 1 <= n <= 20 测试数 ...
- hdu3699(不等式dfs)
题意: 给出三个串,只由A~E组成,每个串的长度最长是8,字符相同代表那个位置的数字相同,数字可以是0~9,例如: ABBDE() ABCCC=BDBDE 可以是12245+12000=24245 ( ...
- HDU - 5788 Level Up(主席树+dfs序+树状数组)
题目链接:点击查看 题目大意:给出一棵有向树,每个节点都有一个初始的权值 a[ i ] ,和一个通过计算得到的权值 mid[ i ] ,mid 数组的计算方法如下:mid[ u ] 为结点 u 及其子 ...
- 洛谷 - P1025 数的划分(dfs)
题目链接:点击查看 题目大意:给出两个数n和k,要求将n分成k份,问有多少种方案数,注意: 1 1 5和1 5 1还有5 1 1算同一种方案 题目分析:因为n只给到了200,并且k最大为6,所以直接d ...
- leetcode 112. Path Sum, 113. Path Sum II | 112,113. 路径总和 I, II(Java)
题目 https://leetcode.com/problems/path-sum/ https://leetcode.com/problems/path-sum-ii/ 题解 简单的遍历二叉树,不解 ...
- [蓝桥杯][2013年第四届真题]剪格子(dfs)
题目描述 历届试题 剪格子 时间限制:1.0s 内存限制:256.0MB 问题描述 如下图所示,3 x 3 的格子中填写了一些整数. ±-–±-+ |10 1|52| ±-***–+ |20|30 1 ...
- 蓝桥杯2015初赛-牌型种数-dfs
题目描述 小明被劫持到X赌城,被迫与其他3人玩牌. 一副扑克牌(去掉大小王牌,共52张),均匀发给4个人,每个人13张. 这时,小明脑子里突然冒出一个问题: 如果不考虑花色,只考虑点数,也不考虑自己得 ...
- c语言中dfs用pos做参数,LeetCode算法练习——深度优先搜索 DFS(2)
更多干货就在我的个人博客 BlackBlog.tech 欢迎关注! 也可以关注我的csdn博客:黑哥的博客 谢谢大家! 我们继续LeetCode之旅. 做了一段时间的LeetCode,感觉还是不错的. ...
最新文章
- 图片远程保存,浏览器直接下载
- RabbitMQ负载均衡(2)——HAProxy
- 记一次调用API遇到的问题
- Hadoop学习之路(十三)MapReduce的初识
- centos7 搭建apache druid
- 【0】python核心编程,第二章
- python练手经典100例-Python 的练手项目有哪些值得推荐?
- Leecode 953. Verifying an Alien Dictionary[Easy]
- mysql如何把一个表直接拷贝到一个新的表
- Linux 下串口编程入门教程
- 网络工程师的机会在哪里
- DIY开源mini桌面i3结构3D打印机--分析
- 惠普1020打印机驱动安装教程
- blender烘焙法线贴图
- IP 防护等级技术白皮书
- 《基于机器视觉的高压输电线路覆冰厚度检测》论文笔记
- 2016年五一劳动节天津之旅
- 计算机应用 2010 成绩,2010西电计算机应用技术考研成绩
- 唯库拼课课程大合集更新111门
- 无线蓝牙耳机那个品牌比较好?试试这五款比较实用的吧
热门文章
- 前端在linux中常用的命令,前端在SSH上常用的Linux命令
- stc和sac_短期成本曲线
- IDEA中.properties配置文件输入中文显示Unicode编码,本地编辑器,服务器打开显示Unicode编码问题解决方案
- 2019年英语计算机二级,2019年下半年计算机二级考试时间和英语六级考..._成人英语考试_帮考网...
- mininet编程实现交换机规则的插入、删除与修改。_三层以太网交换机基本原理及转发流程...
- SpringMVC之安全性(一)
- MATLAB矩阵生成、引用
- 奇异值分解和非负矩阵分解
- 专题训练——[kuangbin带你飞]最短路练习
- 关于var、let和const