Magazine Ad

题目链接:http://codeforces.com/contest/803/problem/D

——每天在线,欢迎留言谈论。

题目大意:

给你一个数字k,和一行字符 例:

garage for sa-le

其中这行字符串能够在 ' '与'-'的后面分割。例如分割为:(点代表空格)

garage.

for.

sa-

le

求:分割成不超过k行的情况下的最小宽度。(宽度:最大行的字符个数)

思路:

答案一定在 到 所给字符串长度 之间。

①通过二分宽度 来逼近最小宽度。

判断每行宽度<=m 并在k行内完成分割时

②贪心地把每行填的不能再填为止。

AC代码:

 #include <iostream>
#include <cstdio>
#include <string>
using namespace std;
string ss;
int n;
bool isok(int k)//是否能在k宽度下满足条件
{
int a(),b1(),b2();//a行数 b 宽度
for(int i=;i<ss.size();i++)
{
if(i!=ss.size()-)
b2++;
if(ss[i]==' '||ss[i]=='-')
{
if(b2>k)
return false;
if(b1+b2<=k)
{
b1=b1+b2;b2=; }
else
{
b1=b2;b2=;a++;
if(a>n)
return false;
}
}
}
if(a>n)
return false;
return true;
}
int main()
{
cin>>n;getchar();
getline(cin,ss);
ss+=' ';
int i=,j=ss.size(),k;//[i,j)
while(i<j)
{
k=(i+j)/;
if(isok(k))
j=k;
else
i=k+;
}
if(i==ss.size()&&isok(i))
{cout<<i<<endl;return ;}
cout<<i<<endl;return ;
}

2017-05-06 22:03:30

codeforces 803D Magazine Ad(二分+贪心)的更多相关文章

  1. CodeForces 803D Magazine Ad

    二分. 首先把字符串处理成一个数组,二分答案,判断一下即可. #include <cstdio> #include <cmath> #include <set> # ...

  2. 【贪心+二分】codeforces D. Magazine Ad

    codeforces.com/contest/803/problem/D [题意] 给定一个字符串,字符串里可能有空格和连字符‘-’,空格和连字符的意义是一样的,都表示:能在那个位置把字符串分成两部分 ...

  3. Codeforces 1132D - Stressful Training - [二分+贪心+优先队列]

    题目链接:https://codeforces.com/contest/1132/problem/D 题意: 有 $n$ 个学生,他们的电脑有初始电量 $a[1 \sim n]$,他们的电脑每分钟会耗 ...

  4. CodeForces - 343C Read Time (二分+贪心)

    题意:有N个指针头,M个标记,用这N个针头扫描所有的标记,针头之间互不影响,求扫描完M个标记的最短时间 分析:二分搜答案,mid为时间限制,则只要所有的点在mid秒内被扫描到即可. 对于每个指针,若其 ...

  5. AC日记——Magazine Ad codeforces 803d

    803D - Magazine Ad 思路: 二分答案+贪心: 代码: #include <cstdio> #include <cstring> #include <io ...

  6. Magazine Ad CodeForces - 803D(二分 + 贪心,第一次写博客)

    Magazine Ad The main city magazine offers its readers an opportunity to publish their ads. The forma ...

  7. Codeforces Gym 100231B Intervals 线段树+二分+贪心

    Intervals 题目连接: http://codeforces.com/gym/100231/attachments Description 给你n个区间,告诉你每个区间内都有ci个数 然后你需要 ...

  8. 2016-2017 ACM-ICPC CHINA-Final Ice Cream Tower 二分+贪心

    /** 题目:2016-2017 ACM-ICPC CHINA-Final Ice Cream Tower 链接:http://codeforces.com/gym/101194 题意:给n个木块,堆 ...

  9. codeforces803D. Magazine Ad

    D. Magazine Adtime limit per test1 secondmemory limit per test256 megabytesinputstandard inputoutput ...

随机推荐

  1. maven下载其源代码包并关联

    有时我们的源码可能会失去关联,然后需要我们在当前项目中(含有pom.xml文件的那个目录)按住shift然后在当前项目文件夹空白处右键,选择在此处打开命令输入一下命令: 1. 下载所有在POM中的的s ...

  2. ionic 热更新 cordova-hot-code-push

    cordova-hot-code-push ,Cordova热代码推送插件提供了在应用程序中执行基于Web的内容的自动更新的功能.使用此插件可以更新存储在项目的www文件夹中的所有内容. cordov ...

  3. 【jQuery】(4)---jQuery常用事件

    [jQuery入门](4)---jQuery常用事件 一.常用事件列表 1.blur() 当失去焦点时触发.包括鼠标点击离开和TAB键离开. 2.change() 当元素获取焦点后,值改变失去焦点事触 ...

  4. mysql 开发基础系列13 选择合适的数据类型(下)

    一.  BloB和Text 1. 合成索引 合成索引可以提高大文本字段BLOB和Text的查询性能, 合成索引是在表中增加一个字段存放散列值,这种技术只能用于精确匹配的查询,可以使用md5()或sha ...

  5. python 分享一个通过 (key1.key2.key3) 形式获取嵌套字典值的方法

    最近在做接口自动化测试,响应的内容大多数是多层嵌套的json数据,如果一层层的去剥,效率不高,脚本繁重,所以写了一个可以通过(key1.key2.key3)形式获取嵌套字典值的方法,如有不对或者需要优 ...

  6. [Maven]Maven如何得到单独的单元测试报告

    ----------------------------------------------------------------- 原创博文,如需转载请通知作者并注明出处! 博主:疲惫的豆豆 链接:h ...

  7. 新生命Redis组件(.Net Core 开源)

    NewLife.Redis 是一个Redis客户端组件,以高性能处理大数据实时计算为目标.Redis协议基础实现Redis/RedisClient位于X组件,本库为扩展实现,主要增加列表结构.哈希结构 ...

  8. MySQL社区版升级到Percona Server

    出于磁盘空间的考虑,在调研以后把磁盘空间紧张的库的引擎改为tokudb,(在改为tokudb引擎之前是innodb引擎,已经压缩过,但空间还是紧张)关于tokudb的优势各位自行查阅相关资料.要启用t ...

  9. JS 事件循环机制 - 任务队列、web API、JS主线程的相互协同

    一.JS单线程.异步.同步概念 从上一篇说明vue nextTick的文章中,多次出现“事件循环”这个名词,简单说明了事件循环的步骤,以便理解nextTick的运行时机,这篇文章将更为详细的分析下事件 ...

  10. eclipse如何将项目上传到码云

    把Eclipse项目上传到码云的步骤: 一.将代码提交到本地 1.登录码云:新建项目 2.输入项目名: 3.空项目创建成功如下图: 4.右键点击Eclipse的项目,选择“Team”——>“Sh ...