代码有详细解释,二分模拟寻找结果,贪心选择从哪开始浇花,原则就是遇到需要浇花的就浇,至于w可以用线段树来维护线段,但也可以用一个数组标记一下,二分总是有很多问题啊,所以写很多输出用来调试,jiong

/*************************************************************************> File Name: 460c.cpp> Author: yang> Mail:826123027@qq.com > Created Time: 2014年08月22日 星期五 11:17:43************************************************************************/#include<iostream>
using namespace std;
#include<memory.h>
#include<stdio.h>
#define N 100005
int a[N];
int main(){int n,m,w,memory[N],b[N];while(cin>>n>>m>>w){int l=0x7FFFFFFF,r=0;for(int i=0;i<n;i++){cin>>a[i];if(a[i]<l) l=a[i];if(a[i]>r) r=a[i];}r+=m;//最长的高度while(l<=r){//这里一开始没有=号,wa了一次int tempm=m;int mid=(l+r)>>1;for(int i=0;i<n;i++){b[i]=mid-a[i];//b数组用来记录每朵花需要的天数if(b[i]<=0) b[i]=0;}memset(memory,0,sizeof(memory));//记住什么时候结束w长度的浇花int index=0,x=0;//x表示每朵花在因为前面浇花的的影响,也应该得到的浇花天数,例如前面i花浇x天,w为3,那么i+1,i+2的花也得到了x天的浇花for(int i=0;i<n;i++){x+=memory[i];if((b[i]-x)>0){b[i]-=x;tempm-=b[i];if(tempm<0){break;}x+=b[i];//x累计能从前面浇花时得到浇花天数memory[i+w]-=b[i];//长度活了w之后将的得到的浇花天数还回去}   }if(tempm>=0)l=mid+1;else r=mid-1;}printf("%d\n",l-1);}
}

codeforces 460C - Present 二分加模拟相关推荐

  1. Codeforces 460C Present

    题意:有n多初始高度不同的花,每次浇水可以浇相邻的w朵花,每一次浇水花都会长高一个单位,可以浇m次,问怎样浇水才能使最低的那朵花最高.最高是多少. 思路:很显然的最大化最小值问题.仔细观察可以发现并没 ...

  2. *codeforces 460C Present

    新技能get!感谢杰神指导! 题意: 给你一个序列,每次你能让连续的w个值+1,你最多只能执行m次这样的操作.让你使得m次操作后最小值最大. 思路: 最小最大值,二分. 但怎么维护一个序列?可以开这样 ...

  3. CodeForces 1463 C. Busy Robot 模拟

    CodeForces 1463 C. Busy Robot 模拟 题目大意: 有一个一维坐标轴,在最初时刻有个机器人位于坐标 0 0 0 位置,有 n n n 个命令,对于每一个命令在 t i t_i ...

  4. 牛客小白月赛28 E-会当凌绝顶,一览众山小 线段树+二分暴力模拟

    牛客小白月赛28 E-会当凌绝顶,一览众山小 线段树+二分暴力模拟 题意 思路 Code 传送门: https://ac.nowcoder.com/acm/contest/16081/E 题意 登山顺 ...

  5. 运用二分加验证解决 华华给月月准备礼物

    链接:登录-专业IT笔试面试备考平台_牛客网 来源:牛客网 题目描述 二月中旬虐狗节前夕,华华决定给月月准备一份礼物.为了搭建礼物的底座,华华需要若干根同样长的木棍.华华手头上有一些长度参差不齐的木棍 ...

  6. 制袋机横切机程序威纶通触摸屏和三菱3UPLC加模拟量4DA模块,控制两台变频器

    制袋机横切机程序威纶通触摸屏和三菱3UPLC加模拟量4DA模块,控制两台变频器(主机和给料辊筒)和一台送料伺服. 通过触摸屏设定一分钟张数,程序自动算出伺服送料速度,和后面给料速度. 主要是参数计算思 ...

  7. Codeforces Round #262 (Div. 2) 460C. Present(二分)

    题目链接:http://codeforces.com/problemset/problem/460/C C. Present time limit per test 2 seconds memory ...

  8. 【CodeForces - 460C】Present(二分+树状数组)

    题干: 给定N朵花的原先的高度,从左到右排列,最多浇水m天,每天只能浇一次,每次使得连续的w朵花的高度增长1,问最后最矮的花的高度最高是多少. Examples Input 6 2 3 2 2 2 2 ...

  9. Codeforces Round #262 (Div. 2) 460C. Present

    题目连接:http://codeforces.com/problemset/problem/460/C C. Present time limit per test 2 seconds memory ...

  10. CodeForces #379(734A|734B|734C|734D|734E|734F)|二分查找|模拟|树的半径|位运算

    734A: Anton and Danik 题目大意 给定字符串中,D多输出Danik,A多输出Anton,一样多输出Friendship 题解 #include <cstdio> cha ...

最新文章

  1. IOS之TableViewCell重用机制避免重复显示问题
  2. leetcode 365. Water and Jug Problem | 365. 水壶问题(Java)
  3. matlab工程计算及应用 课程名称,《 MATLAB 工程计算及应用》教学大纲课程名称MATLAB 工程计算及应用.pdf...
  4. php fpm www.conf,PHP7中php.ini、php-fpm和www.conf 配置
  5. python 配置文件类库_将自定义python模块增加到类库搜索路径下面
  6. aix oracle版本查看命令,AIX 常用命令
  7. Java获取接口所有实现类的方式
  8. a标签href不跳转 禁止跳转
  9. 【解决】关于sscom不能保存当前窗口到文本文件的问题
  10. 为什么低通滤波器的作用相当于积分器
  11. Typecho独立下载插件安装与使用
  12. 最终结束漂泊的身份-我办理北京人才引进的经历
  13. 坚持#第235天~哎呀,最近培训云计算忙得都把写博客的大事给忘了,赶快捡起来
  14. 图片降噪免费软件有什么?快把这些软件收好
  15. 当“国风综艺”遇上“数字金融”,看国有大行解锁营销新范式
  16. 计算机cdef盘无法显示,win7计算机不显示硬盘分区盘符
  17. 嵌入式心得 (转载)
  18. vue实现购物车简单的功能-单选全选总价计算、批量删除
  19. python10个骚操作
  20. 【Python网络爬虫】实战#181024

热门文章

  1. Perl学习笔记(二)--标量数据
  2. Maven 设置本地仓库的地址
  3. LVM逻辑卷管理学习
  4. joomla2.5传统组件开发解析
  5. 扩展二叉树 (根据特殊的前序遍历建树)
  6. 漫画:什么是单例模式?(转载)
  7. 【转】博客美化(5)为博客或系统添加一个强大的评论系统
  8. 032. asp.netWeb用户控件之一初识用户控件并为其自定义属性
  9. IBatis .NET 开发学习笔记——简要介绍
  10. 兼容性所有浏览器的透明CSS设置