【Wannafly挑战赛24】【C失衡天平】
https://www.nowcoder.com/acm/contest/186/C
题意:有n个武器,每个武器都有一个重量 Wi,有一个天平,只要两端的重量差不大于m就能达到平衡,求在天平平衡的情况下最多放的重量是多少。
题解:显然可知可以使用动态规划解决。用dp[ i ][ j ]表示到第 i 个武器处两端差值为 j 时的最大重量。
则有dp[ i ][ j ]=max( dp[ i ][ j ] ,dp[ i-1 ][ j ] ,dp[ i -1 ][ abs(j-W[ i ]) ]+W[ i ],dp[ i-1 ][ j+W[i] ]+W[ i ] )
坑点:但是要注意,需要判断dp[ i-1 ][ j+W[i] ]与dp[ i-1 ][ abs(j-W[i]) ]是否合理,就是说如果他们的值为0时,则不合理,因为不可能存在差值不为0总重量为0的情况,如果不合理则不能参与叠加。
#include<iostream>
#include<cstdio>
#include<cstring>
#include<queue>
#include<algorithm>
using namespace std;
int dp[][], skt[];
int main() {
int n, m;
scanf("%d%d", &n, &m);
for (int i = ; i < n; i++) {
scanf("%d", &skt[i]);
}int maxx = ;
//memset(dp, -1, sizeof(dp));
dp[][skt[]] = skt[];
for (int i = ; i < n; i++) {
for (int j = ; j < ; j++) {
dp[i][j] = max(dp[i][j], dp[i - ][j]);
if (dp[i - ][abs(j-skt[i])]>||j-skt[i]==)
dp[i][j] = max(dp[i - ][abs(j-skt[i])] + skt[i], dp[i][j]);
if (dp[i - ][j+skt[i]]>)
dp[i][j] = max(dp[i - ][j+skt[i]] + skt[i], dp[i][j]);
}
}
for (int i = ; i <= m; i++) {
maxx = max(maxx, dp[n - ][i]);
}
cout << maxx << endl;
return ;
}
输入例子:
5 4
1 5 61 65 100
输出例子:
132
-->
【Wannafly挑战赛24】【C失衡天平】的更多相关文章
- Wannafly挑战赛24游记
Wannafly挑战赛24游记 A - 石子游戏 题目大意: A和B两人玩游戏,总共有\(n(n\le10^4)\)堆石子,轮流进行一些操作,不能进行下去的人则输掉这局游戏.操作包含以下两种: 把石子 ...
- Wannafly挑战赛24
A. 石子游戏 Alice和Bob在玩游戏,他们面前有n堆石子,对于这些石子他们可以轮流进行一些操作,不能进行下去的人则输掉这局游戏.可以进行两种操作:1. 把石子数为奇数的一堆石子分为两堆正整数个石 ...
- Wannafly挑战赛24 B 222333
小水题???但是时间限制异常鬼畜,跑了2min \(P | (2^m)*(3^n)-1\)的意思就是\(2^m 3^n = 1 (\text{mod }P)\) 设f[i]表示3^k=i的最小的k 然 ...
- Wannafly挑战赛25游记
Wannafly挑战赛25游记 A - 因子 题目大意: 令\(x=n!(n\le10^{12})\),给定一大于\(1\)的正整数\(p(p\le10000)\)求一个\(k\)使得\(p^k|x\ ...
- Wannafly挑战赛27
Wannafly挑战赛27 我打的第一场$Wannafly$是第25场,$T2$竟然出了一个几何题?而且还把我好不容易升上绿的$Rating$又降回了蓝名...之后再不敢打$Wannafly$了. 由 ...
- Wannafly 挑战赛 19 参考题解
这一次的 Wannafly 挑战赛题目是我出的,除了第一题,剩余的题目好像对大部分算法竞赛者来说好像都不是特别友好,但是个人感觉题目质量还是过得去的,下面是题目链接以及题解. [题目链接] Wanna ...
- Wannafly挑战赛21A
题目链接 Wannafly挑战赛21A 题解 代码 #include <cstdio> #include <cmath> #define MAX 1000005 #define ...
- Wannafly挑战赛25C 期望操作数
Wannafly挑战赛25C 期望操作数 简单题啦 \(f[i]=\frac{\sum_{j<=i}f[j]}{i}+1\) \(f[i]=\frac{f[i]}{i}+\frac{\sum_{ ...
- Wannafly挑战赛18B 随机数
Wannafly挑战赛18B 随机数 设\(f_i\)表示生成\(i\)个数有奇数个1的概率. 那么显而易见的递推式:\(f_i=p(1-f_{i-1})+(1-p)f_{i-1}=(1-2p)f_{ ...
随机推荐
- 分析图第二讲导出图片和后期PS5.12
导出渲染的白模加上EXTRATEX.再导出一张“消隐”样式的模型图片.就是线稿图. 再导出一张着色显示图,并去掉边线.,用于后期PS选择范围用. 把这几张图全都导入ps. 渲染图的阴影面是灰色的,示例 ...
- windows 执行bat脚本
bat脚本中运行另外一个bat脚本 call 命令 call1.bat内容如下 echo running call1 call2.bat内容如下 @echo off echo start call c ...
- 在项目中使用 SCSS
背景概述 1. CSS预处理器 css预处理器定义了一种新的编程语言,编译后成正常的CSS文件.为CSS增加一些编程的特性,无需考虑浏览器的兼容问题,让CSS更加简洁,适应性更强,可读性更佳,更易于代 ...
- HTML(三)选择器--复杂选择器
1.父子选择器/派生选择器 <div calss="wrapper"> <span calss="box">123</span&g ...
- 给msde加装企业管理器
-=给msde加装企业管理器=- 首先,反对所谓的绿色版,运行那是 相~~~当 不稳定,自动关闭,要你有什么用?还广告飞扬!为了调试,花了我整整一天的时间.给大家节省的时间,也为了让大家少走点弯路. ...
- Cracking The Coding Interview4.8
//You are given a binary tree in which each node contains a value. Design an algorithm to print all ...
- 牛客多校第四场 A Ternary String
题目描述 A ternary string is a sequence of digits, where each digit is either 0, 1, or 2. Chiaki has a t ...
- finfo_file
本文实例讲述了PHP使用finfo_file()函数检测上传图片类型的实现方法.分享给大家供大家参考,具体如下: 在输入输出中,文件的交互必不可少,比如文件的上传什么的.这里我们来解决一个小问题, ...
- python day05--字典
一.字典结构 {key:valu} 注意: key必须是不可变(可哈希)的. value没有要求.可以保存任意类型的数据. dic = {123: 456, True: 999, "id&q ...
- :after和:before伪元素的解释
:after 是清除浮动 让其高度和内容高度相同 :before 是防止上边塌陷 关注微信小程序