演算法題 取數

2021-10-23 06:06:26 字數 807 閱讀 2889

題目:首先給出n個數字a1,

a2,a

3,……

,a

na1,a2,a3,……,an

a1,a2,

a3,…

…,an

,然後給你m

mm個回合,每回合你可以從中選擇乙個數字取走它,剩下來的每個數字aiai

ai都要遞減乙個值bibi

bi,即a 1a1

a1減掉b 1b1

b1,a 2a2

a2減掉b 2b2

b2,….。如此重複m

mm個回合,所有你取出的數字之和就是你所得的分數。求出最多可以得到多少分。

思路:我們我將b按從大到小排序,實現每次減少最小的數,再使用動態規劃的方法。

接下來我們用c++進行程式設計:

#include

#include

#include

#include

#include

using

namespace std;

int a[

110]

, b[

110]

;int f[

110]

[110];

intmaim()

for(

int i =

1; i <= n; i++

) cout << f[n]

[m];

return0;

}

演算法訓練 方格取數

演算法訓練 方格取數 時間限制 1.0s 記憶體限制 256.0mb 問題描述 設有n n的方格圖 n 10 我們將其中的某些方格中填入正整數,而其他的方格中則放入數字0。某人從圖的左上角的a 點 1,1 出發,可以向下行走,也可以向右走,直到到達右下角的b點 n,n 在走過的路上,他可以取走方格中...

演算法訓練 方格取數

問題描述 設有n n的方格圖 n 10 我們將其中的某些方格中填入正整數,而其他的方格中則放入數字0。某人從圖的左上角的a 點 1,1 出發,可以向下行走,也可以向右走,直到到達右下角的b點 n,n 在走過的路上,他可以取走方格中的數 取走後的方格中將變為數字0 此人從a點到b 點共走兩次,試找出2...

演算法題 平衡數

牛牛在研究他自己獨創的平衡數,平衡數的定義是 將乙個數分成左右兩部分,分別成為兩個新的數。左右部分必須滿足以下兩點 1,左邊和右邊至少存在一位。2,左邊的數每一位相乘如果等於右邊的數每一位相乘,則這個數稱為平衡數。例如 1221這個數,分成12和21的話,1 2 2 1,則稱1221為平衡數,再例如...