bzoj4769超級貞魚 歸併排序

2021-07-30 05:55:04 字數 1069 閱讀 6402

description

馬達加斯加貞魚是一種神奇的雙腳貞魚,它們把自己的智慧型寫在腳上——每只貞魚的左腳和右腳上個有乙個數。有一天,k只貞魚興致來潮(1≤k≤10^5),排成一列,從左到右第i只貞魚會在右腳寫ai(1≤ai≤10^9),左腳上寫上i(1≤i≤k),第二年,這k只貞魚按右腳的數從小到大排成一列,然後,它們決定重編號,從左到右第i只貞魚會在右腳上寫上左腳的數,在左腳上寫i,第三年,它們按第二年的方法重排列、重編號……n年後(1≤n≤10^5),對於從左到右第i和第j貞魚,若i

#include

#include

#include

#define fo(i,a,b) for(int i=a;i<=b;i++)

#define fd(i,a,b) for(int i=a;i>=b;i--)

using

namespace

std;

int n,m;

const

int n=1e6+5;

typedef

long

long ll;

struct node

a[n];

int b[n],tmp[n];

ll ans;

inline

void merge_sort(int l,int r)

tmp[cnt++]=b[h1];

h1++;

}fo(i,h1,mid)tmp[cnt++]=b[i];

fo(i,h2,r)tmp[cnt++]=b[i];

fo(i,l,r)b[i]=tmp[i];

}bool cmp(node x,node y)

sort(a+1,a+1+n,cmp);

fo(i,1,n)b[a[i].id]=i;

scanf("%d",&m);

if(m&1)

sort(a+1,a+n+1,cmp);

fo(i,1,n)b[i]=a[i].id;

} merge_sort(1,n);

printf("%lld\n",ans);

}

BZOJ 4769 超級貞魚 歸併排序

time limit 2 sec memory limit 64 mb submit 123 solved 32 submit status discuss 馬達加斯加貞魚是一種神奇的雙腳貞魚,它們把自己的智慧型寫在腳上 每只貞魚的左腳和右腳上個有乙個數。有一天,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。我們...