[ACM ] 112 WA

看板C_and_CPP (C/C++)作者 (XD)時間16年前 (2010/06/28 14:20), 編輯推噓1(102)
留言3則, 2人參與, 最新討論串1/2 (看更多)
( *[1m *[m 為色碼,可以按 Ctrl+V 預覽會顯示的顏色 ) ( 未必需要依照此格式,文章條理清楚即可 ) 題號:112 遇到的問題: 我自己不管是用VC2008 或是linux 怎麼跑都覺得是對的 但是上傳都是WA ◢▆▅▄▃崩╰(〒皿〒)╯潰▃▄▅▇◣ 已經爬過文了 但我還是不知道我錯在哪裡 所以想問問其他高手們 我所用的方法 大概就是一直去讀input 一邊讀tree 一邊判斷現在走到哪裡 目前的總和是多少 如果讀到leaf 就判斷現在的總和和key是否相同 有問題的code: (請善用置底文的標色功能) #include<stdio.h> char judge(char s){ if(s=='(' || s==')' || s=='-') return 1; if(s>='0' && s<='9') return 1; return 0; } int main(){ int key,sum,depth,node,tree[100000],IsLeaf; char s; bool YN; while(scanf("%d",&key)>0){ sum=0; depth=0; YN=false; while(1){ s=getchar(); if(judge(s)==0) { continue; } if(s=='('){ depth++; if(scanf("%d",&node)>0){ sum+=node; tree[depth]=node; IsLeaf=0; //IsLeaf: empty child count }else{ while(getchar()!=')'); depth--; IsLeaf++; if(IsLeaf==2){ // printf("%d,",sum); if(sum==key)YN=true; } } }else if(s==')'){ sum-=tree[depth]; depth--; IsLeaf=0; } if(depth==0) break; } if(YN)printf("yes\n"); else printf("no\n"); } return 0; } 補充說明: -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.102.109

06/28 16:16, , 1F
他沒有提到過 tree depth 最深是 100000 過 ?
06/28 16:16, 1F

06/28 16:18, , 2F
他沒有提... 不過我開多少都死 都是WA RUN TIME 0.06x
06/28 16:18, 2F

06/29 00:21, , 3F
看來也沒有人知道我這code死在哪裡 orz
06/29 00:21, 3F
文章代碼(AID): #1CA3yO9E (C_and_CPP)
討論串 (同標題文章)
以下文章回應了本文
1
1
完整討論串 (本文為第 1 之 2 篇):
1
1
1
3
16年前, 06/28
文章代碼(AID): #1CA3yO9E (C_and_CPP)