o2大法好,不过为什么每次TLE的点不一样,有时就过了
查看原帖
o2大法好,不过为什么每次TLE的点不一样,有时就过了
65306
ping140楼主2020/7/9 17:50
#include <cstdio>
#include <iostream>
#include <stack>
#include <string.h>
using namespace std;
int ans[10000010]={0};
struct node{
	int a,id;
};
stack<node> s;
int main()
{
	node w,p;
	//memset(ans,0,sizeof(ans));	
	int n,a,t=0,d=0;
	scanf("%d",&n);
	for(int i=1;i<=n;i++)
	{
		scanf("%d",&a);
		w.a=a;
		w.id=i;
		while(!s.empty())
		{
			p=s.top();
			if(w.a>p.a)
			{
				ans[p.id]=i;
				s.pop();
				d++;
			}
			else break;
		}
		s.push(w);
		t++;
	}
	for(int i=1;i<=n;i++)
	printf("%d ",ans[i]);
	return 0;
}

很神奇每一次TLE的点不一样,有时2个有时3个有时4个

2020/7/9 17:50
加载中...