UVA, 112Tree Summing
2016-05-07 17:43
169 查看
题意:一棵树从上到下相加,问是否出现该值
出现的值为5+4+11+7=27,5+4+11+2=22,5+8+13=26,5+8+4+1=18
dfs算法,用一个数组每次递归记录下当前的值,读到根,把数组的值相加。
出现的值为5+4+11+7=27,5+4+11+2=22,5+8+13=26,5+8+4+1=18
dfs算法,用一个数组每次递归记录下当前的值,读到根,把数组的值相加。
#include <iostream> #include<cstdio> #include<cstring> using namespace std; #define N 1000 int n; int sum; char input(); void solve(int a,int *b); int first; int main() { while(cin>>n) { char ch=input(); sum=0; first=1; solve(0,0); if(sum) cout<<"yes\n"; else cout<<"no\n"; } return 0; } char input() { char ch; do{ scanf("%c",&ch); }while(ch==' '||ch=='\n'); return ch; } void solve(int a,int *b) { int v; scanf("%d",&v); char ch=input(); if(first) { first=0; if(ch==')') return; } // cout<<v<<ch<<endl; int l=0,r=0; if(ch=='(') { a=a+v; solve(a,&l); ch=input(); solve(a,&r); ch=input(); if(l&&r&&n==a){ sum=1; // cout<<a<<endl; } // cout<<a<<endl; } else *b=1; }
相关文章推荐
- 用vb.net 导出word
- 16进制
- vb(选择法排序)
- 《JavaScript Ninja》之挥舞函数
- Servlet中使用RequestDispatcher调派请求--include
- Oracle学习系列7
- Javaweb容器的四种作用域
- [Android]为TextView提供双色文本配置的小工具ColorPhrase
- H5开发学习 ---- sublime text 使用
- 求助: Android 加载 webview, 点击webview 中网页时间, 如何触发 Android 事件
- 计算机漏洞安全相关的概念POC | EXP | VUL | CVE | 0DAY
- 随机产生10个数,并使用选择法,由大到小排序
- 0基础如何学习安卓开发
- 数据结构X实验一
- CSS 布局模型
- hdoj2045动态规划
- VS2008高版本VC使用微软串口控件mscomm小结
- c++实验5-项目1数组分离
- 排列组合列出所有情况之类的问题
- 16进制