版权声明:长风原创 https://blog.csdn.net/u012846486/article/details/28011667

字数统计

Time Limit: 1000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)

Total Submission(s): 1221    Accepted Submission(s): 315
Problem Description
  一天,淘气的Tom不小心将水泼到了他哥哥Jerry刚完毕的作文上。原本崭新的作文纸顿时变得皱巴巴的。更糟糕的是因为水的关系,很多字都看不清了。可怜的Tom知道他闯下大祸了,等Jerry回来一定少不了一顿修理。如今Tom仅仅想知道Jerry的作文被“破坏”了多少。
  Jerry用方格纸来写作文,每行有L个格子。(图1显示的是L = 10时的一篇作文,’X’表示该格有字。该文有三个段落)。

图1

图2

  图2显示的是浸水后的作文 。‘O’表示这个位置上的文字已经被破坏。但是Tom并不知道原先哪些格子有文字,哪些没有,他唯一知道的是原文章分为M个段落,而且每一个段落另起一行,空两格开头,段落内部没有空格(注意:不论什么一行仅仅要开头的两个格子没有文字就可能是一个新段落的開始,比如图2中可能有4个段落)。
  Tom想知道至少有多少个字被破坏了,你能告诉他吗?

 

Input
  測试数据有多组。每组測试数据的第一行有三个整数:N(作文的行数1 ≤ N ≤ 10000)。L(作文纸每行的格子数10 ≤ L ≤ 100),M(原文的段落数1 ≤ M ≤ 20),用空格分开。
  接下来是一个N × L的位矩阵(Aij)(相邻两个数由空格分开),表示被破坏后的作文。当中Aij取0时表示第i行第j列没有文字(或者是看不清了),取1时表示有文字。

你能够假定:每行至少有一个1,而且全部数据都是合法的。

 

Output
  对于每组測试输出一行,一个整数,表示至少有多少文字被破坏。

 

Sample Input

10 10 3
0 0 0 1 1 1 0 1 1 0
1 1 0 0 0 1 1 1 0 0
0 0 1 1 0 0 1 1 1 1
1 1 1 1 1 1 1 1 1 1
1 0 1 0 1 1 1 0 0 0
1 1 0 0 1 1 1 1 1 1
1 1 1 1 1 1 1 0 0 0
0 0 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1
0 0 0 0 1 1 1 1 1 0
 

Sample Output

19

细节要注意。

#include <stdio.h>
#include <algorithm>
using std::sort;
int N, L, M, arr[10002][102], ans, id;
struct Node{
int num, pre;
} pra[10002]; int getPre(int i){
if(--i == 0) return 0;
int j = L;
while(arr[i][j] == 0) --j;
return L - j;
} void addPre(int i){
if(--i == 0) return;
int j = L;
while(arr[i][j] == 0){
++ans;
arr[i][j] = 1;
--j;
}
} bool cmp(Node a, Node b){
return a.pre < b.pre;
} int main(){
int left, right;
while(scanf("%d%d%d", &N, &L, &M) == 3){
id = ans = 0; --M;
for(int i = 1; i <= N; ++i){
left = L; right = 1;
for(int j = 1; j <= L; ++j){
scanf("%d", &arr[i][j]);
if(arr[i][j]){
if(j < left) left = j;
if(j > right) right = j;
}
}
if(left > 2){
for(int j = 3; j <= right; ++j){
if(arr[i][j] == 0) ++ans, arr[i][j] = 1;
}
if(i != 1){
pra[id].num = i;
pra[id++].pre = getPre(i);
}
}else{
addPre(i);
for(int j = 1; j <= right; ++j){
if(arr[i][j] == 0) ++ans, arr[i][j] = 1;
}
}
} sort(pra, pra + id, cmp);
id = id - M; //须要合并的段落数
for(int i = 0; i < id; ++i)
ans += pra[i].pre + 2;
printf("%d\n", ans);
}
return 0;
}

