时间限制: 1000m      内存限制:65536kB
描述
Alex喜欢填词游戏。填词是游戏是一个非常简单的游戏。填词游戏包括一个N * M大小的矩形方格盘和P个单词。玩家需要把每个方格中填上一个字母使得每个单词都能在方格盘上找到。每个单词都能找到要满足下面的条件:

每个方格都不能同时属于超过一个的单词。一个长为k的单词一定要占据k个方格。单词在方格盘中出现的方向只能是竖直的或者水平的。

你的任务是首先在方格盘上找到所有的单词,当然在棋盘上可能有些方格没有被单词占据。然后把这些没有用的方格找出来,把这些方格上的字母按照字典序组成一个“神秘单词”。

如果你还不了解规则,我们可以具一个例子,比如在下图中寻找单词BEG和GEE。

输入
输入的第一行包括三个整数N,M和P (2 <= M, N <= 10, 0 <= P <=100)。接下来的N行,每行包括M个字符,来表示方格盘。接下来P行给出需要在方格盘中找到的单词。

输入保证填词游戏至少有一组答案。

输入中给出的字母都是大写字母。

输出
输出“神秘单词”,注意“神秘单词”中的字母要按照字典序给出。
样例输入
3 3 2EBGGEEEGEBEGGEE
样例输出
EEG
(1)、源代码:
#include<stdio.h>#include<string.h>

int main(){      int ch[26];      memset(ch,0,sizeof(ch));      int i,n,m,p;      char str[200];      char c;      scanf("%d%d%d",&n,&m,&p); 

     while(n--){  scanf("%s",str);       for(i=0;str[i]!='\0';i++)             ch[str[i]-'A']++; }      while(p--){            scanf("%s",str);            for(i=0;str[i]!='\0';i++)                  ch[str[i]-'A']--;      }      for(i=0;i<26;i++){            if(ch[i]!=0)                  while(ch[i]--){                        c='A'+i;                        printf("%c",c);                  }      }      return 0;}

(2)、解题思路
这道题的巧妙之处在于输入保证填词游戏至少有一组答案——这说明我们不必寻找单词所在的位置,只要去掉这些单词所占用的字母就可以了。“神秘单词”按字典序给出,则只要定义一个有26个元素的数组,记录每个字母出现的次数,当读入单词时,相应字母的元素值减一即可。最后将数组中非0的元素对应字母一次输出。
(3)、出错原因:
a、对题目理解不透彻,移位要找出单词的填法;
b、未知:我的C++版代码如下,总是wrong answer,不知原因,求解释:
#include <iostream>
#include <cstdio>
#include <string>
#include <cstring>

using namespace std;

int main()
{
     int M, N, P;
     cin >> M >> N >> P;
     char c;
     int i, j;
     int num[26];
     memset(num, 0, sizeof(num));
     for(i = 0; i < N; i++)
     {
          string word;
          cin >> word;
          for(j = 0; word[j] != '\0'; j++)
               num[word[j] - 'A']++;
     }
     for(i = 0; i < P; i++)
     {
          string word;
          cin >> word;
          for(j = 0; word[j] != '\0'; j++)
               num[word[j]-'A']--;
     }
     for(i = 0; i < 26; i++)
     {
          if(num[i] != 0)
               for(j = 0; j < num[i]; j++)
               {
                    c = 'A' + i;
                    cout << c;
               }
     }
     return 0;
}

转载于:https://www.cnblogs.com/lydf-2012/archive/2012/04/12/2444588.html

