题目链接

题目

题目描述

终于Alice走出了大魔王的陷阱,可是现在傻傻的她忘了带武器了,这可如何是好???这个时候,一个神秘老人走到她面前答应无偿给她武器,但老人有个条件,需要将所选武器分别放在天平的两端,若天平平衡则可以将天平上的所有武器拿走,还好这个天平锈迹斑斑,只要两端重量相差小于等于m就会保持平衡,Alice傻傻的认为越重的武器越好,求Alice最多能拿走的武器总重量。(不限操作次数)

输入描述

第一行2个整数 n, m;

第二行n个整数x,分别表示n件武器的重量。

1 <= n <= 100; 0 <= m <= 100; 1 <= x <= 100;

输出描述

一个整数,表示Alice最多能拿走的武器总重量。

示例1

输入

5 4
1 5 61 65 100

输出

132

说明

可以称两次,第1次:(1 ; 5),第二次(61 ; 65)。

示例2

输入

5 0
10 20 30 40 100

输出

200

说明

称一次,(10,20,30,40 ; 100)。

题解

知识点:背包dp。

01背包变种。设 \(dp[i][j]\) 为考虑了 \(i\) 个物品天平两遍差的绝对值为 \(j\) 的最大值。因为天平左右两边可以随时互换,我们只考虑绝对值即可。转移方程为:

\[dp[i][j] = \max(dp[i-1][j],dp[i-1][j+w[i]]+w[i],dp[i-1][|j-w[i]|]+w[i])
\]

注意边界,而且 \(j\) 的范围应该是 \([0,\sum w_i]\) ,而不是 \([0,m]\) ,因为可以放天平另一端平衡。

最后找到 \(dp[n][0\cdots m]\) 的最大值即可。

时间复杂度 \(O(n\sum w_i)\)

空间复杂度 \(O(n\sum w_i)\)

代码

#include <bits/stdc++.h>

using namespace std;

int dp[107][10007], w[107];

int main() {
std::ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
int n, m, sum = 0;
cin >> n >> m;
for (int i = 1;i <= n;i++) cin >> w[i], sum += w[i];
memset(dp, -0x3f, sizeof(dp));///必须负无穷,不能填空气,因为可能导致所有物品都能放
dp[0][0] = 0;
for (int i = 1;i <= n;i++) {
for (int j = 0;j <= sum;j++) { ///不能到m就结束,因为可能从后面传递
dp[i][j] = dp[i - 1][j];
if (j + w[i] <= sum) dp[i][j] = max(dp[i][j], dp[i - 1][j + w[i]] + w[i]);
if (abs(j - w[i]) <= sum) dp[i][j] = max(dp[i][j], dp[i - 1][abs(j - w[i])] + w[i]);
}
}
int ans = 0;
for (int i = 0;i <= m;i++) ans = max(ans, dp[n][i]);
cout << ans << '\n';
return 0;
}

NC19158 失衡天平的更多相关文章

  1. 【Wannafly挑战赛24】【C失衡天平】

    https://www.nowcoder.com/acm/contest/186/C 题意:有n个武器,每个武器都有一个重量 Wi,有一个天平,只要两端的重量差不大于m就能达到平衡,求在天平平衡的情况 ...

  2. 失衡天平 - 简单dp

    链接:https://www.nowcoder.com/acm/contest/186/C来源:牛客网 终于Alice走出了大魔王的陷阱,可是现在傻傻的她忘了带武器了,这可如何是好???这个时候,一个 ...

  3. Nowcoder186C 失衡天平 背包

    题目传送门 题意:给你$N$个数,你可以将其划分为若干对集合(这里所说的集合允许数字重复)(即集合是两个集合两个集合出现),每对集合中两个集合所有元素的和的差的绝对值不超过$M$,可以有数字不在集合内 ...

  4. Wannafly挑战赛24游记

    Wannafly挑战赛24游记 A - 石子游戏 题目大意: A和B两人玩游戏,总共有\(n(n\le10^4)\)堆石子,轮流进行一些操作,不能进行下去的人则输掉这局游戏.操作包含以下两种: 把石子 ...

  5. Wannafly挑战赛24

    A. 石子游戏 Alice和Bob在玩游戏,他们面前有n堆石子,对于这些石子他们可以轮流进行一些操作,不能进行下去的人则输掉这局游戏.可以进行两种操作:1. 把石子数为奇数的一堆石子分为两堆正整数个石 ...

  6. UVa 12166 修改天平

    https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem& ...

  7. BZOJ 1111: [POI2007]四进制的天平Wag

    1111: [POI2007]四进制的天平Wag Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 223  Solved: 151[Submit][St ...

  8. UVa 1354 Mobile Computing | GOJ 1320 不加修饰的天平问题 (例题 7-7)

    传送门1(UVa): https://uva.onlinejudge.org/external/13/1354.pdf 传送门2(GOJ): http://acm.gdufe.edu.cn/Probl ...

  9. 二叉树的递归遍历 天平UVa839

    题意:输入一个树状的天平,利用杠杆原理,根据力矩是否相等(W1D1==W1D2)判断天平是否平衡 解题思路:1.由于判断天平是否平衡,当W1和W2都为0的时候,会先输入左子树,再输入右子树 2.此时的 ...

  10. bzoj:1673 [Usaco2005 Dec]Scales 天平

    Description Farmer John has a balance for weighing the cows. He also has a set of N (1 <= N <= ...

随机推荐

  1. MongoDB 增删改查 常用sql总结

    本文为博主原创,转载请注明出处: 1.切换到指定数据库:如果不存在则创建 use database 2.查看所有文档 show tables show collections 3.创建表 #创建文档 ...

  2. Idea 进行远程服务器debug操作

    本文为博主原创,转载请注明出处: 很多时候为了定位服务器的问题,不方便定位时,采用idea 远程debug 服务器环境的服务进行问题定位,主要操作步骤如下: 1. 修改服务器服务的JVM 配置,开启远 ...

  3. maven总结二: 常用标签及属性

    本文为博主原创,未经允许不得转载  目录: 1. maven 依赖属性:groupId.artifactId.version 2.插件执行: execution,id ,phase,goals,con ...

  4. chorm如何静音特定网页

    如图所示,右键想要静音的网页标签,选择将这个网页静音即可

  5. 【MicroPython】用 c 添加接口 -- 给 module 添加 function

    [来源]https://www.eemaker.com/micropython-c-modfunc.html

  6. 【TouchGFX】MVP 示例分析

    控制流 数据流 硬按键改变View界面内容 backend --> model --> presenter --> view    View button 控制电路板LED亮灭 vi ...

  7. [转帖]小米Redis的K8s容器化部署实践

    https://juejin.cn/post/6844904196924276743     背景 Why K8S How K8s Why Proxy Proxy带来的问题 K8s带来的好处 遇到的问 ...

  8. 凡是有但是-varchar和nvarchar的初步学习之一

    凡是有但是-varchar和nvarchar的初步学习之一 背景 高应用开发, 在涉及到国内国外的问题时,重要的事情有两个: 时区转换, 字符集转换. 时区转换虽然是很难理清楚, 各种规范不统一的事情 ...

  9. [转帖]ck的离线安装

    下载 下载地址: https://repo.clickhouse.tech/tgz/stable/ 下载的包: clickhouse-common-static clickhouse-server c ...

  10. [转帖]minio 的 warp

    3 benchmarking tool. Download Download Binary Releases for various platforms. Configuration Warp can ...