【树状数组(逆序数)】hdu 3743 Frosh Week
来源:互联网 发布:windows 进程 oid 编辑:程序博客网 时间:2024/04/29 20:16
http://acm.hdu.edu.cn/showproblem.php?pid=3743
分析:就是求逆序数,要注意离散化处理,题目信息也不说行清楚
#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>using namespace std;const int NM=1000005;int a[NM],c[NM];struct Node{int vau,pos;}node[NM];int lowbit(int x){return x&(-x);}void add(int x){while(x<NM){c[x]++;x+=lowbit(x);}}__int64 getsum(int x){__int64 ans=0;while(x>0){ans+=c[x];x-=lowbit(x);}return ans;}bool comp(struct Node A,struct Node B){if(A.vau<B.vau) return 1;else return 0;}int main(){int n,i;__int64 res;while(scanf("%d",&n)!=EOF){memset(c,0,sizeof(c));for(i=1;i<=n;i++){scanf("%d",&node[i].vau);node[i].pos=i;}sort(node+1,node+1+n,comp);for(i=1;i<=n;i++)a[node[i].pos]=i;res=0;for(i=1;i<=n;i++){add(a[i]);res+=i-getsum(a[i]);}printf("%I64d\n",res);}return 0;}
0 0
- 【树状数组(逆序数)】hdu 3743 Frosh Week
- HDU 3743 Frosh Week(树状数组求逆序数)
- Frosh Week (hdu 3743 树状数组)
- HDOJ 3743 Frosh Week(树状数组求逆序对)
- hdu 3743 Frosh Week (离散化+树状数组,求逆序对)
- hdu 3743 Frosh Week(求逆序数方法总结)
- HDU 3743 Frosh Week 树状数组
- hdu-Frosh Week(树状数组)
- UVa11858 - Frosh Week(树状数组求逆序数)
- hdu 3743 Frosh Week (树状数组的离散化)
- HDU - 3743 Frosh Week(树状数组+离散化)
- HDU 3743 Frosh Week(树状数组或归并排序求逆序)
- hdu 3743 Frosh Week (归并排序·逆序数)
- HDU 3743 Frosh Week(树状数组+离散化)
- HDU 3743 Frosh Week(逆序对-BIT)
- 【树状数组】 HDOJ 3743 Frosh Week
- HDU 3743 Frosh Week
- HDU 3743 Frosh Week
- cocos2d-x V2.14以后版本的环境部署
- ZOJ 3751 Diagonal
- uva10795 - A Different Task 汉诺塔 给出状态问步数
- DP:四边形不等式优化 Optimization of Quadrilateral Inequality
- 学习SSH中遇到的问题总结
- 【树状数组(逆序数)】hdu 3743 Frosh Week
- bash的初步学习
- Qt5.2 for Android 配置及部署到手机运行
- IOS中系统唯一标识ID
- Lua查找表元素过程(元表、__index方法是如何工作的)
- 编译模块--Makefile
- linux 模块编译步骤
- Linux编译模块问题
- 经典状态dp题目