時間限制: 1 s
空間限制: 256000 kb
題目等級 : ** gold
題解hzwer在研究逆序對。
對於數列,如果有序數對(i,j)滿足:ia[j],則(i,j)是一對逆序對。
給定乙個數列,求逆序對個數。
輸入資料較大,請使用scanf代替cin讀入。
*為防卡評測,時限調低至1s
輸入描述 input description
第一行乙個數n,表示有n個元素。
接下來n個數,描述。
輸出描述 output description
乙個數,表示逆序對個數。
樣例輸入 sample input
3 1 5 2 4
樣例輸出 sample output
資料範圍及提示 data size & hint
對於10%資料,1<=n<=100.
對於20%資料,1<=n<=10000.
對於30%資料,1<=n<=100000.
對於100%資料,1<=n<=1000000,1<=a[i]<=10^8.
tips:我沒有想故意卡你們時限。一點這樣的意思都沒有。你們不要聽風就是雨……
比賽已結束 詳細解析見題解
分類標籤 tags 點此展開
連樹狀陣列求逆序對我都不會寫了,,好弱啊
關於怎麼實現,推薦一篇部落格
1 #include2 #include3 #include4 #include5 #include6#define ll long long
7#define lb(x) ((x)&(-x))
8using
namespace
std;
9const
int maxn=40000001
;10 inline int
read()
1114
while(c>='
0'&&c<='
9') x=x*10+c-48,c=getchar();return x*f;15}
16int
n;17
inttree[maxn];
18int
a[maxn];
19int
data[maxn];
20 inline void point_add(int pos,int
val)
2127
}28 inline int interval_sum(int
pos)
2936
return
ans;37}
38int
main()
3950 printf("
%lld
",ans);
51return0;
52 }
CODEVS 電話連線
題目描述 description 乙個國家有n個城市。若干個城市之間有 線連線,現在要增加m條 線 線當然是雙向的了 使得任意兩個城市之間都直接或間接經過其他城市有 線連線,你的程式應該能夠找出最小費用及其一種連線方案。輸入描述 input description 輸入檔案的第一行是n的值 n 10...
codevs 石子歸併
codevs 1048 石子歸併 題目描述 description 有n堆石子排成一列,每堆石子有乙個重量w i 每次合併可以合併相鄰的兩堆石子,一次合併的代價為兩堆石子的重量和w i w i 1 問安排怎樣的合併順序,能夠使得總合併代價達到最小。輸入描述 input description 第一行...
CODEVS 倒水問題
題目描述 有兩個無刻度標誌的水壺,分別可裝 x 公升和 y 公升 x,y 為整數且均不大於 100 的水。設另有一水 缸,可用來向水壺灌水或接從水壺中倒出的水,兩水壺間,水也可以相互傾倒。已知 x 公升壺為空 壺,y 公升壺為空壺。問如何通過倒水或灌水操作,用最少步數能在x或y公升的壺中量出 z z...