codevs 1415 比那名居天子
来源:互联网 发布:方正字体 mac 编辑:程序博客网 时间:2024/04/27 15:02
codevs 1415 比那名居天子
题目描述 Description
在幻想乡, 比那名居天子是管理着『要石』的人。能够引发和镇压地震存在幻想乡, 比
那名居天子是管理着『要石』的人。能够引发和镇压地震存当然也可以用来改变地形。
因为在幻想乡引发震,而被灵梦等人教训了之后天子不 得使用『要石』来修复地面。幻
想乡可以视为 长度为 N个格子的一条横轴 ,其中有些格子的土 地由于震被破坏 (记为
1) ,有 些格子则没(记为 0) 。每次使用『要石』,可以把 。每次使用『要石』,可以把
一段长度 为 L的格子全部修复完成 的格子全部修复完成 的格子全部修复完成 的格子全
部修复完成 的格子全部修复完成 (即将 1变为 0,L覆盖的范围可以超出地图 ),当然 L越
大,使用 时所花费的灵力也就越多。天子希望 最多使用 K次『要石』就将所有被破坏的
土地 全部修复 完成 (即将 1全部变为 0) ,并且花费尽可能小的 灵力。她想知道够达到
这个目,并且花费尽可能小的 灵力。她想知道够达到这个目L最小 是多少。
输入描述 Input Description
输入格式
第 1行: 2个整数, N, K
第 2行: 1个 01 串,长度为 N
输出描述 Output Description
输出格式 第 1行: 1个整数, L的最小值
样例输入 Sample Input
输入样例
10 3
0101111011
样例输出 Sample Output
输出样例
3
数据范围
N<=K<=500000
思路:二分
题解:
#include<iostream>#include<cstdio>using namespace std;char a[600000];int n,k;bool check(int l){ int i=1; int sum=0; while(i<=n) { if(a[i]=='1') { i=i+l; sum++; if(sum>k) { return 0; } } else { i++; } } return 1;}int main(){ scanf("%d%d",&n,&k); scanf("%s",a+1); int l=1,r=n; int ans=10000000; while(l<=r) { int mid=(l+r)/2; if(check(mid)) { r=mid-1; ans=min(ans,mid); } else { l=mid+1; } } printf("%d",ans); return 0;}
2 0
- codevs 1415 比那名居天子
- 比那名居天子
- 天子网络
- 斯比亚之名
- 扶不起的天子
- 谁能辅佐天子
- 序列比对那点事儿
- 【逗比】CodeVS 4328 随机数(关于随机数的讲解)
- Codevs 1574 广义斐波那契数列(矩阵乘法)
- 天子寻龙在线观看,天子寻龙剧情介绍
- 数组名与指针那点破事
- Codevs
- 漫谈斐波那契数列与黄金分割比
- 可伯克刹本来客人各级率比那分颇
- 【bzoj 2705】【codevs 2315】[SDOI2012]Longge的问题(莫比乌斯反演)
- 【codevs】1204 寻找子串位置(KMP模板,比模板还模板)
- 周游六虚与天子望气
- 天子呼来不上船,自称臣是酒中仙
- JavaScript:JS打开一个新窗口,关闭当前窗口
- Widget的简单应用并适配iOS10
- Java静态类
- JS HTML DOM
- Github 多人协作开发
- codevs 1415 比那名居天子
- linux网络编程之System V 消息队列(一):消息队列内核结构和msgget、msgctl 函数
- 解决eclipse中maven项目无法自动搜索依赖
- Android开发中遇到的第三方SDK问题综合
- JavaWeb学习—思维导图
- 洛谷 P1113 杂务
- 分析Java线程池的创建
- Hello World
- 有源滤波电路