版权声明:长风原创 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. CF337C - Quiz

    /*题目大意,给出n道题,假设答对了m道题,求最小的分数,有一个规则,就是连续答对num==k道题那么分数就翻倍,然后num清零,从新开始计数,到大连续k道的时候 要先加上这道题的分数1,再乘以2, ...

  2. Python笔记 #15# Pandas: Missing Data

    10 Minutes to pandas import pandas as pd import numpy as np import matplotlib.pyplot as plt dates = ...

  3. sqlmap简单使用方法

    sqlmap使用 注入点   http://1xx.xxx.xxx.xxxx/dvwa/vulnerabilities/sqli/index.php?id=1&Submit=Submit# 通 ...

  4. Object.defineProperty和Object.defineProperties

    添加属性到对象,或修改现有属性的特性   用法:     Object.defineProperty(object, propertyName, descriptor); 参数:     object ...

  5. OpenDayLight Helium实验一 OpenDaylight的C/S模式实验

    本文基于:OpenDaylight的C/S模式实验而成 C/S 结构,即大家熟知的客户机和服务器结构.它是软件系统体系结构,通过它可以充分利用两端硬件环境的优势,将任务合理分配到Client端和Ser ...

  6. Gym - 100712D Alternating Strings

    http://codeforces.com/gym/100712/attachments 题意: 给出一个01串,现在要切割这个01串,使得每个子串长度都不大于k,并且每个子串不能01交替出现,单个字 ...

  7. UVa 11609 组队(快速幂)

    https://vjudge.net/problem/UVA-11609 题意: 有n个人,选一个或多个人参加比赛,其中一名当队长,有多少种方案?如果参赛者完全相同,但队长不同,算作不同的方案. 思路 ...

  8. 网络编程 单机最大tcp连接数

    在tcp应用中,server事先在某个固定端口监听,client主动发起连接,经过三路握手后建立tcp连接.那么对单机,其最大并发tcp连接数是多少? 如何标识一个TCP连接 在确定最大连接数之前,先 ...

  9. HDU 1495 非常可乐 bfs 难度:1

    http://acm.hdu.edu.cn/showproblem.php?pid=1495 第三个杯子的盛水量可由前两个杯子得到,而前两个杯子状态总数在100*100以内,穷举可实现 #includ ...

  10. sql 时间段内没有的数据等于0

    如何实现没有的时间段中使用0来填充?? if object_id('[A]') is not null drop table [A] go create table [A]([日期] datetime ...