用线段树写的,为什么有3个RE,大佬求帮助

P4715 【深基16.例1】淘汰赛

@[mamba2400](/user/389268) 思路有点像线段树,但好像不用这么麻烦 我的思路是把每一层的状态转移到下一层(有点dp的感觉),最后在判断输出亚军而不是冠军 Code: ```cpp #include<cstdio> using namespace std; int n,l; struct data{ int val,id; }a[10][130]; int pow(int n,int x){ int m=n; for(int i=1;i<x;i++)n*=m; return n; } data max(data a,data b){ return a.val>b.val?a:b; } int main() { std::ios::sync_with_stdio(0); cin>>l; n=pow(2,l); for(int i=1;i<=n;i++) cin>>a[0][i].val,a[0][i].id=i; for(int i=1;i<=l;i++,n/=2) for(int j=1,k=1;j<=n;j+=2,k++) a[i][k]=max(a[i-1][j],a[i-1][j+1]); cout<<(a[l-1][1].val>a[l-1][2].val?a[l-1][2].id:a[l-1][1].id)<<endl; return 0; } ``` 自己理解,直接交有惊喜呦
by Zvelig1205 @ 2021-08-10 11:26:53


@[极冬寒雪](/user/413020) 亿点点惊喜,谢谢你!
by LeM0NAdE @ 2021-08-10 17:59:13


|