hdu 5592 ZYB's Premutation(线段树)
来源:互联网 发布:unity3d硬件配置要求 编辑:程序博客网 时间:2024/06/03 21:46
题目链接:hdu 5592 ZYB’s Premutation
代码
#include <cstdio>#include <cstring>#include <algorithm>using namespace std;const int maxn = 50005;#define lson(x) ((x)<<1)#define rson(x) (((x)<<1)|1)int lc[maxn<<2], rc[maxn<<2], sz[maxn<<2];void pushup(int u) { sz[u] = sz[lson(u)] + sz[rson(u)];}void build (int u, int l, int r) { lc[u] = l, rc[u] = r; sz[u] = 1; if (l == r) return; int mid = (l + r) >> 1; build (lson(u), l, mid); build (rson(u), mid+1, r); pushup(u);}void modify(int u, int x, int v) { if (x == lc[u] && rc[u] == x) { sz[u] = v; return; } int mid = (lc[u] + rc[u]) >> 1; if (x <= mid) modify(lson(u), x, v); else modify(rson(u), x, v); pushup(u);}int search(int u, int k) { if (lc[u] == rc[u]) return lc[u]; if (sz[lson(u)] >= k) return search(lson(u), k); else return search(rson(u), k - sz[lson(u)]);}int N, A[maxn], ans[maxn];int main () { int cas; scanf("%d", &cas); while (cas--) { scanf("%d", &N); A[0] = 0; for (int i = 1; i <= N; i++) scanf("%d", &A[i]); build(1, 0, N-1); for (int i = N; i; i--) { ans[i] = search(1, A[i] - A[i-1] + 1); modify(1, ans[i], 0); } for (int i = 1; i <= N; i++) printf("%d%c", N-ans[i], i == N ? '\n' : ' '); } return 0;}
0 0
- HDU 5592 ZYB's Premutation 线段树
- hdu 5592 ZYB's Premutation (线段树)
- HDU 5592(ZYB's Premutation-线段树)
- hdu 5592 ZYB's Premutation 线段树
- hdu-5592 ZYB's Premutation(线段树)
- hdu 5592 ZYB's Premutation(线段树)
- hdu 5592 ZYB's Premutation(线段树求逆序数)
- hdu 5592 ZYB's Premutation 经典线段树
- HDU.5592 ZYB's Premutation(线段树求第k大)
- HDU 5592ZYB's Premutation (线段树求第K大)
- HDU 5592 ZYB's Premutation 线段树(查找动态区间第K大)
- HDU 5592 ZYB's Premutation 线段树(查找动态区间第K大)
- HDU 5592 ZYB's Premutation
- HDU 5592 ZYB's Premutation
- HDU 5592 ZYB's Premutation
- HDU 5592 ZYB's Premutation
- hdu 5592 ZYB's Premutation
- hdu 5592 ZYB's Premutation(线段树查询第k大的数)
- Git学习
- WampServer修改端口及菜单Localhost
- Linux中select poll和epoll的区别
- bzoj1040 骑士 树形dp
- Matlab模板匹配实现图像运动估计(频域实现)
- hdu 5592 ZYB's Premutation(线段树)
- js判断所给的字符串是否为数值
- android本地数据库的建立和操作,并同步到服务端数据
- ibatis遇到错误:The content of elements must consist of well-formed character data or markup
- Ext实现下拉选择框
- RCNN & SPP-net & Fast-RCNN & Faster-RCNN
- 数据结构与算法——0-1背包问题
- vmvare-centos初始设置大全
- 阿里系盒子英菲克i6八核 科学使用 笔记 (2015年12月26日成功)