1. 程式人生 > >網易2018春招筆試

網易2018春招筆試

前不久被網易的筆試虐了2次,因此特地做一個記錄:

給出2個數a, b(b必定是偶數), 把a變成b,其中有3種操作:

+2, 需要對應的cost,

-2,  需要對應的cost

*2,  需要對應的cost,

求a變成b需要的最少cost

當時腦子一熱,就用bfs, 用一個結構體儲存狀態,後來發現爆記憶體了。

那就改用dfs, 但是沒有往剪枝這個方向去想,總是認為應該是用動態規劃才有適合的解法——這也是我對最優化問題的懵逼之處。

後來,第二次筆試,再看到一題,發現也許真的是dfs + 剪枝的技巧呢?


剛開始,也是沒有想太多,直接dfs,暴力搜,發現爆記憶體。

沒理由啊?——難道一定要用動態規劃,但是四維表示狀態,100四次方 = 1億——不合理呀?

後來問一下同學才發現一點剪枝的技巧就是:  

一旦發動攻擊了就一直攻擊了,否則必定不是最優解。

每次搜尋,可以估算剩餘回合數。

社會社會,是我太菜了- - 。。。

dfs的剪枝優化大法。。。