二分。

首先把字符串处理成一个数组,二分答案,判断一下即可。

#include <cstdio>
#include <cmath>
#include <set>
#include <cstring>
#include <algorithm>
using namespace std; int p;
int a[1000010],sz;
char s[1000010]; void work()
{
int sum=0;
for(int i=0;s[i];i++)
{
sum++;
if(s[i]==' ')
{
a[sz++] = sum;
sum=0;
}
else if(s[i]=='-')
{
a[sz++] = sum;
sum=0;
}
}
if(sum)
{
a[sz++] = sum;
}
} bool check(int x)
{
int sum=0;
int y=0; for(int i=0;i<sz;i++)
{
if(a[i]>x) return 0;
} for(int i=0;i<sz;i++)
{
if(sum+a[i]<=x)
{
sum=sum+a[i];
}
else
{
sum = a[i];
y++;
}
} if(sum) y++; if(y<=p) return 1;
return 0;
} int main()
{
scanf("%d",&p);
getchar();
gets(s);
work(); int ans,L=1,R=1000000; while(L<=R)
{
int mid = (L+R)/2;
if(check(mid)) ans = mid,R = mid-1;
else L = mid+1;
} printf("%d\n",ans); return 0;
}

最新文章

  1. WPF +MVVM(Caliburn.Micro)项目框架
  2. C#使用Log4Net记录日志
  3. Android成长日记-APP的签名和打包
  4. cocos2d-x中CCCallFunc CCCallFuncN CCCallFuncND的区别和使用示例
  5. sr4000自带API和opencv结合获取图像
  6. easyui tabs 真正刷新用法
  7. android学习7——canvas.concat(Matrix matrix)作用
  8. GridView用法详解
  9. ionic3 自动创建启动背景splash以及图标icon
  10. 方便使用FFMPEG的经验
  11. C# xml数组的序列和反序列化
  12. 学习笔记(二)--Lucene简介
  13. 微服务架构day01
  14. PAT甲题题解-1091. Acute Stroke (30)-BFS
  15. NetCore中使用DynamicExpresso、Z.Expressions、LambdaParser进行安字符串求值
  16. SQL死锁知识及解决办法
  17. SQLServer随机取记录
  18. CentOS7.2配置Hadoop2.6.5
  19. Entity Framework优化一:引发了“System.Data.Entity.Core.EntityCommandExecutionException”类型的异常
  20. thinkphp 调用wsdl接口实例化SoapClient抛出异常

热门文章

  1. TCP协议基础知识及wireshark抓包分析实战
  2. 利用Zynq Soc创建一个嵌入式工程
  3. springsecurity basic 认证
  4. 编程笔记:JavaScript 中的类型检查
  5. 【POJ】3070 Fibonacci
  6. 自定义li项目符号
  7. LintCode之二叉树的最大节点
  8. H5小游戏——看你有多色
  9. Vue SPA 首屏加载优化实践
  10. Axure RP 授权码