COGS 2485. [HZOI 2016]从零开始的序列
2485. [HZOI 2016]从零开始的序列
★★ 输入文件:sky_seq.in 输出文件:sky_seq.out 简单对比
时间限制:1 s 内存限制:256 MB
【题目描述】
这个名字只是吸引你们这些死宅过来的。跟题目没关系。
现在Sky_miner给你一个序列,定义f(x)为(所有长度为x的区间中的最小值)的最大值.
要求输出f(1) .. f(n)
1 <= n <= 2*10^5
【输入格式】
第一行一个正整数n,含义如题
第二行共n个整数,为给定的序列,每一个整数 -10000 <= x <= 10000
【输出格式】
一行,共n个正整数,分别为f(1) f(2) .. f(n)
【样例输入】
5
3 4 1 3 9
【样例输出】
9 3 1 1 1
【来源】
HZOI 2016
分析:
大概有两种做法...
一种是比较直接的并查集做法...
就是我们把元素从大到小排序,依次加入序列中,然后并查集维护联通块的大小,更新答案,最后因为$f[i]>=f[i+1]$再$O(N)$更新一遍就好了...
一种是单调栈做法...
维护$l[i]r[i]$代表以$a[i]$为最小值所能扩展到最远的子序列,然后更新答案...
代码:
#include<algorithm>
#include<iostream>
#include<cstring>
#include<cstdio>
//by NeighThorn
using namespace std; const int maxn=200000+5; int n,a[maxn],f[maxn],fa[maxn],siz[maxn],pos[maxn],vis[maxn]; inline int read(void){
char ch=getchar();int f=1,x=0;
while(!(ch>='0'&&ch<='9')){
if(ch=='-') f=-1;
ch=getchar();
}
while(ch>='0'&&ch<='9') x=x*10+ch-'0',ch=getchar();
return f*x;
} inline int find(int x){
return fa[x]==x?x:fa[x]=find(fa[x]);
} inline bool cmp(int x,int y){
return a[x]>a[y];
} signed main(void){
freopen("sky_seq.in","r",stdin);
freopen("sky_seq.out","w",stdout);
n=read();memset(f,-1,sizeof(f));
for(int i=1;i<=n;i++)
a[i]=read(),fa[i]=i,siz[i]=1,pos[i]=i;
sort(pos+1,pos+n+1,cmp);
for(int i=1;i<=n;i++){
vis[pos[i]]=1;
if(pos[i]>1&&vis[pos[i]-1]){
int fx=find(pos[i]-1);
siz[pos[i]]+=siz[fx],fa[fx]=pos[i];
}
if(pos[i]<n&&vis[pos[i]+1]){
int fx=find(pos[i]+1);
siz[pos[i]]+=siz[fx],fa[fx]=pos[i];
}
if(f[siz[pos[i]]]==-1)
f[siz[pos[i]]]=a[pos[i]];
}
for(int i=n-1;i>=1;i--)
f[i]=max(f[i],f[i+1]);
for(int i=1;i<=n;i++)
printf("%d ",f[i]);puts("");
fclose(stdin);fclose(stdout);
return 0;
}
By NeighThorn
COGS 2485. [HZOI 2016]从零开始的序列的更多相关文章
- cogs 2632. [HZOI 2016] 数列操作d
2632. [HZOI 2016] 数列操作d ★★★ 输入文件:segment.in 输出文件:segment.out 简单对比时间限制:3 s 内存限制:512 MB [题目描述] ...
- COGS 2416.[HZOI 2016]公路修建 & COGS 2419.[HZOI 2016]公路修建2 题解
大意: [HZOI 2016]公路修建 给定一个有n个点和m-1组边的无向连通图,其中每组边都包含一条一级边和一条二级边(连接的顶点相同),同一组边中的一级边权值一定大于等于二级边,另外给出一个数k( ...
- cogs——2478. [HZOI 2016]简单的最近公共祖先
2478. [HZOI 2016]简单的最近公共祖先 ★☆ 输入文件:easy_LCA.in 输出文件:easy_LCA.out 简单对比时间限制:2 s 内存限制:128 MB [题 ...
- COGS 2199. [HZOI 2016] 活动投票
2199. [HZOI 2016] 活动投票 ★★ 输入文件:hztp.in 输出文件:hztp.out 简单对比时间限制:0.5 s 内存限制:2 MB [题目描述] 衡中活动很多, ...
- COGS 2334. [HZOI 2016]最小函数值
时间限制:1 s 内存限制:128 MB [题目描述] 有n个函数,分别为F1,F2,...,Fn.定义Fi(x)=Aix2+Bix+Ci(x∈N∗).给定这些Ai.Bi和Ci,请求出所有函数的所 ...
- cogs——2419. [HZOI 2016]公路修建2
2419. [HZOI 2016]公路修建2 ★☆ 输入文件:hzoi_road2.in 输出文件:hzoi_road2.out 简单对比时间限制:1 s 内存限制:128 MB [题 ...
- cogs——2416. [HZOI 2016]公路修建
2416. [HZOI 2016]公路修建 ★☆ 输入文件:hzoi_road.in 输出文件:hzoi_road.out 简单对比时间限制:1 s 内存限制:128 MB [题目描述 ...
- cogs 2478. [HZOI 2016]简单的最近公共祖先
2478. [HZOI 2016]简单的最近公共祖先 ★☆ 输入文件:easy_LCA.in 输出文件:easy_LCA.out 简单对比时间限制:2 s 内存限制:128 MB [题 ...
- COGS 2479. [HZOI 2016]偏序 [CDQ分治套CDQ分治 四维偏序]
传送门 给定一个有n个元素的序列,元素编号为1~n,每个元素有三个属性a,b,c,求序列中满足i<j且ai<aj且bi<bj且ci<cj的数对(i,j)的个数. 对于100%的 ...
随机推荐
- Linux分享笔记:查看帮助命令 & 常用系统工作命令
在执行命令时,为了防止出现权限不足的问题,在登陆Linux系统时,要点击普通用户名下的 “Not listed?” 用root管理员身份登陆. [1] 执行查看帮助命令 man 这条命令用来查看帮助文 ...
- k8s的认证和service account简述
k8s的认证: 与API server通信的客户端大致有两类: 1.集群客户端工具(kubectl.kubeadm.kubelet等) 2.集群内pod. 任何客户端访问k8s时的过程: 1.认 ...
- linux正则表达式企业级深度实践案例1
linux正则表达式结合三剑客企业级实践: 1.取系统ip [root@redhat~]# ifconfig eth0 解答: 替换命令: sed 's#支持正则位置##g' file 先取第 ...
- java中的访问修饰符 (2013-10-11-163 写的日志迁移
访问级别 修饰符 同类 同包 子类 ...
- Java开发学生管理系统
Java 学生管理系统 使用JDBC了链接本地MySQL 数据库,因此在没有建立好数据库的情况下没法成功运行 (数据库部分, Java界面部分, JDBC部分) 资源下载: http://downlo ...
- MongDB之各种新增操作
接口IMongDaoCreate: package com.net.test.mongdb.dao; import java.util.List; import com.net.test.mongdb ...
- pip3 的安装 同时安装lxml和pygame
ubuntu18.04中 首先查看自己电脑的python版本,一般都会有2, 和3 python -V python3 -V 查看pip版本 pip -V pip3 -V 现在我们就可以开始安装我们的 ...
- Paper Folding UVA - 177 模拟+思路+找规律
题目:题目链接 思路:1到4是很容易写出来的,我们先考虑这四种情况的绘制顺序 1:ru 2:rulu 3:rululdlu 4:rululdluldrdldlu 不难发现,相较于前一行,每一次增加一倍 ...
- 扩展程序 - Google Chrome
Adblock Plus 3.0.3 Adblock Plus 已被超过 1 亿台设备使用,是世界上最受欢迎的广告拦截软件. ID:cfhdojbkjhnklbpkdaibdccddilifddb 查 ...
- Spark性能优化:shuffle调优
调优概述 大多数Spark作业的性能主要就是消耗在了shuffle环节,因为该环节包含了大量的磁盘IO.序列化.网络数据传输等操作.因此,如果要让作业的性能更上一层楼,就有必要对shuffle过程进行 ...