RE求助

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

急!
by Kevin626 @ 2024-08-03 11:28:08


@[Kevin626](/user/1129659) dfs死循环了吧……
by XLoffy @ 2024-08-03 11:43:05


而且不用递归也可以过啊
by XLoffy @ 2024-08-03 11:46:07


@[Kevin626](/user/1129659) 我豆我也re了
by zhangkean777 @ 2024-08-03 23:11:58


```cpp #include <iostream> using namespace std; struct treee { int num,id; } a[100010],b[100010]; int n; int findd(int x) { int j=1; int q,w,k=1; for(int i=(1<<(n-x+1));i<=(1<<(n-x+2))-1;i++) { if(j%2==1) q=a[i].num,w=a[i].id; if(j%2==0) { if(q<a[i].num) { b[k].num=a[i].num; b[k].id=a[i].id; } else{ b[k].num=q; b[k].id=w; } k++; } j++; } } int main() { cin>>n; int cnt=1; for(int i=(1<<n);i<=(1<<(n+1))-1;i++) { cin>>a[i].num; a[i].id=cnt; cnt++; } for(int i=1;i<=n;i++) { findd(i); int k=1; for(int j=(1<<(n-i));j<=(1<<(n-i+1))-1;j++) { a[j].num=b[k].num; a[j].id=b[k].id; k++; } } cout<<a[2].id; return 0; } ```
by zhangkean777 @ 2024-08-03 23:12:56


```cpp #include <iostream> using namespace std; struct c { int id; int d; }; c ls[512]; int main() { int n = 1, t; cin >> t; for (int i = 0; i < t; i++) { n *= 2; } for (int i = 0; i < n; i++) { cin >> ls[i].d; ls[i].id = i + 1; } while (n != 2) { n /= 2; for (int i = 0; i < n; i++) { if (ls[2 * i].d > ls[2 * i + 1].d) { ls[i].d = ls[2 * i].d; ls[i].id = ls[2 * i].id; } else { ls[i].d = ls[2 * i + 1].d; ls[i].id = ls[2 * i + 1].id; } } } if (ls[0].d > ls[1].d) cout << ls[1].id; else cout << ls[0].id; } ```
by _yin_wei_ta_shan_ @ 2024-08-09 13:51:06


|