传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=1072
模拟就好了,当时分析复杂度的时候想想O(n!*T)刚好可以卡时过,于是写了,于是A了……
PS:STL就是吊!
Code:
#include<cstdio> #include<iostream> #include<algorithm> #include<cstring> using namespace std; char s[10]; int len; int d; int T; long long toint(char *s){ long long res=0; for(int i=0;i<len;i++) res*=10,res+=s[i]-'0'; return res; } int main(){ scanf("%d",&T); while(T--){ scanf("%s",s);len=strlen(s); scanf("%d",&d); sort(s,s+len); int ans=0; do{ if(toint(s)%d==0)ans++; }while(next_permutation(s,s+len)); printf("%d\n",ans); } return 0; }