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
5 3 7
Sample Output
HINT
1<=N<=50,1<=Ci<=Maxlevel 1<=maxlevel<=1000
题解:
题目给出了许多个限制,问最大可行音量都是多少。
可以把每种音量是否可以取压缩为60个二进制状态,通过and运算来进行限制。
最后枚举最大答案。
代码:
const
ww=( shl )-;
var
i,j,k,l,ll,n,nn,m,max:longint;
a,b:array[..]of qword;
begin
readln(n,l,m); nn:=m div ; max:=( shl((m mod )+))-;
if(l<)or(l>m)then begin writeln(-); halt; end;
i:=l div ; j:=l mod ;
a[i]:=a[i]or( shl j);
for i:= to n do
begin
read(l);
for j:= to nn do b[j]:=;
for j:= to nn do
begin
ll:=l; k:=j;
while(ll>)and(k>=)do
begin
ll:=ll-; dec(k);
end;
if k>= then
begin
b[k]:=b[k]or(a[j] shr ll);
dec(k); ll:=-ll;
if k>= then
b[k]:=(b[k]or(a[j] shl ll))and ww;
end;
ll:=l; k:=j;
while(ll>)and(k<=nn)do
begin
ll:=ll-; inc(k);
end;
if k<=nn then
begin
b[k]:=b[k]or(a[j] shl ll);
if k=nn then b[k]:=b[k]and max else b[k]:=b[k]and ww;
inc(k); ll:=-ll;
if k<=nn then
begin
b[k]:=b[k]or(a[j] shr ll);
if k=nn then b[k]:=b[k]and max
else b[k]:=b[k]and ww;
end;
end;
end;
a:=b;
end;
for i:=nn downto do
begin
if a[i]> then
begin
k:=;
while a[i]> do
begin inc(k); a[i]:=a[i]shr ; end;
k:=k-;
writeln(i*+k); halt;
end;
end;
writeln(-);
end.
BZOJ2748[HAOI2012]音量调节的更多相关文章
- bzoj2748: [HAOI2012]音量调节(背包)
2748: [HAOI2012]音量调节 题目:传送门 题解: sb省选题..呵呵一眼背包: f[i][j]表示第i时刻能否为音量j 代码: #include<cstdio> #inclu ...
- [bzoj2748][HAOI2012]音量调节_动态规划_背包dp
音量调节 bzoj-2748 HAOI-2012 题目大意:有一个初值,给你n个$\delta$值,求最后不超过给定的限制的情况下的改变的最大值.每个$\delta$值可以+也可以-. 注释:$1\l ...
- bzoj2748[HAOI2012]音量调节(背包问题的方案)
Description 一个吉他手准备参加一场演出.他不喜欢在演出时始终使用同一个音量,所以他决定每一首歌之前他都要改变一次音量.在演出开始之前,他已经做好了一个列表,里面写着在每首歌开始之前他想要改 ...
- 【动态规划】【记忆化搜索】【dfs】bzoj2748 [HAOI2012]音量调节
f[i][j]表示第i首歌音量为j是否可能.若是将状态之间建边,那么答案就是max(j){f[i][j]==true&&0<=j<=limit}.于是就是图中dfs一遍判断 ...
- bzoj2748 [HAOI2012]音量调节 背包
Description 一个吉他手准备参加一场演出.他不喜欢在演出时始终使用同一个音量,所以他决定每一首歌之前他都要改变一次音量.在演出开始之前,他已经做好了一个列表,里面写着在每首歌开始之前他想要改 ...
- 【题解】 bzoj2748 [HAOI2012]音量调节 (动态规划)
懒得复制,戳我戳我 Solution: 傻逼题目,直接dp就可以了,他是求最后一次的最大值 Code: //It is coded by Ning_Mew on 4.17 #include<bi ...
- 2018.10.20 bzoj2748: [HAOI2012]音量调节(背包)
传送门 这题是不是太sbsbsb了一点. 难度直逼普及-. 直接背包判存在性就行了. 代码: #include<bits/stdc++.h> using namespace std; bo ...
- bzoj-2748 2748: [HAOI2012]音量调节(dp)
题目链接: 2748: [HAOI2012]音量调节 Time Limit: 3 Sec Memory Limit: 128 MB Description 一个吉他手准备参加一场演出.他不喜欢在演出 ...
- BZOJ 2748: [HAOI2012]音量调节 dp
2748: [HAOI2012]音量调节 Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://www.lydsy.com/JudgeOnline/p ...
随机推荐
- 【转】acm小技巧
1.一般用c语言节约空间,要用c++库函数或STL时才用c++: cout.cin和printf.scanf最好不要混用. 大数据输入输出最后不用cin.cout,纺织超市. 2.有时候int型不够用 ...
- 对hashcode、equals的理解
1.首先hashcode和equals都是java每个对象都存在的方法,因为他们两是Object的方法. 2.hashcode方法默认返回的是该对象内存地址的哈希码,然而你会发现,Object类中没有 ...
- 001.Getting Started -- 【入门指南】
Getting Started 入门指南 662 of 756 people found this helpful Meng.Net 自译 1. Install .NET Core 到官网安装 .NE ...
- Dependency management
Play’s dependency management system allows you to express your application’s external dependencies i ...
- HTML5中使用图片传递密文
上面的两张图片中,你能看出有什么不同吗? 右图使用 html5 canvas api 中的 getImageData 和 putImageData 函数嵌入了一段文字. 道理很简单,getImageD ...
- JS字符串反序输出
function IsReverse(text){ return text.split('').reverse().join(''); } IsReverse("你是我的小丫小苹果" ...
- js instanceof
a instanceof b: 1,首先a不是对象,返回false,b的原型不是对象抛出TypeError 2,取得b的prototype标记为bp,对a的原型链做循环,令ap为当前原型,如果ap与b ...
- 征友记之---前端开发Partner
简单自述下: 本人前端开发者,深圳一公司在职员工,非出自前端科班,乃自学前端已近两年之久. 受前端 ...
- Objective-C 工厂方法
类方法用来创建对象的方法就是工厂方法 1.无参工厂方法 创建对象,并给属性一个默认值. //无参工厂方法实现 +(Student*)student{ return [[Student alloc]in ...
- Event 8306 5021 5059 5057发布安全令牌时异常
现象:站点访问一个,应用程序池就自动停掉一个 日志报错 解决: 1.受域策略影响,作为批处理作业登录选项被锁定,需修改域策略: 更新后: 2.确保程序池账户倒在IIS_IUSER组 ...