2023年網易實習生筆試題集合之牛牛的揹包問題

2021-08-18 10:05:11 字數 599 閱讀 4185

問題描述,想必大家都知道01揹包問題,現在的情況是問有多少種裝填揹包的方式。

不用動態規劃這題怎麼思考呢?只能暴力列舉了,講道理列舉都不是那麼好寫。

#includeusing namespace std;

int n,w;

vectorv;

int res = 0;

void dfs(int p,int q)

dfs(p+1,q);//對第p件商品而言有放入何不放入兩種情況,這裡假定不放入

if(q + v[p] <= w)

}int main()

dfs(0,0);

cout << (res+1);

}

上面的**通過了60%的案例,意料之中,畢竟暴力列舉怎麼可能直接過。

繼續思考:其實本質涉及揹包問題的複雜度,動態規劃的複雜度是o(nv)n是商品的數量,v是揹包的體積。我們注意到題目給的v實際上很大其實說白了這題能用動態規劃都不應該去用,因為複雜度可能也很大。窮舉的方式複雜度是2的n次方,題目中的n最大是30,所以其實也不行複雜度太大,那麼想辦法降低複雜度。但給出的錯誤在輸出上不是時間問題,很奇怪。

沒想明白回頭來填坑~~

2023年網易實習生筆試題集合之安置路燈

問題描述 只包含.x 的乙個佇列,其中.表示需要被照亮的地方,乙個路燈可以照亮三個位置,照亮這個佇列中所有的.該如何放置路燈使得路燈的數量最少。思考 這種題的關鍵就在於該如何放置路燈,而且要明確這種題就是簡單題不要想別的。很明顯,我們處理該問題一定因該是遍歷這個數列,遇到.的時候當然要放置路燈咯,因...

2023年網易實習生筆試題集合之矩形重疊

問題描述 求有多少個矩形重疊。思考 這道題講道理很難,難在你需要思考怎麼去表示矩形重疊。我一開始的想法是將這些矩形按照左下角的x值的大小排序,然後依次拿來矩形做比較,然後開始寫 發現寫不出來。換條路 這裡我參考咯大佬的想法 思考假如把矩形重疊換成線段重疊該怎麼處理 發現線段重疊的特點是必然包含線段的...

2023年網易實習生筆試題集合之牛牛找工作

1.牛牛找工作 問題描述 n種工作 每個工作有乙個難度指數d,和乙個報酬p m個人,每個人有乙個能力指數a。幫助這m個人找到報酬最大的工作。思考 採用合適的資料結構來儲存和處理題目給的資料,於是採用stl中的map,因為map在處理這種一一對應的兩個值時有優勢,如果想要使用vector那就必須自己定...