博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
2018ICPC青岛 E - Plants vs. Zombies (二分+模拟)
阅读量:5079 次
发布时间:2019-06-12

本文共 776 字,大约阅读时间需要 2 分钟。

  

题意:有n个植物排成一排,按顺序植物的编号是1-n,每个植物都有一个生长速率,有一个机器人,机器人可以走m步,每走一步,这个机器人就会浇一次水,浇一次水那个植物就会长

自身的生长速率那么高,然后现在要求最大的最小生长值,

 

思路:一般要求最大的最小值都是使用二分来求答案,我们二分出的答案做以下的测试

我们先求出每个位置大于最小值至少到达此位置几步

然后我们直接考虑当前位置是尽量往右走,走来回来增加此位置的生长速率,不过有很多细节,我们遇到负数的时候就不能往当前位置来回了,

肯定是其他的方向路线来走,不过步数基本一样,所以我们可以模拟路线步数出来,然后注意不要爆了long long

 

#include
#include
#include
#include
using namespace std;typedef long long ll;ll n,m;ll a[100001];bool lower(ll x){ ll res=0,sum=0; for(int i=0;i
m) return false; } return true;}int main(){ ll t; scanf("%lld",&t); while(t--) { scanf("%lld%lld",&n,&m); ll l=0,r=1e18; for(int i=0;i

 

转载于:https://www.cnblogs.com/Lis-/p/10115075.html

你可能感兴趣的文章
3.Git基础-查看当前文件状态、跟踪新文件、暂存文件、忽略文件、提交更新、移除文件、移动文件...
查看>>
二分法查找
查看>>
Linux时间设置
查看>>
7-11
查看>>
vue---day02
查看>>
windows下使用mingw和msys编译GOTOBLAS和OpenBLAS
查看>>
sql server 函数详解(5)系统函数
查看>>
ACE在windows下的编译及配置(VS2010)
查看>>
简单选择排序(js版)
查看>>
深度学习Bible学习笔记:第二、三章 线性代数 概率与信息论
查看>>
Windows 7 x64环境下SDK Manager闪退的解决方法
查看>>
Assert(断言)
查看>>
javascript
查看>>
Python python 数据类型的相互转换
查看>>
Json的反序列化 .net Newtonsoft.Json
查看>>
AngularJs angular.uppercase、angular.lowercase、angular.fromJson、angular.toJson
查看>>
只要别人用心一点
查看>>
今天就注册上海ORACLE2用户组014在峰会酒吧!
查看>>
poj1363Rails(栈模拟)
查看>>
白话经典算法系列之六 高速排序 高速搞定
查看>>