Vijos P1596 加法表【迭代】

news/2024/11/29 18:35:54/

加法表

背景

神奇的加法表~

描述

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

格式

输入格式

n(n<=11),表示行数,以下N行,n(n<=11),表示行数,以下N行,每行N个字符串,每个字符串间用空格隔开。(字符串中仅第一行有一个为"+"号,其他都由大写字母组成)

输出格式

第一行为各个字母表示什么数,格式如:L=0 K=1 …… (字符按第一行的输入顺序输出)
第二行为加法运算是几进制的
若不可能组成加法表,则应输出"Wrong!"

样例1

样例输入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

限制

1s

提示

有多种神奇方法可以解决~
注意检验!

来源

Noip 1998


问题链接:Vijos P1596 加法表

问题分析:字母表示的加法表验证问题。

程序说明

用暴力法(或DFS)必然TLE。

这里采用迭代法,样例程序可以通过,然而程序提交后WA,哪位帮忙解决一下!

题记:(略)


参考链接:(略)


WA的C++程序如下:

#include <iostream>
#include <string>
#include <map>using namespace std;const int N = 11;
string s[N][N];
int ans[N];
int n, count;
bool flag;map<char, int> o;int main()
{cin >> n;for(int i=0; i<n; i++)for(int j=0; j<n; j++)cin >> s[i][j];for(int i=1; i<n; i++) {ans[i] = -1;o[s[0][i][0]] = i;}// 查找0,进位位1for(int i=1; i<n; i++) {if(s[i][i].length() == 1) {if(s[i][i] == s[0][i] ) {ans[i] = 0;}} else if(s[i][i].length() == 2) {ans[o[s[i][i][0]]] = 1;}}// 4次迭代计算for(int k=1; k<=4; k++) {for(int i=1; i<n; i++)for(int j=1; j<n; j++)if(ans[i] != -1 && ans[j] != -1) {if(s[i][j].length() == 1) {ans[o[s[i][j][0]]] = ans[i] + ans[j];} else if(s[i][j].length() == 2) {ans[o[s[i][j][1]]] = (ans[i] + ans[j]) % (n - 1);}}}// 输出结果for(int i=1; i<n; i++) {if(i != 1)cout << " ";cout << s[0][i] << "=" << ans[i];}cout << endl;cout << n - 1 << endl;return 0;
}





http://www.ppmy.cn/news/414649.html

相关文章

从KL散度到MLE

MIT的课程 18.650 statistics for applications 在Lecture 4 讲MLE的时候&#xff0c;和一般书本上来就给出MLE公式的方法不同&#xff0c;这里使用Max variant distance -> KLdivergence ->MLE的方式&#xff0c;初看到这个过程&#xff0c;内心感觉还是比较有意思的&a…

KL和汽车各个档位

转载自&#xff1a;CSDN博主&#xff1a;这座城市没有海&#xff0c;网址&#xff1a;https://blog.csdn.net/qq_42718749/article/details/113625135&#xff0c;如有侵权&#xff0c;请联系博主KL是德语Klemme的缩写&#xff0c;意思是ECU的管脚、接线柱&#xff0c;和Pin意思…

matlab对图像进行KL变换,kl变换特征提取

KL变换_工学_高等教育_教育专区。模式识别中经典算法KL变换的详细介绍 基于K 基于K-L变换的多类模式特征提取特征提取的目的: 对一类模式:维数压缩。 对多类模式...... (Karhunen-Loeve)变换,由原始人脸图像中提取特征 向量;分类器设计在训练过程中完成,利用 已知人脸图像样本进…

通信协议的封装

一般游戏开发都会设计到网络通信。包括客户端端和服务端&#xff0c;还哟偶服务器之间。 网络通讯多以数据包的形式发送。 最简单的格式莫过于KLV&#xff08;Key&#xff0c;Length&#xff0c;Value&#xff09;。在此之上还会有源地址 与目标地址的封装&#xff08;添加源…

Vue 常用指令

指令介绍 指令 : 带有 v- 前缀的特殊属性。 指令的作用 : 当表达式的值改变时&#xff0c;将其产生的连带影响&#xff0c;响应式地作用于 DOM 。 在整个vue的编写过程当中&#xff0c;只要带v-的&#xff0c;那么都是常用的vue的指令。 v-text v-text作用与双大花括号作用…

IF: 25+ 单细胞转录组学揭示肝实质和非实质细胞系的早期出现

&#xff0c; 桓峰基因公众号推出单细胞生信分析教程并配有视频在线教程&#xff0c;目前整理出来的相关教程目录如下&#xff1a; Topic 6. 克隆进化之 Canopy Topic 7. 克隆进化之 Cardelino Topic 8. 克隆进化之 RobustClone SCS【1】今天开启单细胞之旅&#xff0c;述说单细…

±0.1℃精度、超低功耗的高精度数字模拟混合信号温度传感芯片

温度芯片感温原理基于CMOS半导体PN节温度与带隙电压的特性关系&#xff0c;经过小信号放大、模数转换数字校准补偿后&#xff0c;数字总线输出&#xff0c;具有精度高、一致性好、测温快、功耗低、可编程配置灵活、寿命长等优点。 温度芯片内置16-bit ADC&#xff0c;分辨率0.…

读书有益——》生僻字、叠字

推荐&#xff1a; 总结——》【读书有益】读书有益——》生僻字、叠字读书有益——》生僻字、可能念错的字 –––赑b传说中的一种动物&#xff0c;像龟毳cu会意&#xff0c;本义&#xff1a;鸟兽的细毛掱p窃取别人身上的财物&#xff0c;同“扒手”羴shā膻”的异体字&#xf…