P1013 进制位

题目描述

著名科学家卢斯为了检查学生对进位制的理解,他给出了如下的一张加法表,表中的字母代表数字。 例如:

+    L    K    V    E
L L K V E
K K V E KL
V V E KL KK
E E KL KK KV

其含义为:

L+L=L , L+K=K , L+V=V , L+E=E

K+L=K , K+K=V , K+V=E , K+E=KL

…… E+E=KV

根据这些规则可推导出: L=0 , K=1 , V=2 , E=3

同时可以确定该表表示的是4进制加法

//感谢lxy123456同学为本题新加一组数据

输入输出格式

输入格式:

n (n≤9) 表示行数。

以下 n 行,每行包括 n 个字符串,每个字串间用空格隔开。(字串仅有一个为‘+’号,其它都由大写字母组成)

输出格式:

① 各个字母表示什么数,格式如: L=0 , K=1 ,……按给出的字母顺序。

② 加法运算是几进制的。

③ 若不可能组成加法表,则应输出“ERROR!”

输入输出样例

输入样例#1: 复制

5

  • L K V E

    L L K V E

    K K V E KL

    V V E KL KK

    E E KL KK KV

输出样例#1: 复制

L=0 K=1 V=2 E=3

4


题解

咕咕咕,打打信心题(其实主要是X谷题解没看懂就自己做了)

根据性质做题目

  1. 0到n-2一定出现过。
  2. 进制一定是n-1位的

    伪证

    我要进位啊

    仔细想想是不是要有1(前提有0),有1就会有2 and so on.

    于是枚举全排列加进制转换就OK了,没什么好讲的。

代码

#include<cstdio>
#include<cstring>
#include<cmath>
#include<iostream>
#include<algorithm>
using namespace std;
int n,vis[11],vi[27];
char s[11][11][11];
int turn(int x,int y){
int ans=0,len=strlen(s[x][y]);
for(int i=0;i<len;i++){
ans=ans*(n-1)+vi[s[x][y][i]-'A'];
//if(x==3&&y==5)cout<<s[x][y][i]<<' ';
}
//if(x==3&&y==5)cout<<endl;
return ans;
} bool judge()
{
for(int i=2;i<=n;i++)
{
for(int j=2;j<=n;j++)
{
if(i==j&&i==1)continue;
int v1=vi[s[1][i][0]-'A']+vi[s[j][1][0]-'A'],v2=turn(i,j);
if(v1!=v2){/*cout<<v1<<' '<<v2<<' '<<s[1][i][0]<<' '<<s[j][1][0]<<endl;*/return false;}
}
}
return true;
} void dfs(int step){
if(step==n+1){
// cout<<"Orz"<<endl;
if(judge())
{
for(int i=2;i<=n;i++)
cout<<s[1][i]<<'='<<vi[s[1][i][0]-'A']<<' ';
cout<<endl<<n-1<<endl;
exit(0);
}
/* for(int i=2;i<=n;i++)
cout<<s[1][i][0]<<'='<<vi[s[1][i][0]-'A']<<' ';
cout<<endl;*/
}
for(int i=0;i<n-1;i++)
if(vis[i]==-1)vis[i]=1,vi[s[1][step][0]-'A']=i,dfs(step+1),vis[i]=-1;
} int main()
{
cin>>n;
memset(vis,-1,sizeof(vis));
// cout<<vis[0]<<endl;
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++){
scanf("%s",s[i][j]);
//if(strlen(s[i][j])==2)vi[s[i][j][1]-'A']=1;
}
dfs(2);
printf("ERROR!\n");
return 0;
}

[NOIP1999]进制位(搜索)的更多相关文章

  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. 【Luogu】P1013进制位(搜索)

    题目链接在这里 这题和虫食算比较类似.做完这道题可以去做虫食算.都是搜索一类的题. 这样 我们分析题目可以发现进制只可能是字母的个数,也就是n-1.为什么? 因为题目要求完整的加法表才算数.如果进制低 ...

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

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

  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. [洛谷 P1013] NOIP1998 提高组 进制位

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

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

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

  8. 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 ...

  9. [luoguP1013] 进制位(搜索)

    传送门 纯搜索,无优化! #include <cstdio> #include <cstring> #include <iostream> #include < ...

随机推荐

  1. Android 使用retrofit时,怎样获取响应的头信息

    这个问题,我前段时间在项目中使用Retrofit遇到过,最后查到的解决办法有两种获取Response Headers的方法,第一种是直接在定义接口是让接口返回Retrofit的Response对象,在 ...

  2. vmware workstation pro 14 虚拟机无法开启、黑屏的解决方案汇总

    方案1:卸载鲁大师,重启. 方案2:管理员命令行,输入netsh winsock reset,重启. 方案3:360安全管家修复LSP,重启. 方案4:卸载14.0,安装12.0,手动导入虚拟机.

  3. div控制最小高度又自适高度

    div控制最小高度又自适高度我们在用div布局的时候经常会遇到这样的一种情况:我们需要设置一个div的高度,当里面的东西超过这个高度时,让这个容器自动被撑开,也就是自适应高度.当里面的信息很少时候,我 ...

  4. yii框架原生代码

    http://www.cnblogs.com/duanxz/p/3480254.htm

  5. jQuery第三课 点击按钮 弹出层div效果

    jQuery 事件方法 事件方法会触发匹配元素的事件,或将函数绑定到所有匹配元素的某个事件. 触发实例: $("button#demo").click() 上面的例子将触发 id= ...

  6. 紫书 习题8-12 UVa 1153(贪心)

    本来以为这道题是考不相交区间, 结果还专门复习了一遍前面写的, 然后发现这道题的区间是不是 固定的, 是在一个范围内"滑动的", 只要右端点不超过截止时间就ok. 然后我就先考虑有 ...

  7. 【codeforces 22C】 System Administrator

    [题目链接]:http://codeforces.com/problemset/problem/22/C [题意] 给你n个点; 要求你构造一个含m条边的无向图; 使得任意两点之间都联通; 同时,要求 ...

  8. PNG文件结构分析

    http://blog.163.com/iwait2012@126/blog/static/16947232820124411174877/ PNG文件结构分析 对于一个PNG文件来说,其文件头总是由 ...

  9. 洛谷——P2615 神奇的幻方 【Noip2015 day1t1】

    https://www.luogu.org/problem/show?pid=2615 题目描述 幻方是一种很神奇的N*N矩阵:它由数字1,2,3,……,N*N构成,且每行.每列及两条对角线上的数字之 ...

  10. code vs 1216 跳马问题

    1216 跳马问题  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 黄金 Gold 题解       题目描述 Description 题目 输入描述 Input Descri ...