Problem A. 座位排列(seat)
「大家早阿~」妤嬌走進教室。
星期一的早晨,距第一節上課還有一段時間,不過同學卻幾乎都到了。大家 一如往常三三兩兩的聚在一起,或討論功課或嘻笑打鬧。
「又是個平凡無奇的早晨阿。」妤嬌心想,找到自己的位子後放下書包,準 備迎接無聊的課程轟炸。就在妤嬌東張西望的同時,他發現教室裡的人數比平常 少了一人。妤嬌仔細一數,發現少了全班最吵的妁艷,但他又不是很確定,所以 決定先找到妁艷的座位。找座位這件事或許很簡單,但在妤嬌的班上座位是依據 奇怪的規則去決定的:
1 . 班上有 N 個人,有 N 個座位排成一排,左到右編號 1~N。座號亦為 1~N。
2 . 因為班導有奇怪的癖好,有 M 對位置 ai、bi,他規定坐在 ai的同學的座號必 須小於坐在 bi的同學的。
3 . 為了保護同學的視力,班導規定每天都要換位置。如果把學生座號看成是一 個排列的話,每天的排列就是比前一天的字典序大且符合班導癖好的第一個排列 法。當然開學第一天是從字典序最小的排列開始。
妤嬌知道今天是開學第 K 天,告訴他今天的座位排列,好讓他找到妁艷的位置。
Input
第一行有 3 個正整數 N , K , M。(1 ≤ K ≤ 10^15 , 0 ≤ M ≤ 50) 接下來 M 行有兩個正整數 ai , bi (ai≠bi)。
對於 100%的測資:1 ≤ N ≤ 16 對於 40%的測資:1 ≤ N ≤ 10 Output
請輸出一行代表今天的排列。
如果排列方式不到 K 種,請輸出”Oops~”(不含雙引號)。
Sample Input 7 20 6
1 2 1 3 2 4 2 5 3 6 3 7
Sample Output 1 2 3 7 4 6 5
Problem B. 醬油(sauce)
放學了, 整天都不見妁艷的妤嬌很擔心.
“噫! 妁艷好女色.”
妤嬌這時想到妁艷家附近的女校, 妁艷一定是被吸進去了.
“今天的我沒有極限!!!”
只消 10 分鐘, 妤嬌便到達妁艷家附近了.
這時前方路上出現了一位少女.
"葛格不見了 所以我跑去添購"
, 少女騎著單車說,
"欸? 蒼蠅?"
"啊 飛走了"
身為天才的妤嬌看到了少女, 立刻知道了她是妁艷的妹妹.
妤嬌知道, 要觸發接下來的事件, 一定要被少女撞倒然後假裝受傷!
妤嬌看見眼前有 n 條平行且向前延伸的道路, 而少女在這 n 條道路的另一端.
這些平行道路之間, 有些單向或雙向的小路連結兩條相鄰的道路, 這些小路都和 n 條道路垂直.
少女在 n 條道路的一端, 而妤嬌在令一端, 而且少女正在往妤嬌的方向前進.
少女可能在向前的過程中經過小路而更換行進的道路, 但是少女永遠不會向後 (即妤嬌面對的方向)騎.
妤嬌想知道, 若少女從那端的哪些道路開始騎, 會使得妤嬌不論站在自己這端的 哪一條道路, 都有可能被撞.
此外, 別小看妤嬌, 妤嬌是個超能力者, 妤嬌具有“打通小路隧道程度的能力”.
除了原本的 m 條小路之外, 妤嬌還可以自行打通 k 條單向小路在任意地方(事先 打好), 來增加被撞的機會.
妤嬌想讓符合上述條件的道路(從那邊開始騎, 能讓妤嬌不論站在哪都可能被撞) 最多.
你要幫妤嬌安排要打通的小路, 並告訴他最多能有多少道路滿足條件.
Input
第一行有四個整數 n, m, p, k
(2 ≤ n ≤ 100,000 , 1 ≤ m,k ≤ 100,000, 0 ≤ p ≤ 100,000)
分別代表平行道路的數量, 每條道路的共同長度, 原本道路之間的小路的數量, 妤嬌能打通幾條小路.
接下來有 p 行代表原本的 p 條小路. 每行有三個整數 ni, mi, di
(1 ≤ ni ≤ n-1, 0 ≤ mi ≤ m, 0 ≤ di ≤ 1)
分別代表第 i 條小路是向妁艷妹妹的右手邊(di = 0), 或左手邊(di = 1), 連接左手邊屬來第 ni, ni+1 條道路, 且位在妁艷妹妹前方 mi個長度單位.
注意兩條小路的位置有可能相同.
Output
輸出安排好打通的小路後, 最多能多多少道路滿足條件.
要打通的小路‘不必’在距離妤嬌整數單位長的地方.
Sample Input 4 3 5 2
2 0 0 2 2 1 3 3 1 1 1 1 3 3 0
Sample Output 2
Hint
Problem C. 吃香腸(sausages)
“啊~ 撞到人了!!”
“對不起!!!你沒有受傷吧~?”少女緊張的問
“哇啊啊!!!我被妁艷妹妹撞倒了!”妤嬌哭著說
“欸? 是妤嬌葛葛耶!!!” 妁艷妹妹驚覺
“妁艷妹妹你知道你哥哥怎麼了嗎? 為甚麼他今天沒來上學...?”
“哥哥被壞人抓走了...我要去救他!!!”
“恩...我也要去!!!”
妤嬌立刻衝回家準備,因為他想幫妁艷妹妹救出哥哥。然後到家後...
“姊姊我跟你說”
“不要跟我說”妤嬌姊姊回答
“姊姊的...”
“好好吃!!!!!!”妤嬌哥哥吃著香腸,突然冒出一句
妤嬌姊姊氣到嘟著嘴說“哥哥你那香腸看起來就不好吃!!!”
哥哥回答”可是桌上這些香腸不但聞起來很香而且還很好吃喔~ 啊妤嬌你也 來
幫我一個忙吧~”
現在桌上有好多彎彎的香腸,有向右彎的香腸“(”,也有向左彎的香腸”)”
還有一些不知道該向左彎還向右彎的香腸,他們先用”?”代表。
這些香腸由左到右排成一排。現在哥哥希望,從最左邊第一個香腸往右數到任何 一個香腸時,都能保證向左彎的香腸數量不比向右彎的香腸數量多。而且哥哥還 希望在所有香腸中,向右彎的數量和向左彎的數量一樣。
然後對於由左到右第 i 個不知道該往哪彎的香腸,如果往右彎變成”(”,會損失 Li的香味,如果往左彎變成”)”,會損失 Ri的香味
現在妤嬌哥哥告訴你(妤嬌)原本香腸的排列方法( 由(、)、?組成 ),以及所有的 L 及 R,希望你能求出最少損失的香味。
Input
第一行有一個正整數 T 代表有 T 筆資料要你回答(1 ≤ T ≤ 5)
每筆資料會先有一行字串代表原本的排列方式(1 ≤ 長度 ≤ 500000)
再來會有 N 行,第 i 行會有兩個數字 Li 、 Ri 如題目敘述意思。
(其中 1 ≤ i ≤ N , N 為字串中”?”的數目)
(L、R 是 int 範圍)
Output
對於每一筆資料輸出一行答案,代表最少的總共損失的香味
但如果不管香腸怎麼排,都不符合哥哥的希望,則輸出”QAQ”(不含雙引號)
Sample Input 4
(()) (??) 1 10 10 100
?????))))) 2 1 2 1 2 1 2 1 2 1 (((((?
2147483647 -2147483648
Sample Output 0
20 10 QAQ
Problem D. 進入地下室(basement)
吃完香腸後,「我要去救妁艷!」妤嬌跟姊姊說。
「留下來,不然我跟你走!」姊姊吶喊。
於是他們就決定要一起去救妁艷。
當天晚上,妤嬌準備前往地下室。
突然,妤嬌的手機響了。
「妤嬌快點過來~我們快要不行了...啊啊啊啊啊!」一接起來便是姊姊的求 救聲。
「到底發生了什麼是?」妤嬌擔心的問。
「總之你快的過來就對了!嗯~妹妹也快要...嗯啊啊啊!」姐姐邊說邊喘叫 著。
難道是被敵人攻擊了?妤嬌以最快的速度衝向地下室。
已知地下室有 N 個房間(編號 1~N)和 M 條雙向走道且任兩個房間都至少有一條 道路相連。
如果有一條走道是某兩個房間路徑的必經之路,則它是一條約定的走道。
妤嬌知道她們約在一個房間,滿足所有以這個房間為起點的簡單路徑,一條裡所 含的約定的道路數的最大值最小。
原本妤嬌想起你幫他找出所有可能的房間,但他想了 2 秒之後發現很簡單,並又 花了 2 秒找出來這些可能的房間。
所以你只需要幫他找出這個最大直讓他驗算就好了。
Input
第一行有兩個正整數 N,M
接下來有 M 行,每行有兩個正整數 a,b,代表有一條走道連接房間 a 和房間 b
Output
輸出一個整數 K 代表以約定的房間為起點的簡單路徑中,一條裡所含的約定的 道路數的最大值。
Sample input 10 11
1 2 2 3 3 1 3 8 8 9 9 10 10 8 2 4 4 5 5 6 2 7
Sample output 2
範圍:
對 100%測資,N<=1,000,000,M<=1,000,000 對 70%測資,N<= 100,000,M<= 200,000 對 40%測資,N<= 1,000,M<= 1,000 對 0%測資,N<= 1,M<= 1
Hint
範測以點 4 為起點的簡單路徑所包含的約定的道路數不會超過 2 條
Problem E. 故事(story)
原來這就是...
依稀看到了那幅景象...教室的崩壞...妁艷的分身...
到了這個地方,似乎又到了另一個平行的世界之中
眼花撩亂,不知道究竟是真實,又是鏡花水月?
看著那崩壞的教室... 看著這看起來似乎很接近,卻又那麼不真實的戰鬥
心想:「不過只是樹分治而已嗎...」
看著現在眼前的教室
究竟是什麼?
如此容易
如此困難
現在的教室,還是那個教室
你只知道每個教室是否有相通
可是,這次不一樣。
不再有路徑小於 20 的簡單環(已經被你給摧毀了)
現在想問你,究竟,最遠的兩間教室距離多遠呢?
Input
第一行只有一個數字 N (N ≤ 5000000) (教室編號為0~N-1)
接下來有N行,每一行有許多數字代表的就是這間教室與這些教室是連通的。然 後以一個-1作為結束
Output
請輸出最長的路徑
Sample Input 3
1 -1 2 -1 -1
Sample Output 2
Hint
沒有路徑小於20的環
而且也沒有路徑大於20 的環 當然也沒有路徑等於20 的環