题目:有一种编码方式。串仅仅有小写字母构成,每一个小写字母相应一个数字,如今给你妆化后的数字串,

问有多少个原串与之相应,注意数字串里可能有一个前导0。

分析:搜索。按字母顺序存储映射表,按字母顺序匹配搜索就可以。

说明:注意最多仅仅输出前100个。

  1. #include <iostream>
  2. #include <cstdlib>
  3. #include <cstring>
  4. #include <cstdio>
  5.  
  6. using namespace std;
  7.  
  8. char buf[101];
  9.  
  10. int code[128];
  11. char maps[128][5];
  12. char letter[128];
  13.  
  14. int Count = 0;
  15. char save[101];
  16. void dfs(int s, int d, int n, int m)
  17. {
  18. if (Count == 100) return;
  19. char word[101];
  20. if (s == n) {
  21. save[d] = 0;
  22. printf("%s\n",save);
  23. Count ++;
  24. return;
  25. }
  26. for (int k = 0 ; k < m ; ++ k) {
  27. int count = 0;
  28. for (int i = s ; i < n ; ++ i) {
  29. word[count ++] = buf[i];
  30. word[count] = 0;
  31. if (!strcmp(word, maps[k]) || (word[0] == '0' && !strcmp(word+1, maps[k]))) {
  32. save[d] = letter[k];
  33. dfs(i+1, d+1, n, m);
  34. }
  35. }
  36. }
  37. }
  38.  
  39. int main()
  40. {
  41. int n,t = 1;
  42. char c;
  43. while (~scanf("%d",&n) && n) {
  44. memset(code, 0, sizeof(code));
  45. for (int i = 0 ; i < n ; ++ i) {
  46. getchar();
  47. scanf("%c",&c);
  48. scanf("%d",&code[c]);
  49. }
  50.  
  51. int count = 0;
  52. for (int i = 'a' ; i <= 'z' ; ++ i)
  53. if (code[i] > 0 && code[i] < 100) {
  54. letter[count] = i;
  55. if (code[i] > 9) {
  56. maps[count][0] = code[i]/10 + '0';
  57. maps[count][1] = code[i]%10 + '0';
  58. maps[count][2] = 0;
  59. }else {
  60. maps[count][0] = code[i] + '0';
  61. maps[count][1] = 0;
  62. }
  63. count ++;
  64. }
  65.  
  66. scanf("%s",buf);
  67. printf("Case #%d\n",t ++);
  68. Count = 0;
  69. dfs(0, 0, strlen(buf), count);
  70. printf("\n");
  71. }
  72. return 0;
  73. }

UVa 10950 - Bad Code的更多相关文章

  1. UVa——1593Alignment of Code(string重定向+vector数组)

    UVA - 1593 Alignment of Code Time Limit: 3000MS   Memory Limit: Unknown   64bit IO Format: %lld & ...

  2. uva 交叉染色法10004

    鉴于网上讲交叉染色的资料比较少,于是我把我自己的心得与方法贴出来,方便与大家共同进步. 二分图: 百度百科传送门 wiki百科传送门 判断一个图是否为二分图可以用交叉染色的方法来判断,可以用BFS,也 ...

  3. UVA 11754 - Code Feat(数论)

    UVA 11754 - Code Feat 题目链接 题意:给定一个c个x, y1,y2,y3..yk形式,前s小的答案满足s % x在集合y1, y2, y3 ... yk中 思路:LRJ大白例题, ...

  4. UVA 12436 - Rip Van Winkle&#39;s Code(线段树)

    UVA 12436 - Rip Van Winkle's Code option=com_onlinejudge&Itemid=8&page=show_problem&cate ...

  5. UVA 11557 - Code Theft (KMP + HASH)

    UVA 11557 - Code Theft 题目链接 题意:给定一些代码文本.然后在给定一个现有文本,找出这个现有文本和前面代码文本,反复连续行最多的这些文本 思路:把每一行hash成一个值.然后对 ...

  6. Uva 11754 Code Feat

    题意概述: 有一个正整数$N$满足$C$个条件,每个条件都形如“它除以$X$的余数在集合$\{Y_1, Y_2, ..., Y_k\}$中”,所有条件中的$X$两两互质, 你的任务是找出最小的S个解. ...

  7. UVA 11754 Code Feat (枚举,中国剩余定理)

    转载请注明出处: http://www.cnblogs.com/fraud/          ——by fraud C Code Feat   The government hackers at C ...

  8. UVa 740 - Baudot Data Communication Code

    称号:目前编码,他们shift键被按下,并提出,对应的两个编码,其中,2相应的编码shift操作. 给你适当的编码值.寻求相应的字符串. 分析:模拟.字符串. 简单题,标记shift的升降分类处理就可 ...

  9. Uva 12436 Rip Van Winkle&#39;s Code

    Rip Van Winkle was fed up with everything except programming. One day he found a problem whichrequir ...

随机推荐

  1. BotFramework学习-01

    微软在Build2016大会上表示,未来将是一个充满聊天机器人的世界,为此他们推出了微软Bot Framework,能够允许任何人制作自己的聊天机器人,微软则提供“cognitive microser ...

  2. 【分享】4412开发板POP烧写ubuntu出错,如何挂载emmc分区解决方法

    本文转自:http://bbs.topeetboard.com 平台:4412精英版系统:ubuntu系统 按照教程烧写ubuntu文件系统,TF卡和EMMC分区都完成(总之之前的操作试了几遍都是没问 ...

  3. Zookeeper系列(一)

    一.ZooKeeper的背景 1.1 认识ZooKeeper ZooKeeper---译名为“动物园管理员”.动物园里当然有好多的动物,游客可以根据动物园提供的向导图到不同的场馆观赏各种类型的动物,而 ...

  4. 【Lucene】实现全文索引

    2. Lucene 实现全文检索的流程2.1.索引和搜索流程图 绿色表示索引过程,对要搜索的原始内容进行索引构建一个索引库,索引过程包括:确定原始内容即要搜索的内容 -> 采集文档 -> ...

  5. eureka 注册中心

    1.eureka版本更新后,pom依赖名称变化 v1.2.7spring-cloud-starter-eureka-server v2.0.0spring-cloud-starter-netflix- ...

  6. faster rcnn一些博客

    这个是对faster 问题的一个总结 http://blog.csdn.net/u010402786/article/details/72675831?locationNum=11&fps=1 ...

  7. Less用法注意事项

    (1)引入顺序 引入你的 .less 样式文件的时候要设置 rel 属性值为 “stylesheet/less”: <link rel="stylesheet/less" t ...

  8. 【原】简单shell练习(二)

    1.查找awk # cat /etc/passwd |awk -F ':' 'BEGIN {print "name,shell"} {print $1","$7 ...

  9. vs2008如何新建自己工程的环境变量(局部)和 Windows系统(全局). .

    在vs2008的Project->Property设置里经常会看到类似$(IntDir).$(OutDir).$(ProjectName) 的预定义宏.以vc2008为例,有时候我们在引用别的库 ...

  10. 51nod 1013 3的幂的和 - 快速幂&除法取模

    题目地址:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1013 Konwledge Point: 快速幂:https:/ ...