題解 HNOI 2014 Day2解題報告

2021-08-17 05:03:42 字數 1109 閱讀 4736

題目鏈結(洛谷)

t1 抄卡組

t2 道路堵塞

t3 江南樂

由於之前沒怎麼修過字串專題,這題不會實現o(╯□╰)o

考慮對於兩個字串:

如果兩個都沒有

∗ ∗

,則直接匹配

如果兩個都有,則只要考慮兩者的最長公共字首是否在其中乙個為

∗' role="presentation">∗

∗打止,字尾也一樣,因為可以證明可以強行把中間變為一樣,只有兩邊的不能處理

如果只有其中乙個有,則考慮有

∗ ∗

的串的最左邊的

∗' role="presentation">∗

∗的左邊與另乙個串是否匹配,字尾類似,再考慮中間被

∗ ∗

分割的子串是否在另乙個串中出現過且依次出現

碼農實現

如果圖論學得比較好的話,看到這題腦袋中一定會有乙個清楚的認識:刪去最短路中的一條邊後的最短路一定是沿著最短路走一截(可能為0)後離開最短路,再回到最短路,再沿著最短路走完這一截

有了這個認識,這題頂多就是乙個提高組第二題的難度,考慮每一條從最短路上出發回到最短路上的可能可以更新幾段答案(起點到終點)

接下來就可以瞎搞了,用什麼堆啊,染色問題啊都行,就是注意到這題用優先佇列會t乙個點,用手打堆快到飛起︿( ̄︶ ̄)︿,染色複雜度優化乙個

log' role="presentation">log

log這題一看就是ni

m nim

遊戲的模型,根據蒟蒻的做題經驗,這類題就應該求出每一堆石子的sg函式值,最後異或和求解

先列出偽sg轉移,再考慮優化:

發現對於一堆大小為

x x

的石子如果分為

i' role="presentation">i

i堆,只有兩種大小的子堆⌊x

i⌋⌊ xi

⌋和⌈x

i⌉⌈ xi

⌉,所以只用考慮這兩種子堆的數量的奇偶性,因為如果為偶數,則兩兩異或抵消,如為奇數,則只用求一次即可

但這樣應該只能過40~60分的樣子,再考慮乙個優化:做過莫比烏斯反演或模數和的就知道在被除數一定時可以用乙個分塊優化

**在ubuntu下,就懶得貼了

題解 HNOI 2014 世界樹

洛谷 bzoj loj 題目概要 給定一棵 n n 個節點的樹,q role presentation q q次詢問 給定 m m 個關鍵點,每個原樹上的點被最近且序號最小的關鍵點控制,問每個關鍵點 n,q,m 300000 role presentation n,q m 300000n,q,m 3...

題解 HNOI2014 世界樹

hnoi2014 世界樹 從資料範圍很容易看出是個虛樹dp 可惜看出來了也還是不會做 虛樹大家應該都會,不會的話自己去搜吧,我懶得講了,我們在這裡只需要考慮如何dp即可 首先我們需要求出每個點被哪個點所控制,設 u 點被 bl u 所控制,兩遍dfs即可,考慮兒子對父親的影響和父親對兒子的影響 細節...

NOIP 2014 Day2T2 尋找道路

題目中文,不需要我說,直接講思路 題目要求找到一條從起點到終點的路徑,而且保證最短的前提下,每個點的出邊連線的點都要能到達終點,so 第一步,反向建圖,跑一遍bfs,確定能到達終點的所有點 第二步,減掉連著不能到達終點的點的點以及不能到達終點的點,用乙個隨便什麼陣列記錄能用的點就好了 第三步,正常的...