hdu6215 Brute Force Sorting(模拟)
Posted 人活着就是为了Chelly
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hdu6215 Brute Force Sorting(模拟)相关的知识,希望对你有一定的参考价值。
题意
给一个长度为n(n<=1e5)的序列,如果一个位置i满足a[i-1]>a[i]或者a[i]>a[i+1],那么我们就称该位置是不合法的位置
先把序列中所有不合法的位置统一找出来,然后再一起删除,剩下的合并成一个新序列
再对新序列重复操作,直至最后每个位置都是合法的
现在你需要输出最后的序列长什么样
分析
如果根据题意用链表去直接暴力模拟那么会T
会T的原因就是可能有很多不应该被删除的位置我们去从前往后遍历了很多遍
注意发现一个规律,某一次可能的不合法位置一定是上一次不合法位置的左边或者右边
所以我们可以利用并查集维护每个元素当前的左边和右边,然后每次将上一次删除的位置记录下来,这一次只需要check那些位置的左边或者右边是否合法就行了
时间复杂度O(n)
以上是关于hdu6215 Brute Force Sorting(模拟)的主要内容,如果未能解决你的问题,请参考以下文章
hdu6215 Brute Force Sorting(模拟)
HDU - 6215 2017 ACM/ICPC Asia Regional Qingdao Online J - Brute Force Sorting
Brute-force Algorithm(hdu3221)
HDU4971 A simple brute force problem.(强连通分量缩点 + 最大权闭合子图)