今天第一次打藍橋杯, 去水了一發, 其實藍橋杯的題還是蠻水的。
記得不是很清楚了, 我就口胡一下吧:
有個題是撕郵票的, 本來可以用那個枚舉全排列的函數next_permutation輕松搞定, 可是記憶力差的我哪能記得住, 而且坑爹的dev我找了半天也沒發現代碼補全, 差點連頭文件都寫不全。 不過還好我會二進制枚舉子集, 如果出現了5個1, 就判斷一下這5個格子是否相鄰。 是否相鄰很好判斷, 我的做法比較無腦, 預處理出誰和誰相鄰。
還有個題是一個缺2個格子的3*4方格裡放數字, 典型dfs傻逼題, 去重一下就好了。
代碼補全題考了個快排和dfs, 我們可以把代碼粘貼下來運行一下結果看看對不對, 也很簡單。
其他的記不清了, 反正就是覺得每題都是dfs - -!
大題:
第一題我的做法是二重循環預處理出兩個數的加和, 用結構體記錄這個兩個數和他們的平方和, 然後排下序, 先按照平方和排序, 再按照a排, 再是b。 然後自己寫個二分, 枚舉第1、2個數, 二分第3、4個數就OK啦, 復雜度O(nlogn)。
第二題我怎麼看著是原題呢,其實就是原題, 紫書上第八章習題, 之前刷過, 就是個貪心。
第三題做法是每次算出相鄰兩個數的比值, 這樣, 每次都會減少一個數, 最後留下的就是答案 , 復雜度O(n^2)。