2018 07 21 T2 離家出走

2021-08-21 16:51:13 字數 2686 閱讀 9743

暫無鏈結

【問題描述】

**橫看成嶺側成峰,遠近高低各不同。 **

企鵝豆豆考試爆零了,心態**的他準備離家出走。

貧窮的企鵝國有n座城市,一開始城市之間沒有道路連線不能通行。隨著時間推移,一些道路逐漸建立。但由於國家財力實在不足,所以隨時隨地任意兩座城市最多只有一條路徑可以互相到達。

每次豆豆考試**,他都想從考場裡跑到離考場最遠的乙個城市去。當然豆豆每次都會想知道,最遠的且可以到達的城市離考場所在城市有多遠?

奇妙的事情是,企鵝國的每一條道路長度都是1。

【輸入格式】

第一行乙個整數type,表示資料型別。

接下來第二行兩個整數n,q,表示城市個數和事件個數。

接下來q行,先讀入乙個整數op,表示事件型別。

如果op=1,那麼接著有兩個整數u,v,表示城市u和城市v之間建立了一條新的道路。

如果op=2,那麼接著有乙個整數u,表示這次考試的考場在城市u,豆豆想知道最遠的城市離考場有多遠。

如果type=1,令上一次op=2時的答案為lastans,那麼對於輸入的每乙個u或者v都需要異或上lastans。(lastans初始為0。)

如果type=0,那麼不需要進行其餘額外操作。

【輸出格式】

對於每次op=2的詢問,輸出一行乙個整數表示離考場最遠的城市距離考場的距離。

【輸入樣例】

05 10

1 4 5

2 32 5

2 11 5 3

1 1 4

2 32 5

1 5 2

2 1【輸出樣例】03

23【資料範圍】

對於20

%20\%

20%的輸入資料:n

≤5000,q

≤10000

n≤5000,q≤10000

n≤5000

,q≤1

0000

。對於50

%50\%

50%的輸入資料:n

≤100000,q

≤200000

n≤100000,q≤200000

n≤1000

00,q

≤200

000。

對於另外20

%20\%

20%的輸入資料:typ

e=0type=0

type=0

。對100

%100\%

100%

的輸入資料:n

≤300000,q

≤500000

n≤300000,q≤500000

n≤3000

00,q

≤500

000,道路的修建會滿足,隨時隨地圖中不存在環。

題解因為要求離自己最遠的點,又保證隨時都是棵,所以我們可以想到樹的直徑~~(* 的我怎麼沒想到)~~,離某個點最遠的點一定是直徑的兩個端點中的乙個。

所以我們大力lct

\mathcal

lct維護樹的直徑,當兩棵樹合併的時候,新的直徑的兩個端點一定是原來的四個端點中的兩個,分6

66種情況討論來更新直徑端點即可。

出題人題解:

lct天下第一!!!!

**

#include

#define ls son[v][0]

#define rs son[v][1]

using

namespace std;

const

int m=

3e5+5;

int dad[m]

,son[m][2

],sum[m]

,le[m]

,ri[m]

,f[m]

,n,q,tot,typ;

char ch[5]

;bool rev[m]

;bool

notroot

(int v)

voidup(

int v)

void

turn

(int v)

void

push

(int v)

void

down

(int v)

void

spin

(int v)

void

splay

(int v)

up(v);}

void

access

(int v)

void

beroot

(int v)

void

link

(int x,

int y)

intdis

(int x,

int y)

intfind

(int v)

voidin(

)voidac(

)else y=

find

(x),

printf

("%d\n"

,last=

max(

dis(le[y]

,x),

dis(ri[y]

,x)));

}}intmain()

使用t2t來編寫文件

txt2tags 示例 zh sample zh.html 看這個就能很快熟悉相關語法了 教程 zh manpage zh.html txt2tags學習 bluefrog bluefrog.wu gmail.com date m d y encoding utf 8 target html 一級標...

cocos2dx 離屏渲染

今天才發現 cocos2dx 有乙個類叫做 ccrendertexture,封裝了 opengl render to texture 的 細節。這個類的是採用 fbo 把影象渲染到 自己新建的 frame buffer 來實現的。如果寫乙個 shader 比如讓影象變成灰色,如果只給乙個 ccspr...

7 24校內交流賽 T1 T2

乙個腦洞很大的題,將輸入的所有數異或起來輸出就好了 話說我為什麼這麼喜歡用異或啊 結論題 當某個字串長度恰巧為3 k 1時,從它往下的第3 k 1行恰好只決定於這個字串的左右兩個端點的值 includeusing namespace std inline intread intn,l char a ...