题目描述

在威斯康辛州牛守志大农场经营者之中,都习惯于请会计部门用连续数字给母牛打上烙印。但是,母牛本身并没感到这个系统的便利,它们更喜欢用它们喜欢的名字来呼叫它们的同伴,而不是用像这个的语句"C'mon, #4364, get along."。请写一个程序来帮助可怜的牧牛工将一只母牛的烙印编号翻译成一个可能的名字。因为母牛们现在都有手机了,使用标准的按键的排布来把将数目翻译为文字:( 除了 "Q" 和 "Z")

2: A,B,C     5: J,K,L    8: T,U,V
3: D,E,F     6: M,N,O    9: W,X,Y
4: G,H,I     7: P,R,S

可接受的名字都被放在这样一个叫作"dict.txt" 的文件中,它包含一连串的少于 5,000个(准确地说是4617个)可被接受的牛的名字。 (所有的名字都是大写的且已按字典序排列) 请读入母牛的编号并返回那些能从编号翻译出来并且在字典中的名字。举例来说,编号 4734 能产生的下列各项名字: GPDG GPDH GPDI GPEG GPEH GPEI GPFG GPFH GPFI GRDG GRDH GRDI GREG GREH GREI GRFG GRFH GRFI GSDG GSDH GSDI GSEG GSEH GSEI GSFG GSFH GSFI HPDG HPDH HPDI HPEG HPEH HPEI HPFG HPFH HPFI HRDG HRDH HRDI HREG HREH HREI HRFG HRFH HRFI HSDG HSDH HSDI HSEG HSEH HSEI HSFG HSFH HSFI IPDG IPDH IPDI IPEG IPEH IPEI IPFG IPFH IPFI IRDG IRDH IRDI IREG IREH IREI IRFG IRFH IRFI ISDG ISDH ISDI ISEG ISEH ISEI ISFG ISFH ISFI 碰巧,81个中只有一个"GREG"是有效的(在字典中)。

写一个程序来对给出的编号打印出所有的有效名字,如果没有则输出NONE。编号可能有12位数字。

输入输出格式

输入格式:

第一行一行包含一个编号(长度可能从1到12)。

接下来4617行,每行一个字符串表示可以被接受的名字

输出格式:

(file namenum.out)

以字典顺序输出一个有效名字的不重复列表,一行一个名字。 如果没有有效名字,输出'NONE'。 //注释:似乎数字只有8^4种排列(1与0不能用)

输入输出样例

输入样例#1: 复制

4734
NMSL
GREG
LSDC
....(太多了不写了)

 感觉这个题目还是不错的,大体思路:dfs。剩余解释放入代码里。

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 #define LL long long
 4 char c[11][4]={{0,0,0,0},{0,0,0,0},{0,'A','B','C'},{0,'D','E','F'},{0,'G','H','I'},{0,'J','K','L'},{0,'M','N','O'},{0,'P','R','S'},{0,'T','U','V'},{0,'W','X','V'}};
 5 //将按键代表的字母放入二维数组,方便枚举
 6 char temp[13];char s[13];int k;
 7 //temp保存临时字母,s为构成字符串
 8 set<string> st;
 9 void dfs(int idx)
10 {
11     if(idx==k+1) {
12         string sss(temp+1,temp+k+1);
13         st.insert(sss);
14         return ;
15
16     }
17     for(int i=1;i<=3;++i)
18     {
19         temp[idx]=c[s[idx]-'0'][i];
20         dfs(idx+1);
21
22     }
23 }
24 int main()
25 {
26
27     cin>>(s+1);
28
29     k=strlen(s+1);//长度
30
31     dfs(1);
32    // int num=0;
33     /*for(set<string>::iterator p=st.begin();p!=st.end();++p)
34     {
35         cout<<*p<<" ";
36         num++;
37
38     }
39     cout<<endl<<num;
40     */
41     string ok;bool r=false;
42     for(int i=1;i<=4617;++i)
43     {
44         cin>>ok;
45         if(st.count(ok)) {r=1;cout<<ok<<endl;}
46     }
47    if(r==false) cout<<"NONE"<<endl;
48
49
50
51 }

View Code

转载于:https://www.cnblogs.com/Auroras/p/10871496.html

