题意
给出一个500以内的d,一个5000以内的s,要求找一个d的倍数,使得这个数的各位数字总和为s。
题解
很难想到,这题居然是图论???但是跟距离并没有什么关系。一个状态有三个维度,一个是模d的余数,一个是各数位的和s,一个是字符串保存数。然后要最小化找到的数字。其实状态中真正决定的只有两维,余数和数位和,这两个东西乘起来也只有
2.5
∗
1
0
6
2.5*10^6
2.5∗106,并不是很多。如何保证数字最小呢,其实,BFS就可以了,先试图添加小的数字,这样最后一定是最小的数。目标状态就是(0,s)。