HDU1735 字数统计的更多相关文章

  1. Javascript字数统计

    字数统计功能,原理是给textarea添加onKeyup事件,事件读取textarea内容并获得长度,并赋值给统计字数的那个文本节点,这里有一点要注意的是添加onKeypress和onKeydown事 ...

  2. 工具,如何去掉百度编辑器 ueditor 元素路径、字数统计等

    去掉如下截图: 在百度编辑器 ueditor 根目录下: ueditor.config.js 文件中 搜索并将参数elementPathEnabled设置成false即可 常用功能开关如下: ,ele ...

  3. textarea还剩余字数统计

    <!DOCTYPE html><html><head> <meta charset="utf-8" /> <title> ...

  4. ios开发之--textview意见反馈页面(占位label,字数统计,提交按钮的交互设置)

    记录一个页面的功能: textview的占位符,字数统计,提交按钮的交互设置,具体效果图如下:

  5. HDU 1735 字数统计(模拟+一点点贪心的思想)

    题目戳我 字数统计 Time Limit: 1000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total S ...

  6. Hexo添加字数统计、阅读时长

    统计插件 配置 NexT 主题默认已经集成了文章[字数统计].[阅读时长]统计功能,如果我们需要使用,只需要在主题配置文件 _config.yml 中打开 wordcount 统计功能即可.如下所示: ...

  7. 【百度编辑器ueditor】工具,如何去掉百度编辑器 ueditor 元素路径、字数统计等

    去掉如下截图: 在百度编辑器 ueditor 根目录下: ueditor.config.js 文件中 搜索并将参数elementPathEnabled设置成false即可 常用功能开关如下: ,ele ...

  8. textarea还剩余字数统计,支持复制粘贴的时候统计字数

    <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...

  9. js 实现textarea剩余字数统计

    1 针对textarea剩余字数统计 2 <div class="fankui-textarea"> 3 <span>留言:</span> &l ...

随机推荐

  1. kafka环境安装

    源码包下载: http://archive.apache.org/dist/kafka/1.0.0/ 集群环境: master 192.168.1.99 slave1 192.168.1.100 sl ...

  2. 项目中使用protobuf

    在互种系统中数据通信或数据交换可以使用protobuf,他比json.xml的数据量要小一些. 另外因为消息要单独写一个.proto文件,来生成各平台的代码,所以对跨平台通信来说也比较友好. 一.使用 ...

  3. c++第三十天

    P154~p159:语句1.通常情况下顺序执行. 2.C++提供一组控制流(flow-of-control)语句以支持更复杂的执行路径. 3.空语句的作用:语法上需要一条语句,但是逻辑上不需要. ) ...

  4. Python3.x:定时获取页面数据存入数据库

    Python3.x:定时获取页面数据存入数据库 #间隔五分钟采集一次数据入库 import pymysql import urllib.request from bs4 import Beautifu ...

  5. 【问题解决:未找到端口号】启动报错Circular placeholder reference 'server.port' in property definitions

    问题描述: 启动spring boot项目时报错:Circular placeholder reference 'server.port' in property definitions 解决过程: ...

  6. 上海仪电Azure Stack技术深入浅出系列1:谈Azure Stack在私有云/混合云生态中的定位

    2.2 Azure Stack Azure Stack到2017年7月才提供GA版本,但目前还是可以通过技术预览版了解该技术.Azure Stack本质上是核心Azure服务的一个私有实例. Micr ...

  7. HDU - 5917 水题

    题意:n个点m条边,找点集个数,点集满足有任意三个点成环,或者三个点互不相连 题解:暴力复杂度O(n^5/120*O(ok))==O(能过) //#pragma comment(linker, &qu ...

  8. hdu2177威佐夫博弈

    输的话输出0,赢就输出1并且输出第一步走后的数目 威佐夫博弈判断胜负 原理及常见题型求法: http://blog.csdn.net/y990041769/article/details/216940 ...

  9. 阿里云服务器购买 发布web项目全过程

    http://blog.csdn.net/liona_koukou/article/details/50496946

  10. jQuery.prop() 函数详解

    prop()函数用于设置或返回当前jQuery对象所匹配的元素的属性值. 该函数属于jQuery对象(实例).如果需要删除DOM元素的属性,请使用removeProp()函数. 语法jQuery 1. ...