P3864 [USACO1.2]命名那个数字 Name That Number相关推荐

  1. USACO命名那个数字 Name That Number

    命名那个数字 Name That Number 题目描述 在威斯康辛州牛大农场经营者之中,都习惯于请会计部门用连续数字给母牛打上烙印. 但是,母牛用手机时并没感到这个系统的便利,它们更喜欢用它们喜欢的 ...

  2. MFC:ID命名和数字约定

    今天早上双击一个刚刚编译完成的应用程序,界面刚刚显示,又自动触发了一个菜单事件,打开了一个网页.真的很意外.关闭窗口,再次双击,又自动打开了一个网页,再关闭,再双击,又不自动打开网页了.这是什么情况? ...

  3. C#LeetCode刷题之#136-只出现一次的数字(Single Number)

    问题 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/4046 访问. 给定一个非空整数数组,除了某个元素只出现一次以外, ...

  4. Bailian4067 回文数字(Palindrome Number)【数学】

    4067:回文数字(Palindrome Number) 总时间限制: 1000ms 内存限制: 65536kB 描述 给出一系列非负整数,判断是否是一个回文数.回文数指的是正着写和倒着写相等的数. ...

  5. 程序员应知必会的思维模型之 7 邓巴数字 (Dunbar‘s Number)

    邓巴数字 (Dunbar's Number) 邓巴数字是对一个人能够保持稳定社会关系的人数的认知极限--在这种关系中,一个人知道每个人是谁,也知道每个人与其他人的关系如何.而对这一数字的确切值则有着一 ...

  6. 领扣-754 到达终点数字 Reach a Number MD

    Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...

  7. python命名规则数字开头的成语_浅谈Python中带_的变量或函数命名

    搜索热词 Python 的代码风格由 PEP 8 描述.这个文档描述了 Python 编程风格的方方面面.在遵守这个文档的条件下,不同程序员编写的 Python 代码可以保持最大程度的相似风格.这样就 ...

  8. python命名规则数字开头的成语_day01 Python基础

    课堂随笔: python基础 一 什么是编程语言? 二 计算机组成部分 CPU 内存 外存 输入设备 输出设备 三 安装与使用 1.安装py thon解释器 2.安装pycharm编辑器 3.创建py ...

  9. python命名规则数字开头的成语_day1 python基础

    python基础 一 什么是编程语言? 编程即程序员根据需求把自己的思想流程按照某种编程语言的语法风格编写下来, 产出的结果就是包含一堆字符的文件 强调: 程序在未运行前跟普通文件无异,只有程序在运行 ...

最新文章

  1. 牛客 Tree(最小深度总和)(两种方法求重心)难度⭐⭐⭐
  2. Linux系统安装gcc/g++详细过程
  3. 090_块元素行内元素行内块元素空元素
  4. MySQL索引分析和优化(转)
  5. win11安装chocolatey软件包管理工具(win版)
  6. java 使用maven 打包 添加本地lib包
  7. 云栖首日:智物智造宣布3年10亿目标
  8. 程序员的自我反省-十条原则
  9. java分页中显示更多_早期更多失败– Java 8
  10. 如何使用JSR107缓存注释
  11. WebRTC Google的 BBR拥塞控制算法解析
  12. Android中的savedInstanceState
  13. 数据结构作业第二章题解
  14. mysql的设计模式_数据库设计中使用设计模式
  15. Go 编码建议——性能篇
  16. 车辆跟踪 matlab,车辆跟踪matlab
  17. 高等数学在计算机中的应用论文1500字,高等数学论文1500字_大一高等数学论文3000字_高等数学论文三千...
  18. 【“计算机科学与技术”专业小白成长系列】 计算机操作系统简介
  19. 10大人生感悟助你走向成功之路
  20. 惠普服务器不进系统,HP服务器无法启动

热门文章

  1. 《算法竞赛入门经典训练指南》pdf
  2. 也谈莫言荣获诺贝尔文学奖后我的“低调”
  3. hihoCoder #1104 Suzhou Adventure
  4. 解决outlook无法启动
  5. 远程桌面 Web 连接
  6. Leetcode-1154 Ordinal Number Of Date(一年中的第几天)
  7. [洛谷 1883]函数 三分法
  8. Python开发【第二篇】:Python基本数据类型
  9. String与Date、Timestamp互转
  10. 【Android笔记】Unable to execute dex: Multiple dex files define 解决方法