当前位置: 代码迷 >> 综合 >> 1078:等待分配任务的程序
  详细解决方案

1078:等待分配任务的程序

热度:14   发布时间:2023-12-04 08:54:45.0

要是实在不理解的话,Leetcode有一个判断数组能不能分成两部分且两部分的值相等的题目,思路类似,网上应该有很多解答,可以扩展一下思路。

#include<bits/stdc++.h>
using namespace std;
const int N=1005;
int cv[N];
int dp[2005];int main()
{int n;while(scanf("%d",&n)!=EOF){int sum=0,mid=0;for(int i=1;i<=n;++i){scanf("%d",&cv[i]);sum+=cv[i];}mid=sum/2;for(int i=1;i<=n;++i)      //0-1背包问题,求得一半的时间内能够处理任务达到的时间上限值{for(int j=mid;j>=cv[i];--j){dp[j]=max(dp[j],dp[j-cv[i]]+cv[i]);}}printf("%d\n",sum-dp[mid]);    //剩余的可使用的任务时间}return 0;
}