标签:iostream lin ++ 整数 space display 题解 .com ios
1 #include <iostream> 2 #include <cstdlib> 3 #include <cstdio> 4 #include <cstring> 5 #include <queue> 6 #include <algorithm> 7 #include <cmath> 8 #include <map> 9 #include <set> 10 #define N 100005 11 using namespace std; 12 int n,a[N],b[N],dl[2*N]; 13 int lowbit(int x) 14 { 15 return x&(-x); 16 } 17 void add(int x) 18 { 19 for(int i=x;i<=n;i+=lowbit(i)) 20 b[i]++; 21 } 22 int get(int x) 23 { 24 int ans=0; 25 for(int i=x;i>0;i-=lowbit(i)) 26 ans+=b[i]; 27 return ans; 28 } 29 long long ans[N]; 30 int main() 31 { 32 scanf("%d",&n); 33 for(int i=1;i<=n;i++) scanf("%d",&a[i]),dl[a[i]]=i; 34 for(int i=n;i>=1;i--) 35 { 36 ans[0]+=get(a[i]); 37 add(a[i]); 38 } 39 long long mn=ans[0]; 40 for(int i=1;i<n;i++) 41 { 42 a[dl[i]]=n+i-1; 43 ans[i]=ans[i-1]-(dl[i]-1)+n-dl[i]; 44 mn=min(mn,ans[i]); 45 dl[n+i-1]=i; 46 } 47 printf("%lld\n",mn); 48 return 0; 49 }
Bzoj 2058: [Usaco2010 Nov]Cow Photographs 题解
标签:iostream lin ++ 整数 space display 题解 .com ios
原文地址:http://www.cnblogs.com/liutianrui/p/7617780.html