作者greatloser (Alfred)
看板C_and_CPP
标题[问题] [ACM]112_Tree_Summing_WA
时间Mon Aug 27 22:33:49 2018
问题(Question):
http://luckycat.kshs.kh.edu.tw/homework/q112.htm
我的想法是把输入值存入stack中并将现有总和加上输入值
如果探访到leaf就判断现有和是否等於目标
若要往其他的分支走,就把回溯时经过的点pop掉并把现有总和减去pop的值
已经测过udebug上的测资并通过了,找不出有甚麽遗漏的地方
不好意思麻烦大家了
喂入的资料(Input):
https://www.udebug.com/UVa/112其中的所有测资
预期的正确结果(Expected Output):
全对
错误结果(Wrong Output):
在UVA上WA
程式码(Code):(请善用置底文网页, 记得排版,禁止使用图档)
https://gist.github.com/BuddistCoding/a20998e409b3a8cde33865187619ae8f
补充说明(Supplement):
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 122.118.127.107
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_and_CPP/M.1535380435.A.2B5.html
1F:→ oToToT: (无关的抱怨)每次看到UVA题都觉得头痛,那个input真的好 08/28 14:43
2F:→ oToToT: 恶,感觉就是一个Project没有做好API却要你读各种资料, 08/28 14:43
3F:→ oToToT: 考的几乎是parsing能力 08/28 14:43
4F:推 s06i06: AC了 ,就一般dfs,主要注意是到leaf的path总和 08/28 14:52
5F:推 s06i06: return testpath(leftSubtree...)||testpath(rightSubtree 08/28 14:55
6F:→ s06i06: ...) 这样写会WA 08/28 14:55
可是我已经有把LEAF的判定写进去了(左右BRANCH皆空的情况下),
判断是LEAF时才会把现在经过PATH的总和跟目标值比对
CODE片段如下
if (nullNodeCount[topOfCount] == 2) //两个空节点->此节点为leaf
{
if (presentVal == targetVal)//judge if the sum is equal to the target
{
accept = true;
}
}
※ 编辑: greatloser (122.118.127.107), 08/28/2018 16:03:45
7F:推 s06i06: 那就不清楚了 我的逻辑跟你一样 只是我是用递回 08/28 16:27
8F:推 cutekid: 深度最多只到100吗??你的code只能处理100以下 08/29 02:16
我当初是设定100没错,想说够多了
我应该要设到1万吗?
※ 编辑: greatloser (122.118.129.102), 08/29/2018 12:01:59
9F:推 cutekid: 设大一点看会不会AC 08/29 12:06
设到100万了还是WA Q_Q
※ 编辑: greatloser (122.118.129.102), 08/29/2018 13:07:20
10F:推 cutekid: github 上的程式码第 62 行改成 continue 08/29 14:48
11F:推 cutekid: 或者把 cin.sync() 用 cin.ignore(1024,'\n') 取代 08/29 15:26
12F:→ wawi2: 别想uva了 很烂 还是leetcode刷起来比较实在 08/29 20:23
13F:→ wawi2: 写 之前写uva被他的input搞死 每种都不太一样 浪费时 08/29 20:24