BZOJ3613 南园满地堆轻絮 二分/贪心
正解:贪心
解题报告:
这题似乎是可以二分水过的,,,但数据可以加强一下就能简单把二分卡住了,或者修改下空间限制什么的反正就很容易能卡住
所以这里介绍一个优秀的贪心做法,O(n)的时间复杂度和O(1)级别的空间复杂度就很美
首先二分还是能get的趴?就二分一个mid,对前面就能加就加对后面就能减就减,然后就做完了
这时候我们考虑一下二分出的这个mid的本质是什么?就是对每个数,它本来的取值只能是a[i],现在通过这个mid的存在,它可以取[a[i]-d,a[i]+d]范围内的所有值了,就相当于是对应一个区间了
然后题目就变成了,给一个若干条竖直块构成的图形,问从最左边开始走能否不向下一路走到最右
显然最低的要求就只要有一条平直的线能经过就欧克了,所以就只要最低点的最高和最高点的最低在同一高度就好,所以就
{x-mid}max={x+mid}min
可得mid=(xmax-xmin)/2
大概这样儿,over!
哦注意一下就是我重看一遍我题解发现我有个地方表述不清,,,就是这里的minmax因为其实是说以某个点为分界线的左边的max和右边的min,然后把这个算出来的答案再取个max,然后在实际实现中只要递推过程中更新一下max,计算以当前点为min的贡献,取max就好!
over
放个代码嘻嘻,真的难得一发过了,好爽昂QAQ
#include<bits/stdc++.h>
using namespace std;
#define il inline
#define gc getchar()
#define ri register int
#define rc register char
#define rb register bool
#define rp(i,x,y) for(ri i=x;i<=y;++i)
#define my(i,x,y) for(ri i=x;i>=y;--i) const int N=+;
int n,a,b,c,d,mod,mx,x[N],as; il int read()
{
rc ch=gc;ri x=;rb y=;
while(ch!='-' && (ch>'' || ch<''))ch=gc;
if(ch=='-')ch=gc,y=;
while(ch>='' && ch<='')x=(x<<)+(x<<)+(ch^''),ch=gc;
return y?x:-x;
}
int F(ri x){return (1ll*a*x%mod*x%mod*x%mod+1ll*b*x%mod*x%mod+1ll*c*x%mod+d)%mod;} int main()
{
n=read();a=read();b=read();c=read();d=read();x[]=read();mod=read();rp(i,,n)x[i]=(F(x[i-])+F(x[i-]))%mod;
rp(i,,n){mx=max(mx,x[i]);as=max(as,(mx-x[i]+)>>);}printf("%d\n",as);
return ;
}
BZOJ3613 南园满地堆轻絮 二分/贪心的更多相关文章
- 【BZOJ3613】[HEOI2014]南园满地堆轻絮(贪心)
[BZOJ3613][HEOI2014]南园满地堆轻絮(贪心) 题面 BZOJ 洛谷 题解 考虑二分的做法,每次二分一个答案,那么就会让所有的值尽可能的减少,那么\(O(n)\)扫一遍就好了. 考虑如 ...
- [BZOJ3613][Heoi2014]南园满地堆轻絮 二分答案
Description 小 Z 是 ZRP(Zombies’ Republic of Poetry,僵尸诗歌共和国)的一名诗歌爱好者,最近 他研究起了诗词音律的问题. 在过去,诗词是需要编成曲子唱 ...
- BZOJ3613 南园满地堆轻絮-二分法
http://www.lydsy.com/JudgeOnline/problem.php?id=3613 //话说BZOJ终于修好了... Description 小 Z 是 ZRP(Zombies' ...
- BZOJ_3613_[Heoi2014]南园满地堆轻絮_二分答案
BZOJ_3613_[Heoi2014]南园满地堆轻絮_二分答案 Description 小 Z 是 ZRP(Zombies’ Republic of Poetry,僵尸诗歌共和国)的一名诗歌爱好者, ...
- 「HEOI2014」南园满地堆轻絮
题目链接 戳我 题目出处 菩萨蛮·南园满地堆轻絮 温庭筠 南园满地堆轻絮,愁闻一霎清明雨.雨后却斜阳,杏花零落香 ...
- [HEOI2014]南园满地堆轻絮
[HEOI2014]南园满地堆轻絮 BZOJ luogu 二分答案贪心check 首先b[1]最小一定优 之后就贪心的最小化b[i]就行 #include<bits/stdc++.h> u ...
- [luogu] P4105 [HEOI2014]南园满地堆轻絮 (贪心)
P4105 [HEOI2014]南园满地堆轻絮 题目描述 小 Z 是 ZRP(Zombies' Republic of Poetry,僵尸诗歌共和国)的一名诗歌爱好者,最近 他研究起了诗词音律的问题. ...
- NC20012 [HEOI2014]南园满地堆轻絮
NC20012 [HEOI2014]南园满地堆轻絮 题目 题目描述 小 Z 是 ZRP(Zombies' Republic of Poetry,僵尸诗歌共和国)的一名诗歌爱好者,最近他研究起了诗词音律 ...
- 【BZOJ】【3613】【HEOI2014】南园满地堆轻絮
思路题 考试结束前5.6min的时候想到……但是写挂了QAQ 其实就是(差值最大的逆序对之差+1)/2; 找逆序对其实维护一个max直接往过扫就可以了……因为逆序对是前面的数大于后面的数…… 正确性显 ...
随机推荐
- Install elasticsearch-head: – for Elasticsearch 5.x
Running as a plugin of Elasticsearch Install elasticsearch-head:– for Elasticsearch 5.x:site plugins ...
- Intelij U
1.https://link.jianshu.com/?t=http://idea.lanyus.com/,下载JetbrainsCrack-2.6.2.jar,放到bin目录 2.编辑bin目录下面 ...
- 程序-代写(qq:928900200)
CS 310 Programming Assignment 4 Due April 27, 2014 5:00 P.M. About 15 years in the future... The Mar ...
- C# winform写入和读取TXT文件
C# winform写入和读取TXT文件 string str; str=this.textBox1.Text; StreamWriter sw = new ...
- spring事务传播
http://my.oschina.net/u/1166271/blog?catalog=448293
- [TensorBoard] Name & Variable scope
TF有两个scope, 一个是name_scope一个是variable_scope 第一个程序: with tf.name_scope("hello") as name_scop ...
- ThinkingInJava 学习 之 0000002 操作符
1. 更简单的打印语句 2. 使用Java操作符 3. 优先级(单目乘除位关系,逻辑三目后赋值) 4. 赋值 1. 方法调用中的别名问题 5. 算术操作符 6. 自动递增和递减 7. 关系操作符 1. ...
- Hibernate -- Dao层 -- CURD -- 随记
根据Where 参数 查询记录总数 .拼接SQL语句 .获取Session(hibernateTemplate.getSessionFactory().getCurrentSession()),调用C ...
- Linux驱动技术(二) _访问I/O内存
ARM是对内存空间和IO空间统一编址的,所以,通过读写SFR来控制硬件也就变成了通过读写相应的SFR地址来控制硬件.这部分地址也被称为I/O内存.x86中对I/O地址和内存地址是分开编址的,这样的IO ...
- 微信小游戏 main.js没有被压缩
发布时,发现main.js没有被压缩. 在config.wxgame.ts里增加如下图.