http://www.lydsy.com/JudgeOnline/problem.php?id=3613

//话说BZOJ终于修好了...

Description

小 Z 是 ZRP(Zombies’ Republic of Poetry,僵尸诗歌共和国)的一名诗歌爱好者,最近 他研究起了诗词音律的问题。
  在过去,诗词是需要编成曲子唱出来的,比如下面这首《菩萨蛮》,唱出来的话其对应 的音符就是这样的:
   南  园  满 地 堆 轻 絮, 愁 闻 一 霎 清 明 雨
   1   1  5 5 6 6 5  4 4 3 3 2 2 1  
因而可以发现,“1 1 5 5 6 6 5 4 4 3 3 2 2 1”这串音符就成为了研究音律的关键。
 小 Z 翻阅了众多史料发现,过去的一首曲子的音调是不下降的 
 小 Z 想要知道对于一首给定的曲子,如何通过提高音调或者降低音调,将它的音调修改 的不下降,
而且使得修改幅度最大的那个音符的修改幅度尽量小。
即如果把一个包含 n 个音 符的曲子看做是一个正整数数列 A[1]…A[n],
那么 目标是求另一个正整数数列 B[1]…B[n], 使得对于任意的 1≤i<n 有 B[i] ≤B[i+1],
而且使得 Ans = Max{|A[j]-B[j]|,1≤j≤n}尽量 小。  小 Z 很快就想清楚了做法,但是鉴于他还忙着写诗,
所以这个任务就交给了你。 

Input

由于数据规模可能较大,因此采用如下方式生成数据。

 每个数据包含 6 个数:n,Sa,Sb,Sc,Sd,A[1],Mod,意为共有 n 个音符,第一个音符为 A[1]。
 生成规则如下: 定义生成函数 F(x) = Sa*x^3 + Sb*x^2 + Sc*x + Sd; 
那么给出递推公式 A[i] = F(A[i-1]) + F(A[i-2]),此处规定 A[0] = 0. 
由于中间过程的数可能会特别大,所以要求每一步与 A 中的每个数都对一个给定的数 Mod 取模。

Output

输出一行,包含一个正整数 Ans。

//弱弱的代码

 #include<iostream>
 #include<cstdio>
 #define LL long long
 using namespace std;
 ;
 LL a[maxn],mod,sa,sb,sc,sd,n;
 bool judge(LL x){
     LL butt=max((LL),a[]-x);
     ;i<=n;i++){
         if(a[i]+x<butt) return false;
         butt=max(butt,a[i]-x);
     }
     return true;
 }
 LL f(LL x){
     LL k=a[x-];LL ans=(k*k%mod*k%mod*sa%mod+k*k%mod*sb%mod+k*sc%mod+sd)%mod;
     k=a[x-];ans+=(k*k%mod*k%mod*sa%mod+k*k%mod*sb%mod+k*sc%mod+sd)%mod;
     return ans%mod;
 }
 int main()
 {
     a[]=;LL L=,R=<<;
     scanf(],&mod);
     ;i<=n;i++) a[i]=f(i);
     while(L<R){
         LL M=(L+R)/;
         if(judge(M)) R=M;
         ;
     }
     printf("%lld",L);
     ;
 }

//这才是神犇

 #include <cstdio>
 #include <cstring>
 #include <algorithm>
 #define inc(i,j,k) for(int i=j;i<=k;i++)
 #define maxn 5000010
 #define ll long long
 using namespace std;
 int n; ll sa,sb,sc,sd,a[maxn],mod,mx[maxn],ans;
 ll f(ll a){return (a*a%mod*a%mod*sa%mod+a*a%mod*sb%mod+a*sc%mod+sd)%mod;}
 int main(){
     scanf(],&mod);
     inc(i,,n)a[i]=(f(a[i-])+f(a[i-]))%mod; inc(i,,n)mx[i]=max(mx[i-],a[i]);
     inc(i,,n)]>a[i])ans=max(ans,(mx[i-]-a[i]+)>>); printf(;
 }

//链接(并没有看懂是怎么推出来的)http://www.cnblogs.com/YuanZiming/p/5777918.html

