《演算法競賽高階指南》樹形地鐵系統

2021-10-09 08:51:52 字數 1045 閱讀 8152

一些主要城市擁有樹形的地鐵系統,即在任何一對車站之間,有且只有一種方式可以乘坐地鐵。

此外,這些城市大多數都有乙個**車站。

想象一下,你是一名在擁有樹形地鐵系統的城市遊玩的遊客,你想探索該城市完整的地鐵線路。

你從**車站出發,隨機選擇一條地鐵線,然後乘坐地鐵行進。

每次到達乙個車站,你都將選擇一條尚未乘坐過的地鐵線路進行乘坐。

如果不存在未乘坐過的線路,則退回到上乙個車站,再做選擇。

直到你將所有地鐵線路都乘坐過兩次(往返各一次),此時你將回到**車站。

之後,你以一種特殊的方式回憶自己的坐車過程,你將你的完整地鐵乘坐路線編碼為乙個二進位制字串。

其中0編碼表示你乘坐地鐵線路到達距離**車站更遠的一站,1編碼表示你乘坐地鐵線路到達距離**車站更近的一站。

輸入格式

第一行輸入乙個正整數n,代表測試用例數量。

每個測試用例由兩行組成,每行輸入乙個由字元「0」和「1」構成的字串,長度最多為3000, 兩個字串都描述了一種樹形地鐵系統的正確探索路線。

輸出格式

對於每個測試用例,如果兩個字串描述的探索路線可以視為同乙個地鐵系統的兩種探索路線,則輸出same。

否則,輸出different。

每行輸出乙個結果。

輸入樣例:

20010011101001011

0100011011001011

0100101100100111

0011000111010101

輸出樣例:

same

different

#include

#include

#include

using namespace std;

string dfs

(string &seq,

int&u)

intmain()

return0;

}

樹形地鐵系統

題目 前兩種是中讀到的。我們肯定是想要把兩棵樹的最小表示找出來,然後看看是否相同。在這種情況下,我們期望是每個點在其子樹內按最長鏈長度從大到小選擇子節點進行dfs,但是如果相同呢?我們就要在鏈上幹同樣的事情,理論上我認為記憶性搜尋應該可以到o n 2 o n 2 o n2 但我更認為我打不出這個 上...

樹形地鐵系統

題目前兩種是中讀到的。我們肯定是想要把兩棵樹的最小表示找出來,然後看看是否相同。在這種情況下,我們期望是每個點在其子樹內按最長鏈長度從大到小選擇子節點進行dfs,但是如果相同呢?我們就要在鏈上幹同樣的事情,理論上我認為記憶性搜尋應該可以到 o n 2 但我更認為我打不出這個 上一種方法的優化,就是直...

《演算法競賽高階指南》 防曬

有c頭奶牛進行日光浴,第i頭奶牛需要minspf i 到maxspf i 單位強度之間的陽光。每頭奶牛在日光浴前必須塗防曬霜,防曬霜有l種,塗上第i種之後,身體接收到的陽光強度就會穩定為spf i 第i種防曬霜有cover i 瓶。求最多可以滿足多少頭奶牛進行日光浴。輸入格式 第一行輸入整數c和l。...