新人求助,hztpp那题,样例过了,提交1WA 9RE

P2171 Hz吐泡泡

~~代码不明显有问题,你本机是怎么AC的~~ 为什么要选这样的标题。。
by hehe_54321 @ 2018-04-22 12:30:29


原来你的逻辑是过了样例就是A了啊,自己看看数据范围,~~再不懂就别做了吧+=~~ 还有,rp真心可有可无
by BlueArc @ 2018-04-22 13:02:36


@[jxdql2001](/space/show?uid=27114) 数据范围哪里有问题啊 倒是发现根节点选错了,改了之后全WA ```cpp #define filreader #include <bits/stdc++.h> #define fp(i,l,r) for(register int i=(l);i<=(r);++i) #define fd(i,l,r) for(register int i=(l);i>=(r);--i) #define MAXN 300000+20 using namespace std; const int INF=0x3f; typedef struct node{ int LeftChild; int RightChild; int deep; int data; }; static struct node Tree[MAXN]; static int deepmaxn; static int n,r; inline int make(int wat,int now){ if(Tree[wat].data<Tree[now].data){ if(Tree[now].LeftChild!=-1){ make(wat,Tree[now].LeftChild); } else{ Tree[now].LeftChild=wat; Tree[wat].deep=Tree[now].deep+1; if(Tree[wat].deep>=deepmaxn){ deepmaxn=Tree[wat].deep; } return 0; } } else if(Tree[wat].data>Tree[now].data){ if(Tree[now].RightChild!=-1){ make(wat,Tree[now].RightChild); } else{ Tree[now].RightChild=wat; Tree[wat].deep=Tree[now].deep+1; if(Tree[wat].deep>=deepmaxn){ deepmaxn=Tree[wat].deep; } return 0; } } else{ return 0; } return 0; } inline int init(){ int a; deepmaxn=-INF; scanf("%d",&n); fp(i,1,n){ scanf("%d",&a); if(i==1){ r=a; Tree[1].deep=1; Tree[1].data=a; continue; } Tree[i].data=a; make(i,1); } printf("deep=%d\n",deepmaxn); return 0; } inline int laru(int curr){ if(Tree[curr].LeftChild!=-1){ laru(Tree[curr].LeftChild); } if(Tree[curr].RightChild!=-1){ laru(Tree[curr].RightChild); } printf("%d\n",Tree[curr].data); return 0; } int main(){ #ifdef filreader freopen("data.txt","r",stdin); freopen("ans.txt","w",stdout); #endif memset(Tree,-1,sizeof(Tree)); init(); laru(1); return 0; } ```
by Fraction @ 2018-04-22 13:34:16


最后吐槽一句。。puts("deep=5\n2\n3\n7\n35\n10\n9\n4\n1"), 他给的样例输入我本机输出答案是对的啊。。。为什么交上来WA了呢。。
by Rye_Catcher @ 2018-04-22 14:08:10


@[Rye_Catcher](/space/show?uid=61382) -_-
by Fraction @ 2018-04-22 14:14:39


这题要开到1e7
by OasisLiam @ 2021-10-05 17:22:55


|