这份代码为什么没TLE?
查看原帖
这份代码为什么没TLE?
529492
xzf_200906楼主2022/1/17 22:14

RT,不仅没TLE,还相当快。数据该加强了

#include<bits/stdc++.h>
using namespace std;
int a[10000000],ans[10000000];
int find(int p,int num){
    if(a[p]>num) return p;
    if(ans[p]==-1) return -1;
    return find(ans[p],num);
}
int main(){
	int n;
	scanf("%d",&n);
	for(int i=0;i<n;i++) scanf("%d",a+i);
    ans[n-1]=-1;
    for(int i=n-2;i>=0;i--){
        if(a[i]<a[i+1]) ans[i]=i+1;
        else if(a[i]==a[i+1]) ans[i]=ans[i+1];
        else{
            ans[i]=find(i+1,a[i]);
        }
    }
    for(int i=0;i<n;i++) printf("%d ",ans[i]+1);
	return 0;
}

评测记录

2022/1/17 22:14
加载中...