2801:填词
描述
Alex喜欢填词游戏。填词是游戏是一个非常简单的游戏。填词游戏包括一个N * M大小的矩形方格盘和P个单词。玩家需要把每个方格中填上一个字母使得每个单词都能在方格盘上找到。每个单词都能找到要满足下面的条件:
每个方格都不能同时属于超过一个的单词。一个长为k的单词一定要占据k个方格。单词在方格盘中出现的方向只能是竖直的或者水平的。
你的任务是首先在方格盘上找到所有的单词,当然在棋盘上可能有些方格没有被单词占据。然后把这些没有用的方格找出来,把这些方格上的字母按照字典序组成一个“神秘单词”。
如果你还不了解规则,我们可以具一个例子,比如在下图中寻找单词BEG和GEE。

输入
输入的第一行包括三个整数N,M和P (2 <= M, N <= 10, 0 <= P <=100)。接下来的N行,每行包括M个字符,来表示方格盘。接下来P行给出需要在方格盘中找到的单词。
输入保证填词游戏至少有一组答案。
输入中给出的字母都是大写字母。
输出
输出“神秘单词”,注意“神秘单词”中的字母要按照字典序给出。
样例输入
3 3 2
EBG
GEE
EGE
BEG
GEE
样例输出
EEG
来源
翻译自Northeastern Europe 2001, Northern Subregion的题目

问题链接:Bailian2801 填词 POJ1629 ZOJ1546 Fillword
问题描述:(略)
问题分析
    这个问题题面写的十分难懂,充满陷阱(坑很多)。其实就是两组单词,用后一组去划前一组的字母,剩下的字母就是神秘单词。输入都是大写字母,题面似乎也没有说清楚。
    输出要求是按字典顺序输出,如果进行排序就比较麻烦了,所以用桶排序的思想,把两组单词中的字母分别进行一下计数(一个正计数,一个倒计数),然后按照字母顺序输出结果。
程序说明:(略)
参考链接:(略)
题记
    桶排序是最好用的排序,排序对象值范围有限的话。

AC的C语言程序如下:

/* Bailian2801 填词 POJ1629 ZOJ1546 Fillword */#include <stdio.h>
#include <string.h>#define N 26
#define M 10int ccnt[N];
char s[M * M + 1];int main(void)
{int n, m, p, i, j;while(~scanf("%d%d%d", &n, &m, &p)) {memset(ccnt, 0, sizeof(ccnt));for(i = 1; i <= n; i++) {scanf("%s", s);for(j = 0; s[j]; j++)ccnt[s[j] - 'A']++;}for(i = 1; i <= p; i++) {scanf("%s", s);for(j = 0; s[j]; j++)ccnt[s[j] - 'A']--;}/* 输出结果 */for(i = 0; i < N; i++)if(ccnt[i])for(j = 1; j <= ccnt[i]; j++)putchar('A' + i);putchar('\n');}return 0;
}

