为什么这个代码123434 2这组样例输出多了一倍
#include<bits/stdc++.h>
using namespace std;
#define int long long
#define F(i,k,n) for (int i=k;i<=n;i++)
typedef long long ll;
const int N=12;
int dp[1<<N][1010];
int t,d,n;
int to[N];
int jie[N];
string s;
int _pow(int a,int b){
int ans=1;
F(i,1,b) ans*=a,ans%=d;
return ans%d;
}
signed main(){
cin>>t;
jie[0]=1;
F(i,1,10) jie[i]=jie[i-1]*i;
while (t--){
cin>>s>>d;
memset(dp,0,sizeof dp);
memset(to,0,sizeof to);
F(i,0,s.size()-1) to[s[i]-'0']++;
dp[0][0]=1;
n=s.size();
F(i,0,(1<<n)-1){
int sum=0;
F(l,0,n-1) if ((i>>l)&1) sum++;
F(l,0,n-1){
if ((i>>l)&1) continue;
// cout<<j<<'\n';
int now=s[l]-'0';
F(k,0,d-1){
dp[i+(1<<(l))][(k+now*_pow(10,sum+1))%d]+=dp[i][k];
}
}
}
int ans=dp[(1<<n)-1][0];
F(i,0,9) ans/=jie[to[i]];
cout<<ans<<' ';
}
return 0;
}