【暑假集訓】搜尋&列舉 模擬賽
阿新 • • 發佈:2021-08-09
前言
最困難的題目往往只需要最樸素的方法---搜尋
賽時崩潰...因為只寫了兩道題的部分分,甚至懷疑爆零,還好看到大家基本都是30pts
得分:40pts
題解
T1 hzw的粉絲
按照題目說是最簡單的一道題,但也只會爆搜,而且在實現的時候出了很多bug(還莫名其妙50pts->20pts)
字串的字典序排序出了點問題。。。(挖坑)
sscanf,sprintf忘記用法。。。
PS: sscanf(s,"%d",&n); sprintf(s,"%d",n);
正解:小資料直接打表,大資料固輸,因為k<=1e9大資料直接是hzwer+數字字尾
T2華容道
題解:BFS裸題(誰說的)
考場直接放棄。大概是5進位制HASH記錄狀態的BFS,但是現在還不太完全明白
T3聚會
中位數操作不難想,但是在走到指定位置的操作上一直不會處理,最終寫了個錯誤的貪心
正解:通過中位數先找到一個終點,然後以該點為起點拓展出一個大小為n的連通塊,然後全排列 n! 列舉每個點放到連通塊裡的哪一個位置
T4真相
(真相了)
考場放棄。原本一眼覺得是我不會做的樣子的帶權並查集,但是居然真的也是搜尋
正解:沒有“$"操作的時候,直接線性搜尋;有”$"操作的時候,先假設所有“$"話都為假算出一個tot,再列舉哪一個"$"為真的情況下對答案的貢獻a[i],最後統計答案時tot+a[i]==i說明i句話為真可行
真是神題
後話
真是破防了