#LGP1037. [NOIP2002 普及组] 产生数

[NOIP2002 普及组] 产生数

题目描述

给出一个整数 n 和 k 个变换规则。

规则表示一位数字可以变换成另一位数字,规则右部不能为 0。每一位可以经过 0 次或多次变换。

例如 n=234,k=2,规则为 2 -> 5、3 -> 6,则 234 可以产生 234、534、264、564,共 4 个不同整数。

现在给出 n 和 k 个规则,求经过任意次变换后能产生多少个不同整数。

输入格式

第一行包含整数 n 和 k。

接下来 k 行,每行两个整数 x,y,表示数字 x 可以变换成数字 y。

输出格式

一行一个整数,表示能产生的不同整数个数。

样例输入 #1

234 2
2 5
3 6

样例输出 #1

4

数据范围与提示

n < 10^30,k <= 15。

可以把数字之间的变换看作有向图,先求每个数字能到达多少个数字,再用乘法原理计算答案。答案可能很大,需要使用高精度。

来源

洛谷 P1037 [NOIP2002 普及组] 产生数。

蜀ICP备2025119001号-1