摘要:
题意:同poj 2283 给一个数字n,求n的倍数中,所使用不同数字最少的。例如1223含3个不同数字。如果有多个答案,取最小的。分析:对于任意n,最多两个数字就能组成n的倍数。因为a,aa,aaa……取n+1个,则必有两个模n余数相同,相减即得n的倍数。所以先考虑一个数字的情况,若没有n的倍数,再广搜两个数字。搜的时候要对余数判重,如果出现了相同的余数,则形成了循环。另外搜两个数字的时候,要枚举这两个数字再搜,同时搜10个数字会爆空间。const int M = 170000;int ans[M], pa;int a[M], p;//数字int b[M],pre[M];//余数 前驱int. 阅读全文
posted @ 2013-05-09 22:17
心向往之
阅读(224)
评论(0)
推荐(0)