vivo2019秋招筆試題 運礦石(01揹包)

2021-10-02 23:16:37 字數 787 閱讀 6466

給定n(n<=100)個數,每個數不超過100,你需要把n個數分成兩堆,兩堆個數相差最多為1,且兩堆的權值和之差最小,問最小的差是多少?

01揹包,因為每個數不超過100,總和不超過10000,所以我們可以判斷每個和空間是否可以到達。

dp[j][k]表示選擇了j個元素,此時和為k是否可行,這裡滾動了一維:本來是前i個元素中選擇j個,和為k是否可行,記憶體不夠所以進行滾動。

狀態設立完就清晰了,如果選擇weight[i]這個元素,那麼dp[j][k]轉移到dp[j+1][k+weight[i]],按照01揹包那樣列舉狀態就可以了。

#include #include #include #include #include using namespace std;

/*** welcome to vivo

*/#define max_num 110

int dp[max_num][20005];

int sum;

int now[max_num];

int solution(int n, int weight) }}

int ans=sum;

for(int i=sum/2;i>=0;i--)

}return ans;

}int main()

for(int i=1;i<=count;i++)

int result = solution(count, now);

cout << result << endl;

return 0;

}

vivo2023年 演算法崗筆試題

題目描述 小v在公司負責遊戲運營,今天收到款申請新上架的遊戲 跳一跳 為了確保提供給廣大玩家朋友們的遊戲都是高品質的,按照運營流程小v必須對新遊戲進行全方位了解體驗和評估。這款遊戲的規則如下 有n個盒子排成了一行,每個盒子上面有乙個數字a i 表示在該盒子上的人最多能向右移動a i 個盒子 比如當前...

2019vivo秋招提前批筆試題第3題

筆試的時候沒做出來,就順手截圖了。雖然知道要用動態規劃做,但我一直就不太懂動態規劃。筆試完又花了2小時把它做出來了。也不知道效能怎麼樣,但還好做出來了。def solution n,toltal money,until price,until hot 二維陣列,每一行代表0到total money每...

多益網路2019秋招筆試題

1 雜湊雜湊值的計算平均查詢長度 雜湊表的構造方法 4 除留餘數法 假設雜湊表長為 m,p為小於等於 m 的 最大數數,則雜湊 函式為 h k k p 5 偽隨機數為 採用乙個偽隨機函式作為雜湊函式,即 h key random key 雜湊表處理衝突的方法 1 開放定址法 2 再雜湊法 3 鏈位址...