Train Wreck 模拟-建树-优先队列
生活随笔
收集整理的這篇文章主要介紹了
Train Wreck 模拟-建树-优先队列
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
題意 :
- 類似于堆棧的火車站。給出長(zhǎng)為2n2n2n的括號(hào)序列,()分別代表放入火車站和推出火車站,又給了n輛火車的顏色。
- 求構(gòu)造一個(gè)關(guān)于顏色的放入序列,滿足不存在同一放入火車的時(shí)刻在火車站內(nèi)顏色的序列相同。
思路 :
- 將棧操作看作樹,要求轉(zhuǎn)化為給每一個(gè)節(jié)點(diǎn)染色,使得從根到每一個(gè)節(jié)點(diǎn)的鏈所構(gòu)成的顏色序列兩兩不同。注意到兩個(gè)都在第i層的節(jié)點(diǎn),如果它們父親不同,則從根到它們父親的鏈所構(gòu)成的顏色序列不同,這使得根到它們所構(gòu)成的顏色序列也一定不同。
- 因此,問題轉(zhuǎn)化為,每個(gè)點(diǎn)的k個(gè)兒子顏色互不相同,對(duì)于一個(gè)節(jié)點(diǎn),假設(shè)有k個(gè)兒子,我們選取剩余火車數(shù)最多的k個(gè)顏色對(duì)應(yīng)上去即可(使用優(yōu)先隊(duì)列實(shí)現(xiàn))。
如下圖,
會(huì)發(fā)現(xiàn)在第一行和第二行的條件(顏色不同)滿足后,第三行的條件(大于一個(gè)數(shù)的顏色不同)自然會(huì)滿足,因此想到樹的性質(zhì),即讓父節(jié)點(diǎn)的每個(gè)兒子顏色互不相同。
總結(jié)
以上是生活随笔為你收集整理的Train Wreck 模拟-建树-优先队列的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: War of Inazuma (Easy
- 下一篇: Just another board g