n個數,要求盡量均分的問題

2021-08-28 03:58:46 字數 427 閱讀 3494

問題:

現在有n個數,要求你把它分為兩部分,而且盡量均分,即兩部分和的差值最小。

解決:

設n個數的總和是sum,mid = sum/2,那麼這個問題可以轉化成從n個數中,選取幾個數使它們的和盡量接近mid 。我們可以建立乙個大小為 mid 的揹包,看揹包最大能裝多少東西,求出來的最大值就是可以組合出來的最接近 mid 的數。

#includeusing namespace std;

int dp[11000];

int a[110];

int n;

void solve()

}printf("%d %d\n",dp[mid],sum-dp[mid]);

}int main()

n個數求和方案的問題

給定乙個有n個正整數的陣列a和乙個整數sum,求選擇陣列a中部分數字和為sum的方案數。當兩種選取方案有乙個數字的下標不一樣,我們就認為是不同的組成方案。1 採用動態規劃 f i j 的意義為從i個書中選取某些數使其和為j的方案的個數,則f i j j array i f i 1 j array i...

n個數的和為n個數的公倍數

題意 輸入乙個n n 200 給出n個不同的數,使得這n個數的和為這n個數每個數的倍數。思路 首先容易知道,當n 2的時候無解 兩個1不算,因為要求這n個數是不同的 n大於2的時候這樣構造n個數 1 2 3 0 2 3 1 2 3 2 2 3 n 3 3 n 2 可以看到,這n個數的和為2 3 n ...

n個數的排序

n個數的排序 time limit 1000ms memory limit 65536kb problem description leiq當上了體育委員,現在老師讓他去給班級裡的人排隊,leiq剛學了排序,所以他想以這種方式給班級裡的人排隊 從矮到高 他想知道排序完成後的結果。input 多組輸入...