代码超时

P1305 新二叉树

所以请你说一下你到底是什么意思。。。 我根本不知道你怎么 TLE 的,能不能给一点信息?
by hhce2012 @ 2024-03-30 18:58:40


@[hhc2012](/user/928986) 原来的代码不行```cpp #include<bits/stdc++.h> using namespace std; struct { char c,l,r; } a[30]; void frontf(int k) { if(a[k].c!='*') { cout<<a[k].c; int left=0,right=0; if(a[k].l=='*'&&a[k].r=='*') { return; } else if(a[k].l=='*') { for(int i=1; i<=30; i++) { if(a[i].c==a[k].r) { right=i; break; } } } else if(a[k].r=='*') { for(int i=1; i<=30; i++) { if(a[i].c==a[k].l) { left=i; break; } } } else { for(int i=1; i<=30; i++) { if(a[i].c==a[k].l)left=i; if(a[i].c==a[k].r)right=i; if(left>0&&right>0)break; } } if(a[k].l!='*')frontf(left); if(a[k].r!='*')frontf(right); } } int main() { int n; cin>>n; for(int i=1; i<=n; i++) { getchar(); a[i].c=getchar(); a[i].l=getchar(); a[i].r=getchar(); } frontf(1); return 0; } ``` 现在已经AC了 ![AC](D:\lyh\code\屏幕截图 2024-04-04 143801.png)
by liyunhe @ 2024-04-04 14:39:32


@[liyunhe](/user/1217201) ``` #include<bits/stdc++.h> using namespace std; struct { char c,l,r; } a[30]; void frontf(int k) { if(a[k].c!='*') { cout<<a[k].c; int left=0,right=0; if(a[k].l=='*'&&a[k].r=='*') { return; } else if(a[k].l=='*') { for(int i=1; i<=30; i++) { if(a[i].c==a[k].r) { right=i; break; } } } else if(a[k].r=='*') { for(int i=1; i<=30; i++) { if(a[i].c==a[k].l) { left=i; break; } } } else { for(int i=1; i<=30; i++) { if(a[i].c==a[k].l)left=i; if(a[i].c==a[k].r)right=i; if(left>0&&right>0)break; } } if(a[k].l!='*')frontf(left); if(a[k].r!='*')frontf(right); } } int main() { int n; cin>>n; for(int i=1; i<=n; i++) { getchar(); a[i].c=getchar(); a[i].l=getchar(); a[i].r=getchar(); } frontf(1); return 0; } ``` 现在的代码已经AC ![AC](D:\lyh\code\屏幕截图 2024-04-04 143801.png)
by liyunhe @ 2024-04-04 14:43:46


|