题目链接:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=48
主要思路:这道题目的难点在于如何把题目所给的输入数据转换成一棵树。首先定义一个字符型的变量c,再定义一个整型的变量num。因为开始一定是'(',所以先输入c(cin>>c;),然后判断,如果是'(',那么再输入num(cin>>num;),这里加一个判断,如果说cin>>num输入正常,那么输入的是一个数;如果说输入异常,那么输入的是')'。这样就可以把括号的输入和数字的输入分开了。然后就是入栈、出栈,转换成二叉树,然后再dfs。
具体代码:
主要思路:这道题目的难点在于如何把题目所给的输入数据转换成一棵树。首先定义一个字符型的变量c,再定义一个整型的变量num。因为开始一定是'(',所以先输入c(cin>>c;),然后判断,如果是'(',那么再输入num(cin>>num;),这里加一个判断,如果说cin>>num输入正常,那么输入的是一个数;如果说输入异常,那么输入的是')'。这样就可以把括号的输入和数字的输入分开了。然后就是入栈、出栈,转换成二叉树,然后再dfs。
具体代码:
#include<iostream> #include<cstdlib> #include<stack> using namespace std; struct Node { int value; Node *left,*right; }; int I; bool dfs(Node *n,int sum) { sum+=n->value; if(!n->left&&!n->right&&sum==I) return 1; if(n->left&&dfs(n->left,sum)) return 1; if(n->right&&dfs(n->right,sum)) return 1; return 0; } int main() { //freopen("in.txt","r",stdin); int num; char c; stack<Node *> s_Node; while(cin>>I) { while(!s_Node.empty()) s_Node.pop(); int left_num=0,right_num=0;//左右括号的数目 do { cin>>c; if(c=='(') { if(!(cin>>num))//如果输入异常,说明是')' { cin.clear(); cin>>c; Node *tmp=NULL; s_Node.push(tmp); } else { left_num++; Node *tmp=(Node *)malloc(sizeof(Node)); tmp->value=num; tmp->left=tmp->right=NULL; s_Node.push(tmp); } } else { right_num++; Node *tmp,*left,*right; right=s_Node.top(); s_Node.pop(); left=s_Node.top(); s_Node.pop(); tmp=s_Node.top(); tmp->left=left; tmp->right=right; } }while(left_num>right_num); Node *root=s_Node.top(); s_Node.pop(); if(root) { if(dfs(root,0)) cout<<"yes"<<endl; else cout<<"no"<<endl; } else cout<<"no"<<endl; } return 0; }
发表评论
-
UVa 10422 Knights in FEN
2012-09-07 08:40 936题目:http://uva.onlinejudge.org/i ... -
UVa 539 The Settlers of Catan
2012-08-31 22:22 28题目:http://uva.onlinejudge.org/i ... -
UVa 301 Transportation
2012-08-31 22:10 34题目:http://uva.onlinejudge.org/i ... -
UVa 639 Don't Get Rooked
2012-08-30 23:01 844题目:http://uva.onlinejudge.org/i ... -
UVa 216 Getting in Line
2012-08-29 20:48 757题目:http://uva.onlinejudge.org/i ... -
UVa 10474 Where is the Marble?
2012-08-28 13:45 878题目:http://uva.onlinejudge.org/i ... -
UVa 592 Island of Logic
2012-08-27 11:05 1676题目:http://uva.onlinejudge ... -
UVa 11205 The broken pedometer
2012-08-25 17:28 1088题目:http://uva.onlinejudge.org/i ... -
UVa 131 The Psychic Poker Player
2012-08-24 22:28 902题目:http://uva.onlinejudge.org/i ... -
UVa 729 The Hamming Distance Problem
2012-08-24 12:18 730题目:http://uva.onlinejudge.org/i ... -
Uva 10098 Generating Fast
2012-08-23 15:28 687题目:http://uva.onlinejudge.org/i ... -
UVa 146 ID Codes
2012-08-20 18:46 798题目:http://uva.onlinejudge.org/i ... -
UVa 10167 Birthday Cake
2012-08-16 20:57 631题目:http://uva.onlinejudge.org/i ... -
UVa 10129 Play on Words
2012-08-15 22:49 1176题目:http://uva.onlinejudge.org/i ... -
UVa 10596 Morning Walk
2012-08-14 22:05 914题目:http://uva.onlinejudge.org/i ... -
Uva 10305 Ordering Tasks
2012-08-13 23:40 691题目:http://uva.onlinejudge.org/i ... -
Uva 10004 Bicoloring
2012-08-13 23:34 906题目:http://uva.onlinejudge.org/i ... -
Uva 532 Dungeon Master
2012-08-13 23:29 819题目:http://uva.onlinejudge ... -
Uva 439 Knight Moves
2012-08-11 22:24 688题目:http://uva.onlinejudge.org/i ... -
UVa 784 Maze Exploration
2012-08-11 14:09 874题目:http://uva.onlinejudge.org/i ...
相关推荐
在给定的“c代码-summing2.c (while)”中,我们可以看到这是一个关于C语言编程的示例,其中可能涉及到了使用`while`循环来计算一系列数字的总和。`while`循环是C语言中的一种控制流程结构,用于在满足特定条件时重复...
这个压缩包“accumulo-column-summing-源码.rar”显然包含了Accumulo中关于列求和功能的源代码。Accumulo的核心特性之一是它的行和列的细粒度安全控制以及对数据的排序,这使得它在大数据分析领域具有很高的性能和...
### 4-20mA至0-20mA转换器及电流叠加电流转换技术 在过程控制行业中,电流环路已成为信号传输的标准方法。电流环路具有抗噪性好、不受线路阻抗误差影响的特点。Burr-Brown提供了一系列完整的单片4mA至20mA电流环路...
【知识点解析】 这篇内容主要涉及的是高中英语的学习材料,特别是诗歌单元的学习,涵盖了语言运用、总结及学习技巧。以下是对这些知识点的详细解释: 一、词汇应用 1. "ran away" - 表示“逃跑”,在句中描述男孩...
3. **TREE.C**:这可能是一个关于树数据结构的实现,如二叉树、AVL树或红黑树。C语言可以用来构建和操作这些数据结构,实现查找、插入和删除操作。 4. **TEST.C**:通常用于测试其他函数或模块的代码,可能包含了...
累加列求和 Accumulo 迭代器将在一组列族上执行服务器端求和。 这是对 SummingCombiner 的改进,以代码复杂性为代价,因为它减少了发送回客户端的数据量,还减少了最终客户端求和的大小。 虽然这在单机设置中通常...
From the reviews of the second edition: ... Summing Up: Recommended. Computer science collections, upper-division undergraduates and above.” (C. Vickery, Choice, Vol. 50 (6), February, 2013)
### 2020_2021学年高中英语Unit5 First aid SectionⅡ Learning about Language Using Language Summing Up & Learning Tip #### 一、关键知识点解析 **标题与描述解析:** - **标题:“2020_2021学年高中英语...
方块图元素包括方块(Block Diagram)、比较点(Summing Point)、分支点(Branch Point)等。基本概念及术语包括前向通路传递函数 G(s)、反馈回路传递函数 H(s) 和开环传递函数等。 1. 方块图元素 (1)方块...
DGCNN features a propagation-based graph convolution layer to extract vertex features, as well as a novel SortPooling layer which sorts vertex representations instead of summing them up.
Summing Durations of Songs Recipe 3.5. Calculating the Number of Weekdays Between Two Dates Recipe 3.6. Looking up Holidays Automatically Recipe 3.7. Fuzzy Parsing of Dates Recipe 3.8. ...
Combine two geo-referenced arrays in one plot by differencing, summing or averaging. Plot lon-lat data on a global or regional map using any of over 100 map projections or make a zonal average line ...
这一课时包含了以下几个部分:总结(Summing Up)、学习技巧(Learning Tip)、自我检测(Checking Yourself)以及其他巩固练习。通过这些环节,学生不仅能够回顾本单元的核心主题、词汇和语法,还能够在老师的引导...
反相求和放大器(Inverting Summing Amplifier) 这种电路允许多个输入信号在反相端叠加,并通过单一运放进行放大和求和。输出电压为各输入电压与各自电阻比的乘积之和的负值。 ### 5. 非反相求和放大器(Non-...
Graphs - Subgraphs - Connected Graphs - Trees - Separable and Nonseparable Graphs - Tree-Search Algorithms - Flows in Networks - Complexity of Algorithms - Connectivity - Planar Graphs - The Four-...
该芯片具有低功耗、宽输入电压范围、无 latch-up、高速增益和短路保护等特点,适用于 summing 放大器、电压跟随器、积分器、活动滤波器、函数生成器和一般反馈应用。 特点 * 低功耗 * 宽输入电压范围 * 无 latch-...