BZOJ3613 南园满地堆轻絮-二分法的更多相关文章

  1. BZOJ3613 南园满地堆轻絮 二分/贪心

    正解:贪心 解题报告: 传送门! 这题似乎是可以二分水过的,,,但数据可以加强一下就能简单把二分卡住了,或者修改下空间限制什么的反正就很容易能卡住 所以这里介绍一个优秀的贪心做法,O(n)的时间复杂度 ...

  2. 【BZOJ3613】[HEOI2014]南园满地堆轻絮(贪心)

    [BZOJ3613][HEOI2014]南园满地堆轻絮(贪心) 题面 BZOJ 洛谷 题解 考虑二分的做法,每次二分一个答案,那么就会让所有的值尽可能的减少,那么\(O(n)\)扫一遍就好了. 考虑如 ...

  3. 【BZOJ】【3613】【HEOI2014】南园满地堆轻絮

    思路题 考试结束前5.6min的时候想到……但是写挂了QAQ 其实就是(差值最大的逆序对之差+1)/2; 找逆序对其实维护一个max直接往过扫就可以了……因为逆序对是前面的数大于后面的数…… 正确性显 ...

  4. BZOJ_3613_[Heoi2014]南园满地堆轻絮_二分答案

    BZOJ_3613_[Heoi2014]南园满地堆轻絮_二分答案 Description 小 Z 是 ZRP(Zombies’ Republic of Poetry,僵尸诗歌共和国)的一名诗歌爱好者, ...

  5. 3613: [Heoi2014]南园满地堆轻絮

    3613: [Heoi2014]南园满地堆轻絮 Time Limit: 50 Sec Memory Limit: 256 MB Submit: 827 Solved: 534 [Submit][Sta ...

  6. 「HEOI2014」南园满地堆轻絮

    题目链接 戳我 题目出处 菩萨蛮·南园满地堆轻絮                                             温庭筠 南园满地堆轻絮,愁闻一霎清明雨.雨后却斜阳,杏花零落香 ...

  7. [HEOI2014]南园满地堆轻絮

    [HEOI2014]南园满地堆轻絮 BZOJ luogu 二分答案贪心check 首先b[1]最小一定优 之后就贪心的最小化b[i]就行 #include<bits/stdc++.h> u ...

  8. [luogu] P4105 [HEOI2014]南园满地堆轻絮 (贪心)

    P4105 [HEOI2014]南园满地堆轻絮 题目描述 小 Z 是 ZRP(Zombies' Republic of Poetry,僵尸诗歌共和国)的一名诗歌爱好者,最近 他研究起了诗词音律的问题. ...

  9. NC20012 [HEOI2014]南园满地堆轻絮

    NC20012 [HEOI2014]南园满地堆轻絮 题目 题目描述 小 Z 是 ZRP(Zombies' Republic of Poetry,僵尸诗歌共和国)的一名诗歌爱好者,最近他研究起了诗词音律 ...

随机推荐

  1. centos 连不上网

    ifc-eth0 里面要加DNS1=192.168.1.1 一定是DNS1这样的,不要是DNS

  2. [Issue]repo/repo init-解决同步源码Cannot get http://gerrit.googlesource.com/git-repo/clone.bundle

    1. 前两天想搭建freescale L3.0.35_4.1.0_BSP包,结果LTIB环境搭建好,也编译出rootfs/uboot/kernel的Image了,但是准备移植uboot的时候发现ubo ...

  3. SVN中的Branches分支以及Merge 应用举例

    come from: http://www.360doc.com/content/12/0816/19/1317564_230547958.shtml 创建Branch分支或者Tag标签 当按照推荐的 ...

  4. Mysql触发器简明使用

    触发器:trigger创建触发器的语法mysql> delimiter $mysql> create trigger 触发器名称 after/before(触发时间) insert/upd ...

  5. 黄聪:阿里云Windows2012服务器IIS8实现wordpress完美伪静态(ISAPIRewritev)

    1.下载64位URL重写组件:http://www.iis.net/downloads/microsoft/url-rewrite   (可以直接下载:urlrewrite2.rar) 2.暂停IIS ...

  6. 黄聪:Dsicuz x2.5、X3、X3.2如何去掉域名后面的/forum.php

    Dsicuz x2.5去掉域名后面的/forum.php 1, 后台--全局--域名设置--应用域名--设置默认域名为访问域名就可以,如:www.xxxxx.com 上面2种方法都可以去掉域名后面的/ ...

  7. Oracle 数据库中不同事务并发访问的问题

    现象 以SQL/Helper为例,打开不同的SQL窗口,对同一个表格进行操作,如下所示. 窗口1:当执行更新任务.紧接着执行查询时获得一组查询结果.结果是对的. 窗口2:而在另外一个SQL查询窗口中执 ...

  8. web提前做好测试

    1.压力测试,找到极限点和瓶颈,最小化扩容2.消息队列应对高并发的写操作 根据数据大小分成不同队列,保证效率 堵塞队列,压队列机极限处理能力3.主要业务和次要业务分开,当出现异常时保障主要业务,保证系 ...

  9. HTML5与HTML4的区别

    一.推出的理由及目标 web浏览器之间的兼容性很低 文档结构不够明确 web应用程序的功能受到了限制 二.语法的改变 内容类型 文件扩展名html htm  内容类型 texthtml   二者不变 ...

  10. vim常用命令笔记(转载)

    添加多行注释:   1. 首先按esc进入命令行模式下,按下Ctrl + v,进入列(也叫区块)模式;   2. 在行首使用上下键选择需要注释的多行;   3. 按下键盘(大写)“I”键,进入插入模式 ...