我太水了......
這是一場奇差無比的CF。
A,看題意有困難,實際上還是很水的。
B,枚舉 1234567 和 123456 的個數,時間復雜度1e6以下
C,業界毒瘤模擬題。最TM坑的是還要輸出操作數...不能在線輸出。
首先,我一個數組名寫錯了,結果搞了至少10min才調出來,可能有20min。
然后我空間開小了...
然后我沒有判斷隊列是否非空就取隊首...
最后我一個大於號小於號寫錯了...
最后終於A了,還有26min。
棄療。
D,給你一些人,構成一個森林。自己算自己的祖先。
給定一個序列,每個人在這個序列里掃描,遇到第一個自己的祖先就給他送禮物。
i 希望把禮物送給 ai。求一個這樣的序列能滿足所有人的需求,或輸出 -1。
保證ai是i的祖先。
n <= 100 000
我的想法是對於每一個ai,其他的所有作為aj的i祖先都在ai之后。然后拓撲排序即可。
n²不可承受。
然后考慮從1開始依次加入ai。
對於每個ai,如果在隊中就看ai前有沒有i的祖先。
不在隊中就掃描,在隊中找到第一個i的祖先然后把ai插入它前面。然后往后檢查......
顯然是錯的。
問了某大佬,正解:
考慮一對父子:
若兒子y已得到滿足,且ay != y
那么ay為父親x的祖先,那么ax == ay,否則不合法。
若ay == y,則對x無影響。
所以對於已滿足的x
ay == ax 或 ay == y,否則不合法。
然后掃一遍即可。
輸出:只需輸出ai == i的點即可。