社区讨论
90分TLE求改进
P1970[NOIP 2013 提高组] 花匠参与者 2已保存回复 1
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 1 条
- 当前快照
- 1 份
- 快照标识符
- @m2ei0jfr
- 此快照首次捕获于
- 2024/10/18 16:59 去年
- 此快照最后确认于
- 2025/11/04 16:56 4 个月前
最后一个测试点TLE了,想不出来如何进一步优化了,求助
CPP#include<bits/stdc++.h>
using namespace std;
int main()
{//b[i]为长度为i且最后一个大于前一个情况下最后一个的最大值
//c[i]为长度为i且最后一个小于前一个情况下最后一个的最小值
int n,i,j,bl=0,cl=0;
cin>>n;
int a[n],b[n],c[n];
cin>>a[0];
b[0]=a[0];
c[0]=a[0];
for(i=1;i<n;i++)
{
cin>>a[i];
b[i]=0x80000000;
c[i]=0x7fffffff;
for(j=bl;j>=0;j--)
if(a[i]<b[j] && a[i]<c[j+1])
{
c[j+1]=a[i];
if(cl<j+1)
cl=j+1;
break;
}
for(j=cl;j>=0;j--)
if(a[i]>c[j] && a[i]>b[j+1])
{
b[j+1]=a[i];
if(bl<j+1)
bl=j+1;
break;
}
}
if(bl>cl)
cout<<bl+1;
else
cout<<cl+1;
return 0;
}
回复
共 1 条回复,欢迎继续交流。
正在加载回复...