codevs1540 銀河英雄傳說

2021-08-09 07:56:11 字數 835 閱讀 9124

「我們的征途是星辰大海」

銀英傳←

這才是題目←

思路:

加權並查集

維護f[i],t[i],cnt[i]

cnt[i]->i在當前佇列中後面有多少元素

f[i]->i所在集合標誌元素(佇列底元素)

注意在未執行find(i)操作時,f[i]不一定為i真正的底

t[i]->i所在佇列頂元素

t[i]僅在merge更新不再是隊底的元素的cnt值時有意義

需要保證每個元素的f[i]的t、cnt等值時刻為實際值,這樣每個元素在find後,t、cnt等可更新為實際值

有點像線段樹的lazy思想?

/*

4m 2 3

c 1 2

m 2 4

c 4 2

*/#include

#include

#include

using

namespace

std;

const

int maxn = 200000 + 50;

int f[maxn],t[maxn],cnt[maxn];

void init(int n)

int n;

int find(int x)

void merge(int a,int b)

char ch;

int x,y;

int main()

else

else}}

}

好像18年要重新動畫化?emmmmm

COdevs 1540 銀河英雄傳說

source 2002年noi全國競賽 時間限制 1 s 空間限制 256000 kb 題目等級 大師 master 公元五八 一年,地球居民遷移至金牛座 第二行星,在那裡發表銀河聯邦創立宣言,同年改元為宇宙歷元年,並開始向銀河系深處拓展。宇宙歷七九九年,銀河系的兩大軍事集 在巴公尺利恩星域爆發戰爭...

codevs 1540 銀河英雄傳說

題目描述 description 公元五八 一年,地球居民遷移至金牛座 第二行星,在那裡發表銀河聯邦創立宣言,同年改元為宇宙歷元年,並開始向銀河系深處拓展。宇宙歷七九九年,銀河系的兩大軍事集 在巴公尺利恩星域爆發戰爭。泰山壓頂集 宇宙艦隊司令萊因哈特率領十萬餘艘戰艦出征,氣吞山河集 點名將楊威利組織...

銀河英雄傳說

公元五八 一年,地球居民遷至金牛座 第二行星,在那裡發表銀河聯邦創立宣言,同年改元為宇宙歷元年,並開始向銀河系深處拓展。宇宙歷七九九年,銀河系的兩大軍事集 在巴公尺利恩星域爆發戰爭。泰山壓頂集 宇宙艦隊司令萊因哈特率領十萬餘艘戰艦出征,氣吞山河集 點名將楊威利組織麾下三萬艘戰艦迎敵。楊威利擅長排兵布...