Online Judge | Problem Set | Authors | Online Contests | User | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest |
Re:好吧,我来个线段树版本的吧,勿喷!!!In Reply To:好吧,我来个线段树版本的吧,勿喷!!! Posted by:Panamera at 2014-04-18 18:11:25 > #include<stdio.h> > #include<algorithm> > #define lson l,m,rt<<1 > #define rson m+1,r,rt<<1|1 > #define MAX_N 1100 > using namespace std; > int tree[MAX_N<<2],arr[MAX_N],s[MAX_N]; > int query(int val,int l,int r,int rt) > { > ++tree[rt]; > if(l==r) > return 0; > int m = l + ( r - l ) / 2 ; > return val <= s[m] ? query(val,lson)+tree[rt<<1|1] : query(val,rson); > } > int main() > { > int t; > scanf("%d",&t); > for(int i=1;i<=t;++i) > { > int n ; > scanf("%d",&n); > for(int j=0;j<n;++j) > { > scanf("%d",arr+j); > s[j] = arr[j] ; > } > sort(s,s+n); > int len = unique(s,s+n) - s ; > int res = 0 ; > for(int j=0;j<n;++j) > res +=query(arr[j],0,len-1,1); > printf("Scenario #%d:\n%d\n\n",i,res); > fill(tree,tree+n*4,0); > } > return 0; > } Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator