题目链接在这里

这题和虫食算比较类似。做完这道题可以去做虫食算。都是搜索一类的题。

这样  我们分析题目可以发现进制只可能是字母的个数,也就是n-1。为什么?

因为题目要求完整的加法表才算数。如果进制低于n-1,字母就多了;如果进制高,字母就不够,凑不出一个完整的加法表。所以这题第二问比第一问简单很多。

再说第一问。可以使用搜索,dfs参数是已经搜的字符个数,如果等于n-1判断是否合法,合法就可以输出答案退出程序,不合法就继续搜。在dfs的时候可以枚举有哪些字符是没用过的,再枚举哪些数字是没用过的,一一对应。数据范围很小,可以轻松搞定。

  1. #include<cstdio>
  2. #include<cstring>
  3. #include<iostream>
  4. #include<cstdlib>
  5. #include<map>
  6. using namespace std;
  7. int Map[],jd[];
  8. int n;
  9. char s[];
  10. char mp[][][];
  11. char que[];
  12. bool vis[];
  13.  
  14. bool Check(){
  15. for(int i=;i<=n;++i){
  16. for(int j=;j<=n;++j){
  17. char a=jd[que[i]],b=jd[que[j]];
  18. int c=;
  19. for(int k=;k<strlen(mp[i][j]);++k){
  20. c=c*n+jd[mp[i][j][k]];
  21. }
  22. if(a+b!=c)return ;
  23. }
  24. }
  25. return ;
  26. }
  27.  
  28. void dfs(int deep){
  29. if(deep==n){
  30. if(!Check()){
  31. return;
  32. }
  33. for(int i=;i<=n;++i) printf("%c=%d ",que[i],jd[que[i]]);
  34. printf("\n");
  35. printf("%d",n);
  36. exit();
  37. }
  38. for(int i=;i<n;++i){
  39. if(!vis[i]){
  40. for(int j=;j<=n;j++){
  41. if(jd[que[j]]==-){
  42. vis[i]=;
  43. jd[que[j]]=i;
  44. dfs(deep+);
  45. vis[i]=;
  46. jd[que[j]]=-;
  47. }
  48. }
  49. }
  50. }
  51. }
  52. int main(){
  53. cin>>n;
  54. n--;
  55. scanf("%s",s);
  56. for(int i=;i<=n;++i){
  57. scanf("%s",s);
  58. Map[s[]]=i;
  59. que[i]=s[];
  60. jd[s[]]=-;
  61. }
  62. for(int i=;i<=n;++i){
  63. scanf("%s",s);
  64. char ch=s[];
  65. for(int j=;j<=n;++j){
  66. scanf("%s",s);
  67. for(int k=;k<strlen(s);++k)
  68. mp[Map[ch]][j][k]=s[k];
  69. }
  70. }
  71. dfs();
  72. printf("ERROR!");
  73. return ;
  74. }

