洛谷 1774 最接近神的人
生活随笔
收集整理的這篇文章主要介紹了
洛谷 1774 最接近神的人
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
【題解】
其實就是求逆序?qū)ΑV苯由蠘錉顢?shù)組就好了。
1 #include<cstdio> 2 #include<algorithm> 3 #include<cstring> 4 #define LL long long 5 #define rg register 6 #define N 500010 7 using namespace std; 8 int n,m,n2,a[N],b[N],t[N]; 9 LL ans; 10 inline int read(){ 11 int k=0,f=1; char c=getchar(); 12 while(c<'0'||c>'9')c=='-'&&(f=-1),c=getchar(); 13 while('0'<=c&&c<='9')k=k*10+c-'0',c=getchar(); 14 return k*f; 15 } 16 inline void add(int x){for(;x<=n2;x+=(x&-x)) t[x]++;} 17 inline int query(int x){int ret=0;for(;x>0;x-=(x&-x)) ret+=t[x]; return ret;} 18 int main(){ 19 n=read(); 20 for(rg int i=1;i<=n;i++) a[i]=b[i]=read(); 21 sort(b+1,b+1+n); n2=unique(b+1,b+1+n)-b-1; 22 for(rg int i=1;i<=n;i++) a[i]=lower_bound(b+1,b+1+n2,a[i])-b; 23 // for(rg int i=1;i<=n;i++) printf("%d ",a[i]); puts(""); 24 for(rg int i=1;i<=n;i++){ 25 ans+=query(a[i]); 26 add(a[i]); 27 } 28 printf("%lld\n",1LL*n*(n-1)/2-ans); 29 return 0; 30 }View Code
?
轉(zhuǎn)載于:https://www.cnblogs.com/DriverLao/p/9307343.html
總結(jié)
以上是生活随笔為你收集整理的洛谷 1774 最接近神的人的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 青岛啤酒1块多钱一瓶质量有保证吗?
- 下一篇: 求一个男生qq网名简短高冷