显然我们只要知道1~x范围有多少幸运数(用f(x)表示),lucky(x,y)=f(y)-f(x-1). 解法1. 计算排列数 由于y<=1000000000这个规模,我们不能暴力验证每个数是否是幸运数.可以想到,对于同样的数字组成,不同的数字排列对应不同的幸运数,比如12,21.那么就只需枚举合法的数字组成,算出相应的排列数.设数字i有a[i]个,n=Σa[i],则对应的排列数是n!/∏a[i]!. 接下来就只要枚举那些合法的数字组成了.我们希望枚举时对每位的可取数字是没有限制的,可以分类来进