摘要: 题意很简单,要你用一些数字,组成一个数的倍数,且那个数最小。比赛的时候没能做出来,深坑啊。其实我只想说我以前就做过这种类型的题目了,诶。题目的解法是数位宽搜。首先把可用的数位提取出来,从小到大一个一个放到后面去。这样保证了出现的数字一定是最小的。同时记录出现过的余数的情况,因为同一个余数k*10+ai再对n取余的数是相同的,所以对于同一个余数我们不需要走两遍,这样就保证了搜索的时间复杂度为O(n)。我们只要对于每一个状态,直接枚举可选择的数字放在他们后面,直到找到一个余数为0的就可以停止了。总的时间复杂度为O(n*10),因为后面最多可能有10个数可以放上面嘛。。。。对于深搜的每一个状态只要用 阅读全文
posted @ 2013-11-01 20:12 092000 阅读(324) 评论(0) 推荐(0) 编辑