CF70B Text Messaging 题解
Content
有一个短信软件最多只能够上传长度为 \(n\) 的消息。现在你有一段话,但不一定能够一次发出。这段话由若干句话组成,以 .、? 或者 ! 为结尾。你不能够将一句话拆开来发,但是如果容量允许,你可以将几句话合并起来发送。求最少需要发送几次。
请注意,同时发送多句话时句与句之间要加上一个空格。
数据范围:\(2\leqslant n\leqslant 255\)。
Solution
我们将每句话分开来存储,然后一个一个加进去,碰到有一句话超过了 \(n\) 就肯定不可能了,否则放进去尽量多的句子,直到不能够再加进去再一次记录答案。
Code
int n, cnt = 1, iee, ans;
string all;
struct sentences {
int len;
string s;
}a[257];
int main() {
getint(n);
getline(cin, all);
int alllen = all.size();
_for(i, 0, alllen - 1) {
if((all[i] == '.' || all[i] == '?' || all[i] == '!') && i != alllen - 1) a[cnt++].s += all[i++];
else a[cnt].s += all[i];
}
_for(i, 1, cnt) {
a[i].len = a[i].s.size();
if(iee + a[i].len + (iee ? 1 : 0) > n) {
if(!iee || a[i].len > n) return printf("Impossible"), 0;
else ans++, iee = 0;
}
iee += a[i].len + (iee ? 1 : 0);
}
printf("%d", ans + 1);
return 0;
}
CF70B Text Messaging 题解的更多相关文章
- TEXT 15 A text a day...
TEXT 15 A text a day... Mar 24th 2006 From The Economist print edition The medical uses of mobile ph ...
- Intent官方教程(6)常见Intent示例,启动日历,时钟,镜头等。
guide/components/intents-common.html 包含:Alarm Clock Calendar Camera Contacts/People App Email File S ...
- GSM cell phone calls use outdated encryption that can now be cracked with rainbow tables on a PC
Decrypting GSM phone calls Motivation. GSM telephony is the world’s most popular communication techn ...
- 直接拿来用 九个超实用的PHP代码片段(二)
每位程序员和开发者都喜欢讨论他们最爱的代码片段,尤其是当PHP开发者花费数个小时为网页编码或创建应用时,他们更知道这些代码的重要性.为了节约编码时间,笔者收集了一些较为实用的代码片段,帮助开发者提高工 ...
- Android 各版本信息 (维基百科)
The following tables show the release dates and key features of all Android operating system updates ...
- Android Application Fundamentals——Android应用程序基础知识
Application Fundamentals--应用程序基础知识 Key classes--关键类 Activity Service BroadcastReceiver ContentProvid ...
- 【Java】-NO.20.Exam.1.Java.1.001- 【1z0-807】- OCEA
1.0.0 Summary Tittle:[Java]-NO.20.Exam.1.Java.1.001-[1z0-807] Style:EBook Series:Java Since:2017-10- ...
- [ English ] Ping sb.
What does "Ping Me" mean? Recently, when I asked a colleague to ping me, he responded wi ...
- 100 webhook implementations
转自: https://streamdata.io/blog/100-webhook-implementations/ 很不错的整理 What is the scope of the event-d ...
随机推荐
- springboot上传文件异常解决方案
配置文件加入: #配置文件传输 spring.servlet.multipart.enabled =true spring.servlet.multipart.file-size-threshold ...
- Kubernetes-网络
前言 本篇是Kubernetes第十一篇,大家一定要把环境搭建起来,看是解决不了问题的,必须实战,此篇文章概念比较多,后续我会继续出一些网络相关实战以及原理探索篇. Kubernetes系列文章: K ...
- 入坑 OI 249561092 周年之际的一些感想
2018.2.10~2021.2.10 又是一年的 2 月 10 日,今天的到来意味着我 OI 生涯的第三年已经结束,即将开启 OI 生涯的第四年了.回顾这三年以来自己由懵懂.无知慢慢变成熟的历程,感 ...
- 【Proteogenomis】工具评述
2015年的综述文章,marker一下,供以后比较试用.蛋白质基因组学研究中的质谱仪与生物信息学方法. 针对蛋白质基因组学的分析研究,总结了质谱仪和蛋白质基因组学流程分析软件的选择,重点评述了常用的生 ...
- goto 的用法
#include <stdio.h> int main() { printf("go to cpy \n"); goto FLASH_CPY; printf(" ...
- jmeter非GUI(cmd命令行)模式的压测和输出测试报告
1.非GUI模式的压测,和GUI有啥不同? 2.非GUI模式怎么搞? 大家打开jmeter的时候,都会看到这个界面: 注意看这句话: Don't use GUI mode for load testi ...
- 学习java的第二十天
一.今日收获 1.java完全学习手册第三章算法的3.2排序,比较了跟c语言排序上的不同 2.观看哔哩哔哩上的教学视频 二.今日问题 1.快速排序法的运行调试多次 2.哔哩哔哩教学视频的一些术语不太理 ...
- day05 django框架之路由层
day05 django框架之路由层 今日内容概要 简易版django请求声明周期流程图(重要) 路由匹配 无名有名分组 反向解析 无名有名解析 路由分发 名称空间 伪静态 虚拟环境 简易版djang ...
- day04 sersync实时同步和ssh服务
day04 sersync实时同步和ssh服务 sersync实时同步 1.什么是实时同步 实时同步是一种只要当前目录发生变化则会触发一个事件,事件触发后会将变化的目录同步至远程服务器. 2.为什么使 ...
- 大数据学习day35----flume01-------1 agent(关于agent的一些问题),2 event,3 有关agent和event的一些问题,4 transaction(事务控制机制),5 flume安装 6.Flume入门案例
具体见文档,以下只是简单笔记(内容不全) 1.agent Flume中最核心的角色是agent,flume采集系统就是由一个个agent连接起来所形成的一个或简单或复杂的数据传输通道.对于每一个Age ...