BZOJ2748: [HAOI2012]音量调节

Description

一个吉他手准备参加一场演出。他不喜欢在演出时始终使用同一个音量,所以他决定每一首歌之前他都要改变一次音量。

在演出开始之前,他已经做好了一个列表,里面写着在每首歌开始之前他想要改变的音量是多少。

每一次改变音量,他可以选择调高也可以调低。
音量用一个整数描述。输入文件中给定整数beginLevel,代表吉他刚开始的音量,以及整数maxLevel,代表吉他的最大音量。

音量不能小于0也不能大于maxLevel。

输入文件中还给定了n个整数c1,c2,c3…..cn,表示在第i首歌开始之前吉他手想要改变的音量是多少。
吉他手想以最大的音量演奏最后一首歌,你的任务是找到这个最大音量是多少。

Input

第一行依次为三个整数:n, beginLevel, maxlevel。
第二行依次为n个整数:c1,c2,c3…..cn。

Output

输出演奏最后一首歌的最大音量。

如果吉他手无法避免音量低于0或者高于maxLevel,输出-1。

Sample Input

3 5 10
5 3 7

Sample Output

10

HINT

1<=N<=50,1<=Ci<=Maxlevel 1<=maxlevel<=1000

0<=beginlevel<=maxlevel


题解Here!

