time limit: 2 sec memory limit: 64 mb
submit: 123 solved: 32
[submit][status][discuss]
馬達加斯加貞魚是一種神奇的雙腳貞魚,它們把自己的智慧型寫在腳上--每只貞魚的左腳和右腳上個有乙個數。有一天,k只貞魚興致來潮,排成一列,從左到右第i只貞魚會在右腳寫ai,左腳上寫上i,第二年,這k只貞魚按右腳的數從小到大排成一列,然後,它們決定重編號,從左到右第i只貞魚會在右腳上寫上左腳的數,在左腳上寫i,第三年,它們按第二年的方法重排列、重編號......n年後,對於從左到右第i和第j貞魚,若i
一共3行,第一行乙個正整數k,第二行k個數從左到右輸入ai,第三行乙個正整數n。
1≤ai≤10^9,1≤k≤5*10^6,0≤n≤5000
乙個整數,表示"超級貞魚"對數。
65 2 6 3 1 707
模擬一下過程就會發現就是兩個數列交替出現
根據m的奇偶性,把數列搞出來
之後求一遍逆序對就行了
#include#include#include#include#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;
typedef long long ll;
inline int read()
while(ch<='9'&&ch>='0')
return x*f;
}void print(ll x)
const int n=1000100;
struct pb[n];
inline bool cmp(const p &x,const p &y)
tmp[++cnt]=a[i++];
} for(;i<=mid;++i)tmp[++cnt]=a[i];
for(;j<=r;++j)tmp[++cnt]=a[j];
for(i=l;i<=r;++i)a[i]=tmp[i];
}int main()/*6
5 2 6 3 1 707
*/
就在剛才。。。發現。。。
其實m的限制毫無卵用,直接求逆序對就好了。。。
#include#include#include#include#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;
typedef long long ll;
inline int read()
while(ch<='9'&&ch>='0')
return x*f;
}void print(ll x)
const int n=1000100;
int tmp[n],a[n],n,m;
ll ans;
void merger_sort(int l,int r)
tmp[++cnt]=a[i++];
} for(;i<=mid;++i)tmp[++cnt]=a[i];
for(;j<=r;++j)tmp[++cnt]=a[j];
for(i=l;i<=r;++i)a[i]=tmp[i];
}int main()/*6
5 2 6 3 1 707
*/
bzoj4769超級貞魚 歸併排序
description 馬達加斯加貞魚是一種神奇的雙腳貞魚,它們把自己的智慧型寫在腳上 每只貞魚的左腳和右腳上個有乙個數。有一天,k只貞魚興致來潮 1 k 10 5 排成一列,從左到右第i只貞魚會在右腳寫ai 1 ai 10 9 左腳上寫上i 1 i k 第二年,這k只貞魚按右腳的數從小到大排成一列...
bzoj 4769 超級貞魚 歸併排序
time limit 1 sec memory limit 128 mb 馬達加斯加貞魚是一種神奇的雙腳貞魚,它們把自己的智慧型寫在腳上 每只貞魚的左腳和右腳上個有乙個數。有一天,k只貞魚興致來潮 1 k 10 5 排成一列,從左到右第i只貞魚會在右腳寫ai 1 ai 10 9 左腳上寫上i 1 i...
超級鋼琴 BZOJ 2006
超級鋼琴 問題描述 小z是乙個小有名氣的鋼琴家,最近c博士送給了小z一架超級鋼琴,小z希望能夠用這架鋼琴創作出世界上最美妙的 這架超級鋼琴可以彈奏出n個音符,編號為1至n。第i個音符的美妙度為ai,其中ai可正可負。乙個 超級 和弦 由若干個編號連續的音符組成,包含的音符個數不少於l且不多於r。我們...