時間限制: 1 sec 記憶體限制: 64 mb
提交: 106 解決: 59
[提交] [狀態] [討論版] [命題人:]
題目描述
給出一堆魔法石的重量,問如何分成兩堆,使得它們質量和之差最小,求出這個最小值。
輸入第一行乙個數n (n ≤30)。 接下來n行,每行乙個正整數。(每個數≤100000)
輸出乙個整數表示兩組數字和的最小差。
樣例輸入
5樣例輸出1 2 3 4 5
1分析:設定揹包總量為總和一班。。之前有類似的題,這個比較水。
#include #includeview code#include
#include
#include
#include
#include
#include
#include
#include
#define range(i,a,b) for(int i=a;i<=b;++i)
#define ll long long
#define rerange(i,a,b) for(int i=a;i>=b;--i)
#define fill(arr,tmp) memset(arr,tmp,sizeof(arr))
using
namespace
std;
int n,a[35],dp[1500005
],sum;
void
init()
}void
solve()
intmain()
動態規劃專題(I)
動態規劃與分治法類似,都是通過組合子問題的解來求解原問題。分治方法將問題劃分為互不相交的子問題,遞迴的求解子問題,再將它們組合起來,求出原問題的解。與之相反,動態規劃應用於子問題重疊的情況,不同的子問題具有公共的子子問題。這個時候,分治演算法會做許多不必要的工作,它會反覆的求解那些公共子子問題,而動...
數字動態規劃
如果發現有些數字題目需要處理的資料多,而且單個數處理數字計數時會隨著數的變大越來越麻煩 通常都這樣 就適合這種方法或者這種思想解決問題。因為通常遇到這方面的題目通常會考察乙個連續區間內符合某條件的數,這樣可以將單個數的位操作合一,直接看題目條件內所有的數的條件符合情況,即直接處理所有數可能的所有位以...
分組揹包(動態規劃)
description 有n件物品和乙個容量為v的揹包。第i件物品的費用是c i 價值是w i 這些物品被劃分為若干組,每組中的物品互相衝突,最多選一件。求解將哪些物品裝入揹包可使這些物品的費用總和不超過揹包容量,且價值總和最大。input 第一行 三個整數,v 揹包容量,v 200 n 物品數量,...