hdu 6215(技巧)
来源:互联网 发布:百叶窗 知乎 编辑:程序博客网 时间:2024/06/15 08:06
题意:给出一个数组,然后将里面连续递减的删去,然后形成一个新的数列,继续这样操作,求最后形成的数列。
PS:北大20分钟过的题最后还是没有过。关键是这个思想确实比较强大。
用一个左右指针,然后更新,然后维护。看了北大队员的代码,自愧不如。
#include<bits/stdc++.h>using namespace std;typedef long long ll;typedef unsigned long long ull;typedef pair<int,int> P;#define fi first#define se second#define INF 0x3f3f3f3f#define clr(x,y) memset(x,y,sizeof x)#define PI acos(-1.0)#define ITER set<int>::iteratorconst int Mod = 1e9 + 7;const int maxn = 1e5 + 10;const int N = 2;int a[maxn],le[maxn],ri[maxn],q[maxn];bool vis[maxn];int main(){ int Tcase;scanf("%d",&Tcase); while(Tcase --) { int n;scanf("%d",&n); for(int i = 1; i <= n;i ++)scanf("%d",&a[i]); a[0] = 0;a[n + 1] = maxn;clr(vis,false); int l = 1,r = 0; for(int i = 1; i <= n;i ++) { if(a[i] < a[i - 1]) { if(!vis[i - 1]){vis[i - 1] = true,q[++ r] = i - 1;}//cout << i - 1 << " ";} vis[i] = true,q[++ r] = i;//cout << i << " "; } le[i] = i - 1,ri[i] = i + 1; } while(l <= r) { int rr = r; for(int i = l; i <= rr;i ++) { le[ri[q[i]]] = le[q[i]];ri[le[q[i]]] = ri[q[i]]; if(le[q[i]] == 0 || ri[q[i]] == n + 1)continue; if(!vis[ri[q[i]]] && a[ri[q[i]]] < a[le[q[i]]]) { if(!vis[le[q[i]]]){q[++ r] = le[q[i]],vis[le[q[i]]] = true;}//cout << le[q[i]] << " ";} vis[ri[q[i]]] = true,q[++ r] = ri[q[i]];//cout << ri[q[i]] << " "; } } l = rr + 1; } printf("%d\n",n - r); for(int i = 1;i <= n;i ++)if(!vis[i])printf("%d ",a[i]);puts(""); } return 0;}
阅读全文
0 0
- hdu 6215(技巧)
- HDU-1124(数学技巧)
- hdu 2586的技巧
- HDU 5301 - Buildings(技巧)
- hdu 输出技巧 2099
- hdu 5288 思维技巧
- HDU 5671:Matrix【技巧】
- HDU 1173(技巧题)
- HDU 2186 取整小技巧
- hdu 1046 技巧题
- hdu 1143 技巧
- HDU-1215(数学技巧题目)
- HDU 1395 数论小技巧
- hdu 4550 一些小技巧
- hdu 5288 (小技巧)
- HDU 2674-- N!Again【技巧】
- HDU 5312(数学推导+技巧)
- HDU - 5665 Lucky (技巧)
- QThread: Destroyed while thread is still running
- 【PythonDjango后台实例 第七章】Django使用Video.js视频播放插件
- PAT 甲级 1010. Radix (25)
- struts2的核心和工作原理
- SQL server递归查询
- hdu 6215(技巧)
- 华为机试题-约瑟夫问题
- AutoML 学习
- linux ssh免密码登陆
- cent os 6.3部分命令
- c++二维指针求每行每列次大值
- 作业
- ajax&promise
- JavaSE_day1-3(笔记)