4 条题解
-
1
淘汰赛
没有复杂的pair版
#include<bits/stdc++.h> using namespace std; int n,a[200],xx[200],z=1;//用xx[i]记录谁赢了第i队 int arcaea(int l,int r,int c) { if(c==0)//初始化树的最底层 c==0时l-r区间内只有一队 { xx[l]=l; return a[l]; } int mid=(l+r)/2; int lans=arcaea(l,mid,c-1); int rans=arcaea(mid+1,r,c-1); if(c==n) if(lans<rans) return xx[l]; else return xx[r]; if(lans<rans) { xx[l]=xx[r]; return rans; } else { xx[r]=xx[l]; return lans; } } int main() { cin>>n; int aa=n; while(aa--) z*=2;//z 总共队数 for(int i=1;i<=z;i++) cin>>a[i]; cout<<arcaea(1,z,n); return 0; }
信息
- ID
- 1191
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 1
- 标签
- 递交数
- 28
- 已通过
- 27
- 上传者