站外水题求助(玄关)
  • 板块学术版
  • 楼主123xiayicheng
  • 当前回复0
  • 已保存回复0
  • 发布时间2023/9/28 18:41
  • 上次更新2023/11/2 17:42:51
查看原帖
站外水题求助(玄关)
352913
123xiayicheng楼主2023/9/28 18:41

#include<bits/stdc++.h>
#define FOR(i,l,r) for(int i=(l);i<(r);i++)
using namespace std;
int v[110],dp[55][2010];
int main() {
	int n,m=0;
	cin>>n;
	FOR(i,0,n)
	scanf("%d",&v[i]),m+=v[i],dp[0][v[i]]=v[i];
	int s=m>>1;
		FOR(k,1,n>>1)
	FOR(i,0,n) {
		for(int j=s; j>=v[i]; j--) {
			dp[k][j]=max(dp[k][j],dp[k-1][j-v[i]]+v[i]);
//			cout<<dp[k][j]<<" ";
		}
	}
	cout<<abs(m-2*dp[(n>>1)-1][s]);
	return 0;
}
2023/9/28 18:41
加载中...