题目名称 69. [NOIP 2004]虫食算
输入输出 alpha.in/out
难度等级 ★★★
时间限制 1000 ms (1 s)
内存限制 128 MiB
测试数据 10
题目来源 Gravatarsywgz 于2008-07-19加入
开放分组 全部用户
提交状态
分类标签
搜索法 数学 NOIP/CSP
分享题解
通过:215, 提交:791, 通过率:27.18%
Gravatarlyl610 100 0.002 s 0.17 MiB Pascal
GravatarPine 100 0.014 s 0.31 MiB C++
Gravatar徐心雨 100 0.015 s 0.29 MiB C++
GravatarMloVtry 100 0.015 s 0.32 MiB C++
GravatarQWERTIer 100 0.016 s 0.29 MiB C++
GravatarHouJikan 100 0.016 s 0.31 MiB C++
GravatarTA 100 0.017 s 0.32 MiB C++
GravatarLGLJ 100 0.017 s 1.37 MiB C++
GravatarKulliu 100 0.019 s 0.28 MiB C++
Gravatarhzoi_xx 100 0.019 s 0.30 MiB C++
本题关联比赛
暑假培训四
20120919dfs
20191218
关于 虫食算 的近10条评论(全部评论)
观光qwq
GravatarDeacep
2019-08-29 21:59 27楼
YEAHHHHHHHHHHH
GravatarRegnig Etalsnart
2017-09-20 19:02 26楼
%%%达哥
速度瞬间飙起来
GravatarCSU_Turkey
2017-09-19 21:28 25楼
不知道那个家伙把他改成10s了
我改回来了
GravatarCSU_Turkey
2017-09-19 20:50 24楼
累觉不爱。。
GravatarHzoi_Maple
2017-09-18 17:07 23楼
我发生了什么?!拿到测试点二为了方便调试,把第一次枚举范围强制缩到了6,然后忘了改了,问题是我还在最后输出了一个dfs顺序数组,然后……什么WQ玩意
GravatarTroywar
2017-09-18 12:09 22楼
我貌似费到只会找人问正解了。。。
GravatarHzoi_QTY
2017-09-17 21:01 21楼
好久没打这么丑了。。。
GravatarLadyLex
2017-09-17 14:59 20楼
我甚至还可以缩一下行
GravatarCooook
2017-09-17 14:32 19楼
这都做不对……怕是我石乐志……233题留念……
GravatarHZOI_蒟蒻一只
2017-09-17 08:56 18楼

69. [NOIP 2004]虫食算

★★★   输入文件:alpha.in   输出文件:alpha.out   简单对比
时间限制:1 s   内存限制:128 MiB

【问题描述】

所谓虫食算,就是原先的算式中有一部分被虫子啃掉了,需要我们根据剩下的数字来判定被啃掉的字母。

来看一个简单的例子:

  43#9865#045
+   8468#6633
---------------
  44445509678 

其中 $’$#$’$ 号代表被虫子啃掉的数字。根据算式,我们很容易判断:第一行的两个数字分别是 $5$ 和 $3$,第二行的数字是 $5$。

现在,我们对问题做两个限制:

首先,我们只考虑加法的虫食算。这里的加法是 $N$ 进制加法,算式中三个数都有 $N$ 位,允许有前导的 $0$。

其次,虫子把所有的数都啃光了,我们只知道哪些数字是相同的,我们将相同的数字用相同的字母表示,不同的数字用不同的字母表示。

如果这个算式是 $N$ 进制的,我们就取英文字母表中的前 $N$ 个大写字母来表示这个算式中的 $0$ 到 $N - 1$ 这 $N$ 个不同的数字:但是这 $N$ 个字母并不一定顺序地代表 $0$ 到 $N - 1$ )。输入数据保证 $N$ 个字母分别至少出现一次。

  BADC
+ CBDA
--------
  DCCC 

上面的算式是一个 $4$ 进制的算式。

很显然,我们只要让 $A,B,C,D$ 分别代表 $0,1,2,3$,便可以让这个式子成立了。你的任务是,对于给定的 $N$ 进制加法算式,求出 $N$ 个不同的字母分别代表的数字,使得该加法算式成立。

输入数据保证有且仅有一组解。

【输入文件】

输入文件包含四行。

第一行有一个正整数 $N$$(N \le 26)$;

后面的三行每行有一个由大写字母组成的字符串,分别代表两个加数以及和。

这三个字符串左右两端都没有空格,从高位到低位,并且恰好有 $N$ 位。

【输出文件】

输出文件包含一行。

在这一行中,应当包含唯一的那组解。

解是这样表示的:输出 $N$ 个数字,分别表示 $A,B,C \cdots $所代表的数字,相邻的两个数字用一个空格隔开,不能有多余的空格。

【样例输入】

5 
ABCED
BDACE
EBBAA

【样例输出】

1 0 3 4 2

【数据规模】

对于 $30\%$ 的数据,保证有 $N \le 10$;

对于 $50\%$ 的数据,保证有 $N \le 15$;

对于 $100\%$ 的数据,保证有 $N \le 26$。