CF 460C Present 【DP+】主意
给你n高树花。m日,每天连续浇筑w鲜花。一天一次,花长1高度单位
求m天后。最矮的花最高是多少
最大最小问题能够用二分来解
首先我们能够得到全部花的最矮高度即答案的下界,给这个花浇m天即是答案的上界
然后二分枚举答案,检验合法性。
怎样检验合法性
我们用个数组来记录need[i]表示 i点须要浇的次数(从i点開始的区间)
我们再用一个变量has来维护 i点已经被浇了的次数(由i点之前的在浇花范围内的点浇过的次数和)
动态地维护这两个值就可以
假设不够浇的。need[i]前缀和已经大于m天。则return false;
不然 return true;
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <cmath>
#include <algorithm>
#include <iostream>
using namespace std;
const int NN=111111;
int n,m,w;
int need[NN];
int f[NN];
bool can(int s){int a=0;int b=m;for(int i=1;i<=n;i++){if(i>=w)a-=need[i-w];need[i]=max((int)0,s-a-f[i]);a+=need[i];b-=need[i];if(b<0)return false;}return true;
}
int main(){
#ifndef ONLINE_JUDGEfreopen("G:/in.txt","r",stdin);//freopen("G:/myout.txt","w",stdout);
#endifcin>>n>>m>>w;int minn=(1<<30);for(int i=1;i<=n;i++){cin>>f[i];minn=min(f[i],minn);}int maxn=minn+m;int mid=(minn+maxn)/2+1;while(minn<maxn){if(can(mid)){minn=mid;}else{maxn=mid-1;}mid=(minn+maxn)/2+1;}cout<<minn<<endl;
}
版权声明:本文博主原创文章,博客,未经同意不得转载。
转载于:https://www.cnblogs.com/blfshiye/p/4904209.html
CF 460C Present 【DP+】主意相关推荐
- CF 335B. Palindrome(DP)
题目链接 挺好玩的一个题,1Y... 1 #include <cstdio> 2 #include <cstring> 3 #include <iostream> ...
- cf 1060e 树形dp 树上任意两点的距离和
题意: 给出一个树,把树上任意两个相隔一个点的点加一条边,问加完边之后任意两点的距离和是多少. 参考博客 :https://blog.csdn.net/Mr_Treeeee/article/det ...
- CF 811C (DP)
http://codeforces.com/problemset/problem/811/C 题意是一群人在坐火车.先告诉你有n个人,然后告诉你n个目的地(用数字表示的).目的地一样的所有人要么都在一 ...
- Codeforces Round #262 (Div. 2) 460C. Present(二分)
题目链接:http://codeforces.com/problemset/problem/460/C C. Present time limit per test 2 seconds memory ...
- Codeforces Round #262 (Div. 2) 460C. Present
题目连接:http://codeforces.com/problemset/problem/460/C C. Present time limit per test 2 seconds memory ...
- CF #536div2E(dp)
简单入门版:洛谷1280 时间交叉和倒序处理的思路是相同的,相较之下此题更多的条件是:1.每个任务可以在很多个时间点中选一个去做:2.会有捣乱. 解决方法:1.每个时间点选哪个根据规则的话是固定的可预 ...
- Codeforces 460C Present
题意:有n多初始高度不同的花,每次浇水可以浇相邻的w朵花,每一次浇水花都会长高一个单位,可以浇m次,问怎样浇水才能使最低的那朵花最高.最高是多少. 思路:很显然的最大化最小值问题.仔细观察可以发现并没 ...
- *codeforces 460C Present
新技能get!感谢杰神指导! 题意: 给你一个序列,每次你能让连续的w个值+1,你最多只能执行m次这样的操作.让你使得m次操作后最小值最大. 思路: 最小最大值,二分. 但怎么维护一个序列?可以开这样 ...
- CF 379D NewYearLetter [dp+暴力]
题意: 给出k,x,n,m 找出这样的字符串s1,s2,s1长为n,s2长为m 给出规则,sn=sn-1+sn-2 使得第Sk项出现x个"AC"子串 我们很容易知道k次运算后有几个 ...
- CF 474D Flowers DP
状态转移方程 d[i] [1] 表示长度为i最后一个字母为W d[i] [0] 表示长度为i最后一个字母为R d[i] [1] = d[i-k] [1] + d[i-k] [ ...
最新文章
- 国内可用的NTP服务器地址列表 网络时间 服务器
- SyncML协议简述
- TensorFlow2.0(七)--基础API使用
- 素数 [2008年北京航空航天大学计算机研究生机试真题]
- 像数据科学家一样思考:12步指南(上) 1
- vs2012打开c语言贪吃蛇,第一个满意的C语言控制台游戏——贪吃蛇(原创)
- 绘制自己组合的k线图_史上最全K线图大全:搞懂70种K线组合形态,轻松低买高卖不踏空...
- javascript测试题和参考答案
- 大量的linux、H3C、cisco、华为、模拟器、adobe教程
- 直播客户端和浏览器使用桌面共享时出现黑屏等问题
- IDEA卸载和删除注册表
- 如何在家赚钱,盘点5个方法,让你足不出户也能挣钱
- Pytorch - Illegal instruction
- android横竖屏切换动画,Android应用怎么实现屏幕横竖屏切换功能
- 拯救者R9000P网络不可用问题解决
- 常见数字规律:帕累托定律与本福特定律
- FAF世链区块链大会|启元社社长徐道彬: 创新价值成为区块链真正的牵引力
- 原来黑客长这样(外国篇)
- 【制作多媒体演示文稿软件】Focusky教程 | 如何在focusky演示文稿中添加音乐?
- 《数字中国建设整体布局规划》出炉,背后蕴含的数字城市巨大机遇
热门文章
- error LNK2001: 无法解析的外部符号_wWinMainCRTStartup
- 面试考知识点,吾亦很难通过
- 对即时通讯个人信息的一点想法
- 手机输入法并一不一定要横向充满
- 管理感悟:需要什么样的技术文档
- html用于信息展示的表格源码,Html表格
- c++ primer plus 复合类型之数组
- python装饰器举例_Python学习笔记:装饰器(Decorator)
- aspose 转pdf表格大小乱了_关于Aspose.Words转PDF简体中文排版问题申明
- 乘法口诀表 java_利用java 实现一个九九乘法口诀表