HDU6215】的更多相关文章

Brute Force Sorting Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others)Total Submission(s): 1204    Accepted Submission(s): 314 Problem Description Beerus needs to sort an array of N integers. Algorithms are not Beerus…
题意:给你长度为n的数组,定义已经排列过的串为:相邻两项a[i],a[i+1],满足a[i]<=a[i+1].我们每次对当前数组删除非排序过的串,合并剩下的串,继续删,直到排序完成. 题解:用双向链表模拟删除过程即可. 具体细节见代码: #include<cstdio> #include<cstring> #define N 200010 using namespace std; int T,n,i,a[N],out[N],next[N],pre[N],r,pos[N],l;…
地址:http://acm.split.hdu.edu.cn/showproblem.php?pid=6215 题目: Brute Force Sorting Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others)Total Submission(s): 496    Accepted Submission(s): 119 Problem Description Beerus need…
题意 给一个长度为n(n<=1e5)的序列,如果一个位置i满足a[i-1]>a[i]或者a[i]>a[i+1],那么我们就称该位置是不合法的位置 先把序列中所有不合法的位置统一找出来,然后再一起删除,剩下的合并成一个新序列 再对新序列重复操作,直至最后每个位置都是合法的 现在你需要输出最后的序列长什么样 分析 如果根据题意用链表去直接暴力模拟那么会T 会T的原因就是可能有很多不应该被删除的位置我们去从前往后遍历了很多遍 注意发现一个规律,某一次可能的不合法位置一定是上一次不合法位置的左边…