hoj 2275 Number Sequence
来源:互联网 发布:看电影软件不付费 编辑:程序博客网 时间:2024/06/05 08:05
知道两点即可:
一:计算出每个Ai,之前以及之后比他小的个数做乘法运算,然后求和,即是最后结果
二:找出Ai之前比Ai小的数,可以用树状数组,同理求之后的数也一样;
#include <iostream>#include <cstring>#include <cstdio>#define MAXN 50010using namespace std;int N;int c[MAXN], a[MAXN], b[MAXN], d[MAXN];int lowbit( int x ){return x&(-x);}void UFset(int i, int data){while(i <= 32768){c[i] += data;i += lowbit(i);}}int Querry( int x ){int sum = 0;while(x > 0){sum += c[x];x -= lowbit(x);}return sum;}int main(){int i;long long ans;while(scanf("%d", &N) != EOF){memset(a, 0, sizeof(a));memset(b, 0, sizeof(b));memset(c, 0, sizeof(c));for(i = 0; i < N; ++i){scanf("%d", &d[i]);a[i] += Querry( d[i] );//在输入的时候就计算i之前的值比它小的值有多少个UFset( d[i] + 1, 1 );//然后再更新}memset(c, 0, sizeof(c));for(i = N-1; i >= 0; --i){b[i] = Querry(d[i]);UFset(d[i] + 1, 1);}ans = 0;for(i = 0; i < N; ++i)ans += (long long)a[i] * (long long)b[i];printf("%lld\n", ans);}return 0;}
- HOJ 2275 Number Sequence
- hoj 2275 Number Sequence
- hoj 2275 Number sequence
- Hoj 2275 Number Sequence
- HOJ 2275 Number sequence
- hoj 2275 Number sequence 树状数组解法
- HOJ 2275 Number sequence(树状数组)
- hoj 2275 Number sequence(树状数组)
- HOJ 2275 Number sequence(树状数组)
- -----hoj 2275 Number sequence(树状数组)
- HOJ 2275——Number sequence(树状数组)
- HOJ 2275 Number sequence(树状数组) 大于小于问题
- 树状数组题目总结三( 上)( HOJ 2275 Number sequence )
- HIT 2275 Number sequence
- hoj Score Sequence DP
- HOJ 2761 Gibonacci Sequence
- HOJ 1603 Brackets Sequence
- HOJ MaoLaoDa Number
- R树空间索引
- SparWeb 的安装和使用
- 最近点对NYOJ
- ios7 UIScrollView 尺寸问题------UIScrollView的子视图整体下移
- android 百度定位(一)
- hoj 2275 Number Sequence
- 【技术类】【了解金字塔】金字塔和概视图的关系
- JDBC用PrepareStatement实现增,删,改,查
- RTP协议分析
- 实现CustomDraw绘制ListCtrl子项的关键步骤
- primefaces
- ACE_Recursive_Thread_Mutex 死锁bug
- 重要的shell命令
- u-boot在s3c44b0 上的移植