1. 程式人生 > 其它 >【暑假集訓】搜尋&列舉 模擬賽

【暑假集訓】搜尋&列舉 模擬賽

前言

最困難的題目往往只需要最樸素的方法---搜尋

賽時崩潰...因為只寫了兩道題的部分分,甚至懷疑爆零,還好看到大家基本都是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句話為真可行

真是神題

後話

真是破防了