Bailian2801 填词 POJ1629 ZOJ1546 Fillword【排序】相关推荐

  1. 百练(九~十二)题解

    百练(九) Bailian2801 填词 POJ1629 ZOJ1546 Fillword[排序] - 海岛Blog - CSDN博客 POJ1088 Bailian1088 滑雪[DFS+记忆化搜索 ...

  2. 程序设计入门经典题解(百练篇)

    参考链接:PKU百练题解(Bailian) Bailian1017 装箱问题[贪心] - 海岛Blog - CSDN博客 POJ1088 Bailian1088 滑雪[DFS+记忆化搜索]_海岛Blo ...

  3. 数据库中自定义排序规则,Mysql中自定义字段排序规则,Oracle中自定义字段排序规则,decode函数的用法,field函数的用法

    数据库中自定义排序 场景:有一张banner表,表中有一个status字段,有0, 1, 2三个状态位,我想要 1,0,2的自定义排序(这里是重点),然后再进行之上对sequence字段进行二次排序( ...

  4. 伍六七带你学算法 进阶篇-排序算法

    给定一个整数数组 nums,将该数组升序排列. 示例 1: 输入:[5,2,3,1] 输出:[1,2,3,5] 示例 2: 输入:[5,1,1,2,0,0] 输出:[0,0,1,1,2,5] 各排序算 ...

  5. python中排序英文单词怎么写_Python实现对文件进行单词划分并去重排序操作示例...

    本文实例讲述了Python实现对文件进行单词划分并去重排序操作.,具体如下: 文件名:test1.txt 文件内容: But soft what light through yonder window ...

  6. Redis 笔记(07)— sorted set 类型(添加、删除有序集合元素、获取分数范围内成员、按score排序、返回集合元素个数)

    zset 可能是 Redis 提供的最为特色的数据结构,一方面它是一个 set,保证了内部 value 的唯一性,另一方面它可以给每个 value 赋予一个 score,代表这个 value 的排序权 ...

  7. Redis 高级特性(1)—— 事务 过期时间 排序

    1. Redis 高级特性 -- 事务 事务概念 Redis 中的事务 (transaction)是一组命令的集合.事务同命令一样是 Redis 的最小执行单位,一个事务中的命令要么都执行,要么都不执 ...

  8. 算法图解/二分查找/简单查找/选择排序/递归算法/快速排序算法/

    大 O 表示法 大 O 表示法在讨论运行时间时,log 指的都是 log2 大 O 表示法指出了算法有多快,让你能够比较操作数,它指出了算法运行时间的增速,而并非以秒为单位的速度. 大 O 表示法指出 ...

  9. python 实现桶排序

    前言 桶排序(Bucket sort)或所谓的箱排序,是一个排序算法,工作的原理是将数组分到有限数量的桶里.每个桶再个别排序(有可能再使用别的排序算法或是以递归方式继续使用桶排序进行排序).桶排序是鸽 ...

最新文章

  1. 文巾解题 994. 腐烂的橘子
  2. QML基础类型之size
  3. python求积分基于numpy_NumPy 实现梯形法积分
  4. CSS布局(五) 网页布局方式
  5. c语言 prototype_(创建型模式)Prototype——原型模式
  6. c语言谭浩强第八章函数PPT,清华谭浩强C语言 第8章 函数.ppt
  7. 解决无法下载安装Android SDK的问题
  8. 使用阿里云加速器 配置 Docker 镜像加速器
  9. 锐浪报表开发Web版
  10. 文件的文件名翻译重命名技巧操作
  11. 手机app支付宝支付和苹果支付分析
  12. Mac通过转接口用千兆网线连接电信宽带
  13. 自考大专计算机专业英语翻译,大专英语自考(上册)课文翻译及习题答案(138页)-原创力文档...
  14. jQuery(简介、特点、使用方法、【重点】jQuery的选择器:是jQuery的灵魂、jQuery的属性:操作标签的属性)
  15. Android的增量更新
  16. 明日之后服务器崩了最新消息,《明日之后》崩了是什么原因?明日之后崩了怎么登陆服务器...
  17. Linux系统管理----用户权限
  18. nessus漏洞报告英文翻译中文脚本
  19. 怎么清洁计算机主机内部,机箱怎么防尘 机箱清灰步骤【教程】
  20. 生产系统搭建spark,基础环境注意事项

热门文章

  1. Silverlight读取Zip文件中的图片与视频
  2. Lua介绍极其在C#项目中的应用
  3. 特斯拉电池检测_特斯拉风格的割草机,也是采用电池供电
  4. db2 控制台执行创建函数语句_DB2 从命令行创建SQL存储过程
  5. insert执行成功 没有数据_Python—接口测试数据库封装实现原理
  6. Hive和hdfs的关系与区别
  7. oracle表空间暴涨,Oracle 11g SYSTEM表空间暴增问题
  8. python 数据库模块_MySQl 数据库 之 python模块 pymysql 简单介绍
  9. Linux安装docker及docker基本操作
  10. autoreleasepool底层探索