HDU 5122 树状数组应用
来源:互联网 发布:python打包gui 编辑:程序博客网 时间:2024/05/22 15:08
HDU 5122
2014北京站 J题
题意: 给你一个1~N序列 随机选一个数 sort(向上交换 直到要交换的数比他大)
问: 最好的情况要sort几次 才能变为升序列
大的 在后面的 肯定要先换 不然就会档着后面的数
所以用树状数组逆序插入 插入之前先查找 如果出现了比他小的数就ans++
#include <cstdio>#include <cstring>#include <algorithm>using namespace std;const int MAXN = 1e6+10;int B[MAXN],A[MAXN];inline int lowbit(int x){ return x&-x;}inline void ins(int pos,int n){ for(;pos<=n;pos+=lowbit(pos)) A[pos]++;}inline int find(int pos){ for(;pos;pos-=lowbit(pos)) if(A[pos]) return 1; return 0;}int main(){ int T,cas=1; scanf("%d",&T); while(T--) { int n; scanf("%d",&n); for(int i=0;i<n;i++) scanf("%d",&B[i]); reverse(B,B+n); memset(A,0,sizeof(A)); int sum=0; for(int i=0;i<n;i++) { sum+=find(B[i]); ins(B[i],n); } printf("Case #%d: %d\n",cas++,sum); }}
---------------------------------------水平线------------------------------------------
最近的感觉自己手残眼贱啊... 哈理工比赛看错题 递推都能写残 - -
0 0
- HDU 5122 树状数组应用
- HDU 3874 Necklace 树状数组的应用
- hdu 3874 Necklace【树状数组简单应用】
- hdu 1541 Stars【树状数组简单应用】
- hdu 3564 树状数组的灵活应用
- HDU 2642 Stars 二维树状数组应用
- HDU 1541 Stars 树状数组简单应用
- hdu 5147 (树状数组的应用)
- HDU 2642 Stars 简单二维树状数组应用
- hdu 3874 Necklace(树状数组的灵活应用)
- hdu(1166):敌兵布阵—树状数组的应用
- hdu 2689 Sort it 一维树状数组的应用
- hdu 2642 Stars--二维树状数组的应用
- HDU 1556 Color the ball (树状数组简单应用)
- HDU-2642-Stars(二维树状数组应用)
- hdu 5122 树状数组?..其实是乱搞
- HDU 1394 树状数组
- 树状数组 hdu
- 第十四周项目1 二维数组大折腾
- Linux File Systems
- 11月总结——持续努力,保持激情
- linux ip,主机名,防火墙配置
- [BZOJ 3553/3554/3562/3564/3565/3566][SHTSC/HBOI 2014]解题报告
- HDU 5122 树状数组应用
- IP首部详解
- AFNetworking 2.0 编译不过的问题修复
- iOS开发者必知的75个工具
- 第14周项目3-多科成绩单-(1)&(2)
- Dom4j方式解析XML乱码问题详解
- 十一月英语总结
- 插入排序(C语言实现)
- Linux网络命令