文章

17

粉丝

177

获赞

2

访问

110.9k

头像
01背包变体,背包大小是时间总和的一半
P1747 shy
发布于2021年9月26日 15:53
阅读数 5.6k

#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
int main()
{
    vector<int> dp(500001, 0);
    int times[20];
    int sum = 0, n;
    cin >> n;
    for (int i = 0; i < n;i++)
    {
        cin >> times[i];
        sum += times[i];
    }
    int bag_cap = sum / 2;
    for (int i = 0;i < n;i++)
        for (int j = bag_cap; j >= times[i];j--)
        {
            dp[j] = max(dp[j], dp[j - times[i]] + times[i]);
        }
    cout << abs(dp[bag_cap] - (sum - dp[bag_cap])) << endl;

}

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发