1. /* 解码 _________________________________________________________________________________
  2.  
  3. #include <iostream>
  4. #include <map>
  5. #include <cmath>
  6. #include <vector>
  7. #include <cstdio>
  8. #include <string>
  9. #include <cstring>
  10. #include <algorithm>
  11. using namespace std;
  12. #define fir first
  13. #define sec second
  14. #define pb(x) push_back(x)
  15. #define mem(A, X) memset(A, X, sizeof A)
  16. #define REP(i,l,u) for(int (i)=(int)(l);(i)<=(int)(u);++(i))
  17. #define rep(i,l,u) for(int (i)=(int)(l);(i)>=(int)(u);--(i))
  18. #define foreach(e,x) for(__typeof(x.begin()) e=x.begin();e!=x.end();++e)
  19. typedef long long LL;
  20. typedef unsigned long long ull;
  21. typedef pair<long,long> pll;
  22.  
  23. LL T,n;
  24. int k;
  25. const int mod=1e9+7;
  26. const int maxn=1e5+10;
  27. char s[2][6][10],ans[10];
  28. int cnt;
  29. bool dfs(int col)
  30. {
  31. if(col==5)
  32. {
  33. if(++cnt==k)
  34. {
  35. ans[5]='\0';
  36. printf("%s\n",ans);
  37. return true;
  38. }
  39. else
  40. return false;
  41. }
  42. else
  43. {
  44. bool vis[2][26];
  45. mem(vis,false);
  46.  
  47. REP(i,0,1)
  48. REP(j,0,5)
  49. vis[i][ s[i][j][col]-'A' ]=true; //只处理当前列对应的可能位置,搜索时只处理当前层。
  50.  
  51. REP(j,0,25)
  52. if(vis[0][j]==true && vis[1][j]==true)
  53. {
  54. ans[col]=j+'A';
  55. if( dfs(col+1) ) return true;
  56. }
  57. }
  58. return false;
  59.  
  60. }
  61.  
  62. int main()
  63. {
  64. freopen("in.txt","r",stdin);
  65. //while(cin>>n)
  66. while(scanf("%d",&T)!=EOF)
  67. {
  68. REP(kase,1,T)
  69. {
  70. scanf("%d",&k);
  71. REP(i,0,1)
  72. REP(j,0,5)
  73. {
  74. scanf("%s",&s[i][j]);
  75. //printf("%s\n",s[i][j]);
  76. }
  77. cnt=0;
  78. if(!dfs(0)) puts("NO");
  79. }
  80.  
  81. }
  82. return 0;
  83. }
  84.  
  85. /*
  86. note : 编码理论
  87. 本题运用的暴力方法,编写简单,
  88. 如果用直接构造性的编码,实现时要注意更多的细节。
  89.  
  90. debug :
  91. optimize:
  92. 直接操纵输入的字符,减少中间的传递,简化过程。
  93. 二维的数组字母表,处理多个相似的对象时进行优化。
  94. */

uva1262的更多相关文章

  1. 10-8 uva1262密码

    题意:有两个图,每一列都存在的字母选作密码,就第k大的密码 思路: 找出各个位置上的密码, 假设: 第1个字母只能是{A,C,D,W}, 第2个字母只能是{B,O,P}, 第3个字母只能是{G,M,O ...

  2. UVA 1262 Password

    https://vjudge.net/problem/UVA-1262 字典序第k小 注意两点: 1. k-- 2.去重 #include<cstring> #include<cst ...

  3. UVA 1262 Password 暴力枚举

    Password Time Limit: 3000ms Memory Limit: 131072KB This problem will be judged on UVA. Original ID:  ...

随机推荐

  1. JavaScript之全局变量和隐式全局变量

    通过var创建的全局变量(任何函数之外的程序中创建)是不能被删除的. 无var创建的隐式全局变量(无视是否在函数中创建)是能被删除的.

  2. Hadoop:输入,输出,key,value格式

    map: (K1, V1) → list(K2, V2) reduce: (K2, list(V2)) → list(K3, V3) (K1, V1): jobConf.setInputKeyClas ...

  3. Beagleboard xm sd卡恢复

    来源于:http://circuitco.com/support/index.php?title=BeagleBoard-xM windows下恢复更加简单,推荐windows系统下恢复. To in ...

  4. Spearman秩相关系数和Pearson皮尔森相关系数

    1.Pearson皮尔森相关系数 皮尔森相关系数也叫皮尔森积差相关系数,用来反映两个变量之间相似程度的统计量.或者说用来表示两个向量的相似度. 皮尔森相关系数计算公式如下:

  5. 《Java应用程序(Application)》

    在编写Java应用程序(Application)时可以这样: 1,定义包名. 2, 导入相关的包. 3, 定义一个类. 4,定义相关变量. 5,定义构造函数.(在构造函数内调用init()方法和add ...

  6. 第六篇——初尝Python,意犹未尽

    作业2的要求是选一个你从来没有学过的编程语言,试一试实现基本功能.那么在这里我准备学习Python语言进行学习,并尝试用Python写一写东西. http://www.runoob.com/ Pyth ...

  7. 一步一步搭框架(asp.netmvc+easyui+sqlserver)-03

    一步一步搭框架(asp.netmvc+easyui+sqlserver)-03 我们期望简洁的后台代码,如下: using System; using System.Collections.Gener ...

  8. Tabbed Activity的使用(Fragment)

    1,首先file -> new -> Activity -> Tabbed Activity 2,创建完成后,发现会自动的创建一大堆代码,大部分我们是不需要关心的,关于页面切换的代码 ...

  9. 从UWP到SWIFT-开始

    hi,all 我呢,是一个win10 uwp的开发者,从wp7.wp8.wp8.1.win8.1 到现在的win10,一直在windows阵营,做过一些大家比较熟悉的东西现在也还是在做win10的uw ...

  10. Django01

    1.创建django project 2.创建app 在一个project下可以创建多个app,比如运维系统这个project下面包含监控app.cmdb app等等,这些app共享project里的 ...