POJ 2801 为什么相同功能的代码会wrong answer呢?求解释~~相关推荐

  1. 用Eclipse的snippets功能实现代码重用

    snippets功能实现代码重用 Snippets 代码片段是Eclipse的一个插件. 很多时候可以通过这个功能,重复使用常用的代码片段,加快开发效率. 创建一个代码段的步骤: 在Eclipse的e ...

  2. python 屏幕录制_Python实现屏幕录制功能的代码

    前段时间做视频时需要演示电脑端的操作,因此要用到屏幕录制,下载了个迅捷屏幕录制,但是没有vip录制的视频有水印且只能录制二分钟,于是鄙人想了下能不能通过万能的python来实现呢?经过一晚上的尝试发现 ...

  3. python编程实例视屏-使用Python实现视频下载功能实例代码

    最近一两年短视频业务风生水起,各个视频网站都有各自特色的短视频内容.如果有一个程序可以把各大视频网站的热门用户最新发布的视频下载下来,不仅方便了观看,还可以将没有版权的视频发布在个人社交网站上,增加自 ...

  4. java生成验证码实例_Java生成验证码功能实例代码

    页面上输入验证码是比较常见的一个功能,实现起来也很简单.给大家写一个简单的生成验证码的示例程序,需要的朋友可以借鉴一下. 闲话少续,直接上代码.代码中的注释很详细. package com.SM_te ...

  5. jsp中未登录用户也可以浏览页面的功能实现代码

    jsp中未登录用户也可以浏览页面的功能实现代码 <%!                int count=0;               %>                  < ...

  6. python sftp_Python使用sftp实现上传和下载功能(实例代码)

    在Python中可以使用paramiko模块中的sftp登陆远程主机,实现上传和下载功能. 1.功能实现 根据输入参数判断是文件还是目录,进行上传和下载 本地参数local需要与远程参数remote类 ...

  7. .NET常用功能和代码[总结与收藏] (转)

    .NET常用功能和代码[总结与收藏] 1. 打开新的窗口并传送参数: 传送参数: response.write("<script>window.open('*.aspx?id=& ...

  8. JS实现星星评分功能实例代码(两种方法)

    转载自   JS实现星星评分功能实例代码(两种方法) 一.方法1 1.用到图片 2.结构和样式 <!DOCTYPE html> <html lang="en"&g ...

  9. java wed登录面 代码_JavaWeb实现用户登录注册功能实例代码(基于Servlet+JSP+JavaBean模式)...

    下面通过通过图文并茂的方式给大家介绍JavaWeb实现用户登录注册功能实例代码,一起看看吧. 一.Servlet+JSP+JavaBean开发模式(MVC)介绍 Servlet+JSP+JavaBea ...

最新文章

  1. scrapy 分布式爬虫- RedisSpider
  2. 复习笔记(三)——C++类和对象
  3. 教你玩转CSS 媒体类型
  4. leetcode226 反转二叉树
  5. Memchache 总结
  6. 基于点特征的各位姿求解算法对比(pose-estimation-compared)
  7. 用unity制作能量护盾(2)
  8. php fsockopen 异步,异步执行PHP任务fsockopen的干货
  9. 【渝粤教育】电大中专跨境电子商务理论与实务 (30)作业 题库
  10. 解决办法:安装cuda时一直失败(如提示Reboot required to continue)
  11. easyui图标对照 --由于文章历史久远, 博主放弃治疗了
  12. ffmpeg/avconv
  13. Quartus-II入门(全加器)
  14. 气凝胶产业链都有?-供应银纳米粒子修饰碳球/石墨烯复合气凝胶/磷钨杂多酸修饰ZrO_2气凝胶/柠檬酸修饰纤维素气凝胶定制
  15. 计算机机房配置发电设备,电器设施设备配置安全要求
  16. informix GBase -179 ISAM error: No free disk space for sort.
  17. 微信小程序 lookup 联表查询
  18. 在Hexo搭建的博客中插入音乐或者视频
  19. fedora 火狐 html5,Fedora22火狐如何安装Adobe Flash Player
  20. Unity制作Animation帧动画

热门文章

  1. xml约束和实际场景使用
  2. Android开发中手机存储路径问题
  3. RRT,RRT*,A*,Dijkstra,PRM算法
  4. 函数指针——typedef函数指针
  5. 2.1.1 物理层接口特性、数据通信模型、物理层基本概念(数据、信号、码元 、信源、信道、信宿 、速率、波特、带宽)
  6. 1.1.2 操作系统的特征(并发、共享、虚拟、异步)
  7. gd动态曲线 php_PHP用GD实现折线图
  8. 乐鑫代理启明云端分享|ESP32驱动1.54inch(240*240)彩屏
  9. 数字转字符函数_C语言常用的几个工具函数
  10. 数据有了,如何构建数据资产?