【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_{ ...
随机推荐
- laravel创建资源路由控制器
php artisan make:controller PhotoController --resource
- Win10系列:VC++绘制位图图片
在使用Direct2D绘制图片的过程中,通过IWICImagingFactory工厂接口来得到绘制图片所需要的资源.本小节将介绍如何通过IWICImagingFactory工厂接口得到这些资源,并使用 ...
- highcharts,highStock 中文图表配置
感谢开源的支持! https://github.com/hcharts/highcharts-zh_CN
- NOI2019冬令营报到通知
由中国计算机学会(CCF)主办的2019全国青少年信息学奥林匹克冬令营(CCF NOI 2019冬令营)将于2019年1月24日-31日在广州市第二中学举行.其中1月24日为报到日,1月31日为疏散日 ...
- java动手动脑2
仔细阅读示例: EnumTest.java,运行它,分析运行结果? 你能得到什么结论?你掌握了枚举类型的基本用法了吗? 运行结果: 第一个false是判断s和t是否引用同一个对象,第二个false是判 ...
- net core 获取网站目录
AppContext.BaseDirectory 获取项目的根目录
- 查看电脑安装的JDK版本
1.输入java -d32 -version,若出现如下界面则是32位 2.java -d64 -version,因为是32位的,所以结果如下
- webpack进阶构建项目(一):1.理解webpack加载器
1.理解webpack加载器 webpack的设计理念,所有资源都是“模块”,webpack内部实现了一套资源加载机制,这与Requirejs.Sea.js.Browserify等实现有所不同. We ...
- python 一行代码字符串转字典方法
b = 'bid=Qzw9cKnyESM; ll="108288"; __yadk_uid=4YChvgeANLBEh4iV00n1tc0HQ8zpmSl1; __utmc=301 ...
- day 03 变量与基本数据类型
变量的命名规范 一:变量命名的大前提,应该能够反映出变量值所记录内容 1:变量名只能由数字,字母,下划线组成 2:变量名不能以数字开头 3:变量名不能使用系统的关键字,不然可能会报错 二:变量名的命名 ...