【Luogu】P1013进制位(搜索)的更多相关文章

  1. 洛谷P1013 进制位

    P1013 进制位 题目描述 著名科学家卢斯为了检查学生对进位制的理解,他给出了如下的一张加法表,表中的字母代表数字. 例如: + L K V E L L K V E K K V E KL V V E ...

  2. 洛谷 P1013 进制位

    P1013 进制位 题目描述 著名科学家卢斯为了检查学生对进位制的理解,他给出了如下的一张加法表,表中的字母代表数字. 例如: + L K V E L L K V E K K V E KL V V E ...

  3. 洛谷 P1013 进制位 【搜索 + 进制运算】

    题目描述 著名科学家卢斯为了检查学生对进位制的理解,他给出了如下的一张加法表,表中的字母代表数字. 例如: + L K V E L L K V E K K V E KL V V E KL KK E E ...

  4. noip 1998 洛谷P1013 进制位

    题目描述 著名科学家卢斯为了检查学生对进位制的理解,他给出了如下的一张加法表,表中的字母代表数字. 例如: L K V E L L K V E K K V E KL V V E KL KK E E K ...

  5. [NOIP1998] 提高组 洛谷P1013 进制位

    题目描述 著名科学家卢斯为了检查学生对进位制的理解,他给出了如下的一张加法表,表中的字母代表数字. 例如: L K V E L L K V E K K V E KL V V E KL KK E E K ...

  6. [NOIP1999]进制位(搜索)

    P1013 进制位 题目描述 著名科学家卢斯为了检查学生对进位制的理解,他给出了如下的一张加法表,表中的字母代表数字. 例如: + L K V E L L K V E K K V E KL V V E ...

  7. [洛谷 P1013] NOIP1998 提高组 进制位

    问题描述 著名科学家卢斯为了检查学生对进位制的理解,他给出了如下的一张加法表,表中的字母代表数字. 例如: L K V E L L K V E K K V E KL V V E KL KK E E K ...

  8. P1013 [NOIP1998 提高组] 进制位

    解析 看到这道题时,有没有想到搜索?然后就是一通码......然后过了. 但是,真的要用搜索吗? 我们可以观察一下.对于n进制中的数ii,如果ii加上某一个数jj会变成两位数,那么可以得到如下不等式: ...

  9. luogu P1017 进制转换

    感觉这个题 是真的恶心 本来单纯就递归写,发现好难 后来用数组记录 然后考虑 指数为 奇和偶数 分别 <0 和 > 进制的情况 其实 用进制数为3 大概讨论四种情况就可以了 由于最近就是在 ...

随机推荐

  1. Spring MVC异常统一处理(包括普通请求异常以及ajax请求异常)

    通常SpringMVC对异常的配置都是返回某个jsp视图给用户,但是通过ajax方式发起请求,即使发生异常,前台也无法获得任何异常提示信息.因此需要对异常进行统一的处理,对于普通请求以及ajax请求的 ...

  2. codevs 1262 不要把球传我 2012年CCC加拿大高中生信息学奥赛

    时间限制: 1 s  空间限制: 128000 KB  题目等级 : 白银 Silver 题目描述 Description CCC的足球比赛和传统的足球比赛有一点不同, 一次进球当且仅当先后接触到球的 ...

  3. python代理检测

    import socket,threading,os,sys,queue,re socket.setdefaulttimeout(5) path=sys.path[0] if os.path.isfi ...

  4. Android计算器布局

    Android(安桌)计算器布局实现         ——解决整个屏幕方案 引言:     学完了android布局的几种方式,做了一个android计算器. 我在网上搜索了这方面的资料,发现了布局都 ...

  5. 2012-2013 ACM-ICPC, NEERC, Central Subregional Contest C Sequence (打表)

    打个表找找规律,到24445的时候乘2以后产生了0出现循环. 一般地,判断循环节是否存在可以用Floyd判圈算法. #include<bits/stdc++.h> using namesp ...

  6. WPF中Canvas使用

    首先知道Canvas有Left.Right.Top和Bottom这四个属性,放入Canvas的元素通过这四个属性来决定它们在Canvas里面的位置. 比如: Xaml: <Canvas Hori ...

  7. Jascript原型链以及Object和Function之间的关系

    先看一个简单的function变量 function fun1(name) { this.name = name; } console.log("fun1", fun1) 从结果可 ...

  8. java程序-类的高级特性

    创建Employee类,在类中定义三个属性:编号,姓名,年龄,然后在构造方法里初始化这三个属性,最后在实现接口中的定义的CompareTo方法,将对象按编号升序排列. 代码如下:(程序可能有些错误,方 ...

  9. k8s master init and add node

    目录 一. add google apt-key 二. k8s master init 三. k8s node add to master cluster(use this command when ...

  10. $Codeforces\; Round\; 504\; (Div.2)$

    宾馆的\(\rm{wifi}\)也太不好了,蹭的\(ZZC\)的热点才打的比赛(感谢\(ZZC\)) 日常掉rating-- 我现在是个\(\color{green}{pupil}\)-- 因为我菜, ...