正整数分组

xiaoxiao2021-02-28  29

点击打开题目分析

输入 第1行:一个数N,N为正整数的数量。 第2 - N+1行,N个正整数。 (N <= 100, 所有正整数的和 <= 10000) 输出 输出这个最小差 输入示例 5 1 2 3 4 5 输出示例 1 #include <algorithm> #include <cstdio> #include <cstring> using namespace std; const int maxn = 105; int n,sum; int a[maxn],W; int dp[maxn*100]; int main() { scanf("%d",&n); for(int i = 1;i <= n; i++) { scanf("%d",&a[i]); sum += a[i]; } W = sum/2; for(int i = 1;i <= n; i++) { for(int j = W;j >= a[i]; j--) { dp[j] = max(dp[j],dp[j-a[i]] + a[i]); } } printf("%d\n",abs(sum - dp[W]*2)); return 0; }

转载请注明原文地址: https://www.6miu.com/read-250307.html

最新回复(0)