求帮助!TLE两个,应该是超了0.2ms
查看原帖
求帮助!TLE两个,应该是超了0.2ms
737115
Some_Nayr_not_Ryan楼主2024/1/4 11:08

代码:

#include<iostream>
using namespace std;
struct A{
    int i,t=0;
}a[100001];
int main(){
    int n;
    cin>>n;
    n=2<<(n-1);
    for(int i=0;i<n;i++){cin>>a[i].t;a[i].i=i+1;}
    int n2=n;
    while(1){
        int cnt=0;
        for(int i=0;i<n2;i+=2) if(a[i].t>a[i+1].t) a[cnt++].t=a[i].t,a[cnt-1].i=a[i].i; else a[cnt++].t=a[i+1].t,a[cnt-1].i=a[i+1].i;
        n2=cnt;
        /*for(int i=0;i<n2;i++) cout<<a[i].i<<' ';
        cout<<endl;
        for(int i=0;i<n2;i++) cout<<a[i].t<<' ';
        cout<<endl<<endl;*/
        if(n2==2) break;
    }
    if(a[0].t<a[1].t) cout<<a[0].i;
    else cout<<a[1].i;
    return 0;
}

可能是空间复杂度爆了…… 求帮助!

2024/1/4 11:08
加载中...