MLE #2

P2171 Hz吐泡泡

a数组开2e6就可以了 @[__rnfmabj__](/user/914275)
by Sun_Email @ 2023-07-30 19:56:04


开2e6了之后就只AC一个点了......@[Sun_Email](/user/566451)
by __rnfmabj__ @ 2023-07-30 20:02:32


我自己开2e6过的。。。 我再看看 @[__rnfmabj__](/user/914275)
by Sun_Email @ 2023-07-30 20:03:34


等下 add(int k) 这个函数不能只传k,要再传一个编号
by Sun_Email @ 2023-07-30 20:05:21


只传k把k当编号当然WA
by Sun_Email @ 2023-07-30 20:05:44


@[__rnfmabj__](/user/914275)
by Sun_Email @ 2023-07-30 20:06:51


``` #include <bits/stdc++.h> using namespace std; const int N=1e7; int n,ans=0; struct tree{ int data,l,r; }a[N]; void add(int k,int step){ if (k>a[step].data){ if (a[step].r==0){ a[step].r=k; a[a[step].r].data=k; return ; } add(k,a[step].r); } if (k<a[step].data){ if (a[step].l==0){ a[step].l=k; a[a[step].l].data=k; return; } add(k,a[step].l); } } void sc(int k){ if (a[k].l!=0){ sc(a[k].l); } if (a[k].r!=0){ sc(a[k].r); } cout<<a[k].data<<endl; } void dfs(int step,int now){ if (a[now].l==0 && a[now].r==0){ ans=max(ans,step); return ; } if (a[now].l) dfs(step+1,a[now].l); if (a[now].r) dfs(step+1,a[now].r); } int main(){ cin>>n; for (int i=1;i<=n;i++){ int k; cin>>k; if (i==1){ a[i].data=k; continue; } add(k,1); } dfs(1,1); cout<<"deep="<<ans<<endl; sc(1); return 0; } ``` 还是MLE......
by __rnfmabj__ @ 2023-07-31 18:58:57


@[Sun_Email](/user/566451)
by __rnfmabj__ @ 2023-07-31 18:59:25


看到了
by Sun_Email @ 2023-07-31 19:04:11


@[__rnfmabj__](/user/914275) 改了吗
by Sun_Email @ 2023-07-31 19:06:05


| 下一页