[HEOI2014]南园满地堆轻絮

时间:2022-09-08 09:50:33

[HEOI2014]南园满地堆轻絮

BZOJ

luogu

二分答案贪心check

首先b[1]最小一定优

之后就贪心的最小化b[i]就行

#include<bits/stdc++.h>
using namespace std;
const int _=5e6+5;
int n,sa,sb,sc,sd,p,ans,a[_],b[_];
int F(int x){return (((1ll*sa*x%p*x%p*x%p+1ll*sb*x%p*x%p)%p+1ll*sc*x%p)%p+sd)%p;}
bool check(int k){
for(int i=1;i<=n;i++)b[i]=a[i];
b[1]=max(1,b[1]-k);
for(int i=2;i<=n;i++){
if(b[i]+k<b[i-1])return 0;
if(b[i]<=b[i-1])b[i]=b[i-1];
else b[i]=max(b[i-1],b[i]-k);
}
return 1;
}
int main(){
cin>>n>>sa>>sb>>sc>>sd>>a[1]>>p;
for(int i=2;i<=n;i++)a[i]=(F(a[i-1])+F(a[i-2]))%p;
int l=0,r=p;
while(l<=r){
int mid=(l+r)>>1;
if(check(mid))r=mid-1,ans=mid;
else l=mid+1;
}
cout<<ans<<endl;
return 0;
}

[HEOI2014]南园满地堆轻絮的更多相关文章

  1. BZOJ&lowbar;3613&lowbar;&lbrack;Heoi2014&rsqb;南园满地堆轻絮&lowbar;二分答案

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

  2. 【BZOJ3613】&lbrack;HEOI2014&rsqb;南园满地堆轻絮(贪心)

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

  3. 3613&colon; &lbrack;Heoi2014&rsqb;南园满地堆轻絮

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

  4. &lbrack;luogu&rsqb; P4105 &lbrack;HEOI2014&rsqb;南园满地堆轻絮 &lpar;贪心&rpar;

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

  5. &lbrack;BZOJ3613&rsqb;&lbrack;Heoi2014&rsqb;南园满地堆轻絮 二分答案

    Description 小 Z 是 ZRP(Zombies’ Republic of Poetry,僵尸诗歌*)的一名诗歌爱好者,最近 他研究起了诗词音律的问题.   在过去,诗词是需要编成曲子唱 ...

  6. BZOJ3613&colon; &lbrack;Heoi2014&rsqb;南园满地堆轻絮

    分析: 构造数据时间有些长,可以用秦九韶优化一下. 二分答案+贪心,即:另每一个b[i]尽可能的小的同时满足题意,在枚举过程中,判断是否存在一个b[i-1]>a[i]+x 如果存在,那么向右找 ...

  7. BZOJ 3613&colon; &lbrack;Heoi2014&rsqb;南园满地堆轻絮(二分)

    题面: https://www.lydsy.com/JudgeOnline/problem.php?id=3613 题解: 考虑前面的数越小答案越优秀,于是我们二分答案,判断时让前面的数达到所能达到的 ...

  8. 2018&period;07&period;22 bzoj3613&colon; &lbrack;Heoi2014&rsqb;南园满地堆轻絮(逆序对结论题)

    传送门 做这道题有一个显然的结论,就是要使这个数列单调不减,就要使所有逆序对保证单调不减,也就是求出所有逆序对的最大差值,然后除以2然后就没了. 代码如下: #include<bits/stdc ...

  9. BZOJ3613 HEOI2014南园满地堆轻絮

    不明白在某谷上是怎么标到紫的.二分答案或者发现答案就是最大逆序差的一半. #include<iostream> #include<cstdio> #include<cma ...

随机推荐

  1. gradle 如何操作命令行

    如题: 官方做法: task startApp(type: Exec){task -> workingDir mWorkingDirRoot commandLine 'cd'} 后来我看到这篇文 ...

  2. C&sol;C&plus;&plus; memmove 和 memcpy

    这两个函数用于拷贝字符串或者一段连续的内存,函数原型: void * memcpy ( void * destination, const void * source, size_t num ); v ...

  3. Segment fault及LINUX core dump详解 (zz&rpar;

    C 程序在进行中发生segment fault(core dump)错误,通常与内存操作不当有关,主要有以下几种情况: (1)数组越界. (2)修改了只读内存. (3)scanf("%d&q ...

  4. luigi学习2-在hadoop上运行Top Artists

    一.AggregateArtistsHadoop class AggregateArtistsHadoop(luigi.contrib.hadoop.JobTask): date_interval = ...

  5. socket&period;io&plus;angular&period;js&plus;express&period;js做个聊天应用&lpar;四&rpar;

    接着上一篇 使用angularjs构建聊天室的client <!doctype html> <html ng-app="justChatting"> &lt ...

  6. Hadoop-2&period;2&period;0中国文献—— MapReduce 下一代 -- 公平调度

    目的 此文档描写叙述了 FairScheduler, Hadoop 的一个可插入式的调度器.同意 YARN 应用在一个大集群中公平地共享资源. 简单介绍 公平调度是一种分配资源给应用的方法,以致到最后 ...

  7. C&num;设计模式之十组合模式(Composite)【结构型】

    一.引言   今天我们要讲[结构型]设计模式的第四个模式,该模式是[组合模式],英文名称是:Composite Pattern.当我们谈到这个模式的时候,有一个物件和这个模式很像,也符合这个模式要表达 ...

  8. SSM框架开发web项目系列(三) MyBatis之resultMap及关联映射

    前言 在上篇MyBatis基础篇中我们独立使用MyBatis构建了一个简单的数据库访问程序,可以实现单表的基本增删改查等操作,通过该实例我们可以初步了解MyBatis操作数据库需要的一些组成部分(配置 ...

  9. 【译】第13节---数据注解-Required

    原文:http://www.entityframeworktutorial.net/code-first/required-attribute-dataannotations-in-code-firs ...

  10. this和super用法详解

    这几天看到类在继承时会用到this和super,这里就做了一点总结,与各位共同交流,有错误请各位指正~ this this是自身的一个对象,代表对象本身,可以理解为:指向对象本身的一个指针. this ...