UVA 1471 Average
来源:互联网 发布:奶瓶 linux 编辑:程序博客网 时间:2024/06/05 00:40
这道题很简单,直接AC就可以了。
#include<iostream>
#include<cstring>
#include<cctype>
#include<cstdio>
#include<map>
#include<set>
#include<list>
#include<cstdlib>
#include<string>
#include<algorithm>
#include<vector>
#include<stack>
#include<queue>
#include<cmath>
using namespace std;
int num1[200001],num2[200001],num[200001];
struct point
{
int a,b;
bool operator < (const point x)const
{
if(a!=x.a) return a<x.a;
else return b>x.b;
}
};
int main()
{
int T;
cin>>T;
while(T--)
{
int n,maxx=1,sum;
cin>>n;
set<point> s;
memset(num1,0,sizeof(num));
memset(num2,0,sizeof(num));
for(int i=0;i<n;i++) cin>>num[i];
for(int i=0;i<n;i++)
{
if(!i) num1[i]=1;
else
{
if(num[i]>num[i-1])
{
num1[i]=num1[i-1]+1;
}
else
{
num1[i]=1;
}
}
}
for(int i=n-1;i>=0;i--)
{
if(i==(n-1)) num2[i]=1;
else
{
if(num[i]<num[i+1])
{
num2[i]=num2[i+1]+1;
}
else
{
num2[i]=1;
}
}
}
for(int i=0;i<n;i++)
{
point p;
p.a=num[i];
p.b=1000000001;
set<point>::iterator jj=s.lower_bound(p);
if(jj!=s.begin())
{
jj--;
sum=(*jj).b+num2[i];
if(sum>maxx) maxx=sum;
}
p.a=num[i];
p.b=num1[i];
s.insert(p);
set<point>::iterator j=s.find(p);
if(j!=s.begin() && (*(--j)).b>=(*(++j)).b) s.erase(j);
else if((++j)!=s.end())
{
set<point>::iterator jjj=j;
j--;
for(set<point>::iterator k=jjj;k!=s.end();)
{
if((*j).a<(*k).a)
{
if((*k).b<=(*j).b)
{
s.erase(k++);
}
else break;
}
else
{
s.erase(k++);
}
}
}
}
if(n==0) maxx=0;
cout<<maxx<<endl;
}
}
- UVA 1471 Average
- Average UVA
- Average UVA
- Average UVA
- UVA 10370 - Above Average
- UVa 10370 - Above Average
- UVa 10281 - Average Speed
- UVA 1451 - Average
- UVA 1451 Average
- uva 1451 Average 平均值
- UVa OJ 1451 - Average
- UVa 10370 Above Average
- UVA 1451 Average 斜率优化
- uva 1451——Average
- uva 1451 Average 斜率优化
- UVA 1451 Average(斜率优化)
- UVa 10370 Above Average (water ver.)
- uva 1451 - Average 数形结合
- 最长公共子序列-History Grading
- Java基础温习 (6)重载,重写以及继承,多态的区别
- andoid sys bug 转载
- 编译生成适合于arm平台使用的mp4v2(学习了交叉编译呀)
- TCP三次握手&关闭
- UVA 1471 Average
- V$SESSION_WAIT
- 【第二回】使用OCCT实现对一个瓶子建模的总结
- 对程序的磁盘映像、内存映像、地址空间的理解 ,和 ls、size 命令
- eclipse,唉无语,调试得很无语
- 29留数及其应用(五)
- Nios II嵌入式软处理器提升系统性能方式详解
- cocos2dx ant一键批量打包
- Java基础温习 (4)Java关键字static、final使用小结