HDU 5775 Bubble Sort 树状数组
来源:互联网 发布:在淘宝买狗狗安全吗 编辑:程序博客网 时间:2024/06/05 03:54
题目链接
题意: 1 - N 的一个排列 进行冒泡排序 输出排序时i出现的最左位置和最右位置的差,i 为 1 - N
第K个数 出现的三个边界情况为
1.位置K
2.最右位置为 K + (K 右边比第K个数小的数的个数)
3.位置(第k个数的值)
最后取差最大的
代码:
#include <cstdio>#include <iostream>#include <cstring>#include <queue>#include <algorithm>#include <map>#include <cmath>#define sf scanf#define pf printfusing namespace std;const int maxn = 100000 + 10;int num[maxn];int ans[maxn];int FABS(int n){ return n > 0 ? n : -n;}struct BIT{ int C[maxn]; int n; void init(int _n){ n = _n; for(int i = 0;i <= n;++i){ C[i] = 0; } } int lowbit(int x){ return x & ( -x ); } void add(int x,int d){ while(x <= n){ C[x] += d; x += lowbit(x); } } int sum(int x){ int ret = 0; while( x > 0 ){ ret += C[x]; x -= lowbit(x); } return ret; }}tree;int main(){ int T,ca = 0; sf("%d",&T); while( T-- ){ int n;sf("%d",&n); tree.init(n); for(int i = 1;i <= n;++i){ sf("%d",&num[i]); ans[i] = 0; } for(int i = n;i > 0;--i){ int low_cnt = tree.sum(num[i]); int low_pos = i + low_cnt; ans[num[i]] = max(FABS(num[i] - i) , max(FABS(num[i] - low_pos),FABS(i - low_pos))); tree.add(num[i],1); } pf("Case #%d:",++ca); for(int i = 1;i <= n;++i) pf(" %d",ans[i]); pf("\n"); } return 0;}
0 0
- HDU 5775 Bubble Sort 树状数组
- 树状数组-HDU-5775-Bubble Sort
- HDU-5775-Bubble Sort-树状数组
- HDU - 5775 Bubble Sort(树状数组)
- HDU 5775 Bubble Sort(树状数组)
- HDU 5775 Bubble Sort [树状数组]【数据结构】
- HDU 5775 Bubble Sort (树状数组或线段树)
- hdu 5775 Bubble Sort 树状数组(多校)
- HDU 5775 Bubble Sort 树状数组求逆序数
- hdu 5774 Bubble Sort(树状数组)
- HDU5775 Bubble Sort树状数组
- 2016 Multi-University Training Contest 4 hdu 5775 Bubble Sort【树状数组+思维】
- hdu 5775 Bubble Sort(2016 Multi-University Training Contest 4——树状数组)
- (HDU 5775)Bubble Sort <树状数组> 多校训练4
- Hdu-5775 Bubble Sort
- HDU 5775 Bubble Sort
- hdu 5775 Bubble Sort
- HDU 5775 Bubble Sort
- 使用Visual Studio(VS)开发Qt程序代码提示功能的实现
- 【Algothrim】 动态规划实例(Stamps)
- 设计模式——综述
- 矩阵快速幂总结
- Triangle
- HDU 5775 Bubble Sort 树状数组
- [038]如何选择机器学习分类器?
- View
- HDU3652 B-number(数位DP)
- java web项目中的properties文件中的属性值在启动后进行修改(数据库密码加密等)
- volatile
- poj 3170
- len,counta,& “”连接符号,字符串长度,非空单元格数量
- 带着O_CREAT和O_RDWR进入linux系统调用open函数