首页 > 其他分享 >BYSBZ 2748(音量调节-01背包)

BYSBZ 2748(音量调节-01背包)

时间:2022-10-25 12:33:17浏览次数:42  
标签:01 BYSBZ int 吉他手 音量 2748 include maxlevel changingsounds



第一题:音量调节 (changingsounds)


时间限制:1秒

空间限制:64 MB

输入:changingsounds.in

输出:changingsounds.out


问题描述


一个吉他手准备参加一场演出。他不喜欢在演出时始终使用同一个音量,所以他决定每一首歌之前他都要改变一次音量。在演出开始之前,他已经做好了一个列表,里面写着在每首歌开始之前他想要改变的音量是多少。每一次改变音量,他可以选择调高也可以调低。

音量用一个整数描述。输入文件中给定整数beginLevel,代表吉他刚开始的音量,以及整数maxLevel,代表吉他的最大音量。音量不能小于0也不能大于maxLevel。输入文件中还给定了n个整数,表示在第i首歌开始之前吉他手想要改变的音量是多少。

吉他手想以最大的音量演奏最后一首歌,你的任务是找到这个最大音量是多少。


输入


第一行依次为三个整数:n, beginLevel, maxlevel。

第二行依次为n个整数:。

限制:,,,。


输出


输出演奏最后一首歌的最大音量。如果吉他手无法避免音量低于0或者高于maxLevel,输出-1。


样例输入


3 5 10

5 3 7


样例输出


10


样例输入


4 8 20



一定要读题啊!!

这题说的是——每次一定换,没说前后不能到一个音量。


#include<cstdio>
#include<cstring>
#include<queue>
#include<cmath>
#include<cstdlib>
#include<iostream>
#include<functional>
#include<algorithm>
#include<stack>
using namespace std;
#define MAXN (50 + 10)
#define MAXMAXLEVEL (1000+1)
int n,start,maxlevel,a[MAXN];
bool f[MAXN][MAXMAXLEVEL];
int main()
{
// freopen("changingsounds.in","r",stdin);
// freopen("changingsounds.out","w",stdout);

memset(f,0,sizeof(f));

scanf("%d%d%d",&n,&start,&maxlevel);
for (int i=1;i<=n;i++) scanf("%d",&a[i]);
f[0][start]=1;
for (int i=1;i<=n;i++)
for (int j=0;j<=maxlevel;j++)
{
f[i][j]=j-a[i]>=0? f[i-1][j-a[i]] : 0;
f[i][j]=j+a[i]<=maxlevel? f[i-1][j+a[i]]||f[i][j] : f[i][j];



}
int ans=maxlevel;
while (ans>=0&&!f[n][ans]) ans--;
cout<<ans<<endl;




// while (1);
return 0;
}



标签:01,BYSBZ,int,吉他手,音量,2748,include,maxlevel,changingsounds
From: https://blog.51cto.com/u_15724837/5794490

相关文章

  • LOJ #2274. 「JXOI2017」加法
    题目链接:​​传送门​​最小值最大化,首先是很明显的二分其次是很明显的贪心,因为我们要选择一定数量的区间进行操作二分最后的这个最大值在check函数中把数组中值小于二......
  • LOJ #2500. 「NOIP2014」飞扬的小鸟
    题目链接:​​传送门​​不知不觉这么久没更了上了一阵子文化课,还比较颓没怎么做题就做了做noip历年的题也没什么好发的挑了一个,写了些注释#include<bits/stdc++.h>#def......
  • .NET编译器错误 CS5001
    需要在项目.csprog文件中显式添加<ProjectSdk="Microsoft.NET.Sdk"><PropertyGroup><OutputType>Exe</OutputType><TargetFramework>netcoreapp2.1</Targ......
  • LOJ #10180. 「一本通 5.5 练习 1」烽火传递
    题目链接:​​传送门​​设表示处理到第个位置的最小花费很明显转移要从之前的个位置转移过来就是最后答案要取这样转移是的,但足以通过本题的正解是单调队列优化由于只......
  • 01.BeanFactory实现
    /**beanFactory不会做的事:*1.不会主动调用BeanFactory后处理器*2.不会主动添加Bean后处理器*3.不会主动初始化单例(懒加载)*4.不会解析beanFactory还不会解析......
  • LOJ #3011. 「JOI 2019 Final」画展
    题目链接:​​传送门​​用最大的画框配最大的画显然是最优的那么挨个匹配就行#include<bits/stdc++.h>#defineusingnamespacestd;typedeflonglongll;pair<int,int>......
  • LOJ #2012. 「SCOI2016」背单词
    题目链接:​​传送门​​显然第一个情况和第二个情况不如第三个更优并且他们可以避免,所以尽量构造第三种情况将每个字符倒着插入trie树,因为先放后面的字符串是更优的然后......
  • 01_初始Vue篇
    1.基础代码<!--准备好一个容器--><divid="root"><h1>hello,{{name.toUpperCase()}},{{address}}!</h1></div><script>Vue.config.productionTip=fal......
  • BZOJ 1013([JSOI2008]球形空间产生器sphere-gauss消元练习)
    1013:[JSOI2008]球形空间产生器sphereTimeLimit: 1Sec  MemoryLimit: 162MBSubmit: 1181  Solved: 654[​​Submit​​][​​Status​​][​​Discu......
  • BZOJ 2111([ZJOI2010]Perm 排列计数-乘法逆元+完全二叉树模型+数列分数表示法)
    2111:[ZJOI2010]Perm排列计数TimeLimit: 10Sec  MemoryLimit: 259MBSubmit: 478  Solved: 283[​​Submit​​][​​Status​​][​​Discuss​​]......