很显然的一个$DP$。
感觉很像背包。
每次只有可能加或者减。
那么不就好办了:
设$dp[i][j]$表示到第$i$首歌,能否达到$j$的音量。
转移方程长这个样:
$$dp[i][j]|=\left\{\begin{array}{}dp[i-1][j-val[i]]&j-val[i]\geq 0\\dp[i-1][j+val[i]]&j+val[i]\leq m\end{array}\right.$$
然后输出最大解就好。
我代码里用的是填表法,和上面那个不太一样,但是思路都是一样的。
附代码:
#include<iostream>
#include<algorithm>
#include<cstdio>
#define MAXN 60
#define MAXM 1010
using namespace std;
int n,m,s;
int val[MAXN];
bool dp[MAXN][MAXM];
inline int read(){int date=0,w=1;char c=0;while(c<'0'||c>'9'){if(c=='-')w=-1;c=getchar();}while(c>='0'&&c<='9'){date=date*10+c-'0';c=getchar();}return date*w;
}
void work(){dp[0][s]=true;for(int i=1;i<=n;i++)for(int j=0;j<=m;j++)if(dp[i-1][j]){if(j+val[i]<=m)dp[i][j+val[i]]=true;if(j-val[i]>=0)dp[i][j-val[i]]=true;}for(int i=m;i>=0;i--)if(dp[n][i]){printf("%d\n",i);return;}printf("-1\n");
}
void init(){n=read();s=read();m=read();for(int i=1;i<=n;i++)val[i]=read();
}
int main(){init();work();return 0;
}

转载于:https://www.cnblogs.com/Yangrui-Blog/p/9933170.html

BZOJ2748: [HAOI2012]音量调节相关推荐

  1. BZOJ-2748: [HAOI2012]音量调节 (傻逼背包DP)

    2748: [HAOI2012]音量调节 Time Limit: 3 Sec  Memory Limit: 128 MB Submit: 2246  Solved: 1413 [Submit][Sta ...

  2. 【题解】 bzoj2748 [HAOI2012]音量调节 (动态规划)

    懒得复制,戳我戳我 Solution: 傻逼题目,直接dp就可以了,他是求最后一次的最大值 Code: //It is coded by Ning_Mew on 4.17 #include<bi ...

  3. bzoj 2748: [HAOI2012]音量调节

    2748: [HAOI2012]音量调节 Time Limit: 3 Sec  Memory Limit: 128 MB Submit: 872  Solved: 577 [Submit][Statu ...

  4. BZOJ 2748: [HAOI2012]音量调节【二维dp,枚举】

    2748: [HAOI2012]音量调节 Time Limit: 3 Sec  Memory Limit: 128 MB Submit: 2010  Solved: 1260 [Submit][Sta ...

  5. 2748: [HAOI2012]音量调节

    2748: [HAOI2012]音量调节 Time Limit: 3 Sec  Memory Limit: 128 MB Submit: 719  Solved: 475 [Submit][Statu ...

  6. 【Bzoj2748】音量调节

    2748: [HAOI2012]音量调节 Time Limit: 3 Sec   Memory Limit: 128 MB Submit: 1732   Solved: 1088 [ Submit][ ...

  7. [HAOI2012]音量调节 入门dp

    题解: 简单的dp. 也许dp我只会做这种小白型的了 (剩下的交给队友奥里给) 首先我们先看一下,不优化空间的dp怎么写的. 我们发现他最多会演唱50首歌曲,最大音调为1000. 开一个dp[50][ ...

  8. 【Ubuntu日常技巧】【解决】Ubuntu 16 右上角的音量调节通知框不停地闪烁问题

    一. 先上干货 解决问题 1.1 安装工具alsa-tools-gui sudo apt-get install alsa-tools-gui 1.2 通过hdajackretask设置 直接执行命令 ...

  9. 设置计算机关机静音,Shortcuts 捷径控制 Windows 电脑:静音开关、音量调节、待机、关机...

    在 iPhone 上通过 Shortcuts 捷径控制 Windows 电脑:静音开关.音量调节.待机.关机 演示视频 : 教程: 一.使用方法: 1.Windows 上安装一个 SSH 服务器软件并 ...

  10. Android、iOS平台RTMP/RTSP播放器实现实时音量调节

    介绍移动端RTMP.RTSP播放器实时音量调节之前,我们之前也写过,为什么windows播放端加这样的接口,windows端播放器在多窗口大屏显示的场景下尤其需要,尽管我们老早就有了实时静音接口,相对 ...

最新文章

  1. Windows Azure Pack集成配置SPF
  2. 数据库设计指南(四)保证数据的完整性
  3. 高手问答精选:Go 语言 —— 云计算时代的 C 语言
  4. element vue 获取select 的label_vue+elementui实现省市区三级联动
  5. flutter中list相关操作汇总(有这一篇就够啦)
  6. android 仿ios tabs,React Native兼容iOS Android的TabBar
  7. 关于RestTemplate的几个问题
  8. 多数元素(哈希表和投票法)
  9. Map.getOrDefault()的返回类型问题
  10. java基础知识点整理一
  11. 论文笔记_S2D.36_2017-CVPR_CNN-SLAM: 实时稠密单目SLAM与学习深度预测
  12. 【优化算法】Iterative映射和单纯形法的改进灰狼优化算法(SMIGWO)【含Matlab源码 1746期】
  13. 实训笔记20190807--数据分析
  14. 贴上AI标签的综艺,未来的模样你敢想象吗?
  15. 桌面放大镜、演示工具推荐——ZoomIt
  16. Vue elementui 实现表格selection的默认勾选
  17. GitHub 标星 2.3k+,比个手势,AI 自动识别 Emoji!
  18. 备了安的网站换服务器,tipask网站更换服务器后 问答系统重新安装注意要点 - 小俊学习网...
  19. CTL_CODE 宏 详解
  20. 我的Internet路由器可能会磨损吗?

热门文章

  1. 云服务器应用打不开,云虚拟主机网站打不开等常见错误提示解决方法
  2. 【示波器专题】示波器带宽对测量的影响
  3. Java 小白 声明两个字符串:一个是“宋江,卢俊义,林冲,鲁智深,武松“;另一个是“及时雨,玉麒麟,豹子头,花和尚,行者“。以逗号为分隔符分割两个字符串,然后将人物绰号和名字拼接在一起并输出。
  4. 如何在PPT中设置选择题
  5. ant notification通知框 内容支持html标签
  6. 从新华字典释义的角度理解springboot中controller、service、dao各自的职责
  7. OBS(Open Broadcaster Software)桌面视频直播软件/直播推流工具使用方法指南
  8. Android Studio更新后导入项目报错问题解决(Minimum supported Gradle version is ×.×.×. Current version is ×.×.× )
  9. vue动态修改网页标题(也可用于vx里的网页标题)
  10. lof基金溢价率php源码,一文读懂LOF基金套利策略 LOF是球友们很喜欢的一类基金,这类基金不仅可以在场内进行高效买卖,而且还可以进行折溢价套利。不过这里面牵扯到很多细节,... - 雪球...