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]从零开始的序列的更多相关文章

  1. cogs 2632. [HZOI 2016] 数列操作d

    2632. [HZOI 2016] 数列操作d ★★★   输入文件:segment.in   输出文件:segment.out   简单对比时间限制:3 s   内存限制:512 MB [题目描述] ...

  2. COGS 2416.[HZOI 2016]公路修建 & COGS 2419.[HZOI 2016]公路修建2 题解

    大意: [HZOI 2016]公路修建 给定一个有n个点和m-1组边的无向连通图,其中每组边都包含一条一级边和一条二级边(连接的顶点相同),同一组边中的一级边权值一定大于等于二级边,另外给出一个数k( ...

  3. cogs——2478. [HZOI 2016]简单的最近公共祖先

    2478. [HZOI 2016]简单的最近公共祖先 ★☆   输入文件:easy_LCA.in   输出文件:easy_LCA.out   简单对比时间限制:2 s   内存限制:128 MB [题 ...

  4. COGS 2199. [HZOI 2016] 活动投票

    2199. [HZOI 2016] 活动投票 ★★   输入文件:hztp.in   输出文件:hztp.out   简单对比时间限制:0.5 s   内存限制:2 MB [题目描述] 衡中活动很多, ...

  5. COGS 2334. [HZOI 2016]最小函数值

    时间限制:1 s   内存限制:128 MB [题目描述] 有n个函数,分别为F1,F2,...,Fn.定义Fi(x)=Aix2+Bix+Ci(x∈N∗).给定这些Ai.Bi和Ci,请求出所有函数的所 ...

  6. cogs——2419. [HZOI 2016]公路修建2

    2419. [HZOI 2016]公路修建2 ★☆   输入文件:hzoi_road2.in   输出文件:hzoi_road2.out   简单对比时间限制:1 s   内存限制:128 MB [题 ...

  7. cogs——2416. [HZOI 2016]公路修建

    2416. [HZOI 2016]公路修建 ★☆   输入文件:hzoi_road.in   输出文件:hzoi_road.out   简单对比时间限制:1 s   内存限制:128 MB [题目描述 ...

  8. cogs 2478. [HZOI 2016]简单的最近公共祖先

    2478. [HZOI 2016]简单的最近公共祖先 ★☆   输入文件:easy_LCA.in   输出文件:easy_LCA.out   简单对比时间限制:2 s   内存限制:128 MB [题 ...

  9. COGS 2479. [HZOI 2016]偏序 [CDQ分治套CDQ分治 四维偏序]

    传送门 给定一个有n个元素的序列,元素编号为1~n,每个元素有三个属性a,b,c,求序列中满足i<j且ai<aj且bi<bj且ci<cj的数对(i,j)的个数. 对于100%的 ...

随机推荐

  1. [未完] term.js 记录遇到的问题

    参考博文:https://www.cnblogs.com/zhenfei-jiang/p/7065038.html 按照网上查找的资料敲了代码 term.on('data', function(dat ...

  2. linux中管道(pipe)一谈

    /*********************************************** 管道(pipe)是Linux上进程间通信的一种方式,其是半双工(数据流只能在一个方向上流动(还需要经过 ...

  3. MySQL解决中文编码问题

    转载组员博客 地址:MySQL解决中文编码问题

  4. GPIO实现I2C协议模拟(2)

    接着上一节继续补充 结合上一节的描述 写Slave的过程如下(BYTE) 读Slave的过程如下(BYTE) 分为两段 第一段 ,写OFFSET,第二段读数据 WORD的方式与BYTE大同异 读行为 ...

  5. jQuery实现复选框的全选、反选功能

    <ul id="list"> <li><label><input type="checkbox" value=&quo ...

  6. B1056 组合数的和 (15分)

    B1056 组合数的和 (15分) 给定 N 个非 0 的个位数字,用其中任意 2 个数字都可以组合成 1 个 2 位的数字.要求所有可能组合出来的 2 位数字的和.例如给定2.5.8,则可以组合出: ...

  7. 动态规划:ZOJ1074-最大和子矩阵 DP(最长子序列的升级版)

    To the Max Time Limit:1 Second     Memory Limit:32768 KB Problem Given a two-dimensional array of po ...

  8. easyui-combogrid必填为空时无法通过表单验证的问题

    在使用easyui-combogrid时,由于html解析出的格式是如下三层: <td> <input id="txcombo" class="easy ...

  9. How to check if Visual Studio 2005 SP1 is installed

    How to check if Visual Studio 2005 SP1 is installed Check the following registry key. HKEY_LOCAL_MAC ...

  10. SXCPC2018 nucoj2004 国王的怪癖

    可持久化trie.考场上我脑补了一个trie树合并也A了 #include <iostream> #include <cstring> #include <cstdio& ...