【題目描述】:
破解了符文之語,小ff開啟了通往地下的道路。當他走到最底層時,發現正前方有一扇巨石門,門上雕刻著一幅古代人進行某種活動的圖案。而石門上方用古代文寫著「神的殿堂」。小ff猜想裡面應該就有王室的遺產了。但現在的問題是如何開啟這扇門……
仔細研究後,他發現門上的圖案大概是說:古代人認為只有智者才是最容易接近神明的。而最聰明的人往往通過一種儀式選拔出來。儀式大概是指,即將隱退的智者為他的候選人寫下一串無序的數字,並讓他們進行一種操作,即交換序列中相鄰的兩個元素。而用最少的交換次數使原序列變成不下降序列的人即是下一任智者。
小ff發現門上同樣有著n個數字。於是他認為開啟這扇門的秘訣就是找到讓這個序列變成不下降序列所需要的最小次數。但小ff不會……只好又找到了你,並答應事成之後與你三七分……
【輸入描述】:
第一行,乙個數n,表示序列中有n個數。
第二行n個數,表示給定的序列。
【輸出描述】:
給定序列的最少操作次數。
【樣例輸入】:
65 4 2 6 3 1
【樣例輸出】:
11【時間限制、資料範圍及描述】:
對於50%的資料,n<=2500
對於100%的資料,n<=40000。
-maxlongint<=ai<=maxlongint
本題是樹狀陣列求逆序對裸題,在這題中我學會了使用stable_sort,使用這個工具不會改變相同元素在原陣列中的相對位置。
code:
#include#include#include#include#include#include#includeusing namespace std;
const int n=1000005;
int t,n,aa[n],c[n],i,ans;
struct nodea[n];
bool cmp(node a,node b)
return sum;
}int main()
stable_sort(a+1,a+1+n,cmp);
for(i=1;i<=n;i++)
for(i=1;i<=n;i++)
printf("%d\n",ans);
return 0;
}
P1774 最接近神的人
這個人當然是我啦,皮 破解了符文之語,小ff開啟了通往地下的道路。當他走到最底層時,發現正前方有一扇巨石門,門上雕刻著一幅古代人進行某種活動的圖案。而石門上方用古代文寫著 神的殿堂 小ff猜想裡面應該就有王室的遺產了。但現在的問題是如何開啟這扇門 仔細研究後,他發現門上的圖案大概是說 古代人認為只有...
t099 最接近神的人
time limit 1 second memory limit 128 mb 問題描述 破解了符文之語,小ff開啟了通往地下的道路。當他走到最底層時,發現正前方有一扇巨石門,門上雕刻著一幅古代人進行某種活 動的圖案。而石門上方用古代文寫著 神的殿堂 小ff猜想裡面應該就有王室的遺產了。但現在的問題...
洛谷P1774 最接近神的人
用類似於桶的方法,樹狀陣列記錄原序列的某位置之前已經插入了多少個數,插入時樹狀陣列單點加1即可 先排一遍序,從大到小插入所有數在原序列的位置,統計每次插入時,在該元素前面元素的個數,前面的元素是先插入的,比該元素大,而在序列中的位置靠前,所以這個字首和是逆序對數 include include in...