BZOJ过了而洛谷RE
水python代码:
s=input()
cnt={1:0,2:0,0:0,3:0,4:0,5:0,6:0,7:0,8:0,9:0}
n=len(s)
s=list(s)
for i in range(n):
s[i]=int(s[i])
cnt[s[i]]+=1
f=[1]*60
for i in range(1,60):
f[i]=f[i-1]*i
res=0
for i in range(n):
for j in range(s[i]):
if cnt[j]<=0:continue
cnt[j]-=1
su=0
r=1
for k in range(10):
su+=cnt[k]
r*=f[su]
for k in range(10):
r//=f[cnt[k]]
res+=r
cnt[j]+=1
cnt[s[i]]-=1
print(res)