【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_{ ...
随机推荐
- 蓝桥杯—ALGO-2 最小最大公倍数
问题描述已知一个正整数N,问从1~N中任选出三个数,他们的最小公倍数最大可以为多少. 输入格式输入一个正整数N. 输出格式输出一个整数,表示你找到的最小公倍数.样例输入9样例输出504数据规模与约定1 ...
- 逆袭之旅DAY10.东软实训.
- laravel中db获取某个数据的具体字段值:
$helpfriend = DB::connection('luckyrecord')->table($luckyrecord)->where('id', $luckyrecordid)- ...
- django+xadmin+djcelery实现后台管理定时任务
继上一篇中间表的数据是动态的,图表展示的数据才比较准确.这里用到一个新的模块Djcelery,安装配置步骤如下: 1.安装 redis==2.10.6 celery==3.1.23 django-ce ...
- vue-1-模板语法
文本 <span>Message: {{ msg }}</span><span v-once>这个将不会改变: {{ msg }}</span> 原始 ...
- HTML--思维导图
HTML--思维导图
- DOM&BOM
文档对象模型(Document Object Model) 来源:文档对象模型(Document Object Model)的历史与20世纪90年代末Netscape Navigator和Micros ...
- UGUI动态绑定事件
using System.Collections.Generic;using UnityEngine;using UnityEngine.EventSystems;using UnityEngine. ...
- 初识Linux------文件管理
初识Linux------文件管理 说明 由于本章的命令比较多,先对命令有一个整体的说明 命令的一般格式:命令名[选项][参数1][参数2]…… 命令名由小写的英文字母构成,往往是表示相应功能的英文单 ...
- subprocess(子进程模块)
subprocess: 子进程模块 一个正在运行的程序叫做进程 一个进程 开启了另一个进程 这个被开启的程序叫做子ka进程 ###########################在cmd中执行#### ...