日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【UOJ 51】最接近神的人

發布時間:2024/4/17 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【UOJ 51】最接近神的人 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

【題目描述】:

破解了符文之語,小FF開啟了通往地下的道路。當他走到最底層時,發現正前方有一扇巨石門,門上雕刻著一幅古代人進行某種活動的圖案。而石門上方用古代文寫著“神的殿堂”。小FF猜想里面應該就有王室的遺產了。但現在的問題是如何打開這扇門……

仔細研究后,他發現門上的圖案大概是說:古代人認為只有智者才是最容易接近神明的。而最聰明的人往往通過一種儀式選拔出來。儀式大概是指,即將隱退的智者為他的候選人寫下一串無序的數字,并讓他們進行一種操作,即交換序列中相鄰的兩個元素。而用最少的交換次數使原序列變成不下降序列的人即是下一任智者。

小FF發現門上同樣有著n個數字。于是他認為打開這扇門的秘訣就是找到讓這個序列變成不下降序列所需要的最小次數。但小FF不會……只好又找到了你,并答應事成之后與你三七分……

【輸入描述】:

第一行,一個數n,表示序列中有n個數。

第二行n個數,表示給定的序列。

【輸出描述】:

給定序列的最少操作次數。

【樣例輸入】:

6 5 4 2 6 3 1

【樣例輸出】:

11

【時間限制、數據范圍及描述】:

時間:1s 空間:128M

對于50%的數據,n<=2500

對于100%的數據,n<=40000。

-maxlongint<=ai<=maxlongint

題解:emm

using namespace std;const int N=1000005; int t,n,aa[N],c[N],i,ans;struct Node{int v; int order; }a[N];bool cmp(Node a,Node b){return a.v<b.v; }int lowbit(int k){return k&(-k); }void update(int t, int value){int i;for(i=t;i<=n;i+=lowbit(i)){c[i]+=value;} }int getsum(int t){int i,sum=0;for(i=t;i>=1;i-=lowbit(i)){sum+=c[i];}return sum; }int main(){scanf("%d",&n);for(i=1;i<=n;i++){scanf("%d",&a[i].v);a[i].order=i;}stable_sort(a+1,a+1+n,cmp);for(i=1;i<=n;i++){aa[a[i].order]=i;}for(i=1;i<=n;i++){update(aa[i],1);ans+=i-getsum(aa[i]);}printf("%d\n",ans);return 0; }

?

轉載于:https://www.cnblogs.com/wuhu-JJJ/p/11196321.html

總結

以上是生活随笔為你收集整理的【UOJ 51】最接近神的人的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。