记录编号 |
287396 |
评测结果 |
AAAAA |
题目名称 |
[SCOI 2007]排列 |
最终得分 |
100 |
用户昵称 |
AntiLeaf |
是否通过 |
通过 |
代码语言 |
C++ |
运行时间 |
0.738 s |
提交时间 |
2016-08-01 19:41:35 |
内存使用 |
0.29 MiB |
显示代码纯文本
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
const int maxn=15;
int T,n,a[maxn],p,ans;
long long tmp;
char c[maxn];
int main(){
freopen("wulipailie.in","r",stdin);
freopen("wulipailie.out","w",stdout);
scanf("%d",&T);
while(T--){
ans=0;
scanf(" %s %d",c,&p);
n=strlen(c);
for(int i=0;i<n;i++)a[i+1]=c[i]-'0';
sort(a+1,a+n+1);
do{
tmp=0;
for(int i=1;i<=n;i++)tmp=tmp*10ll+(long long)a[i];
if(tmp%(long long)p==0ll)ans++;
}while(next_permutation(a+1,a+n+1));
printf("%d\n",ans);
}
fclose(stdin);
fclose(stdout);
return 0;
}
/*
7
000 1
001 1
1234567890 1
123434 2
1234 7
12345 17
12345678 29
Answer:
1
3
3628800
90
3
6
1398
*/