Luogu

BZOJ

分析

大水题。

用$\texttt{next_permutation}$枚举排列即可。

注意$9999999999$是爆了$\texttt{int}$了的,所以要开$\texttt{long long}$。

代码

//It is made by M_sea
#include <algorithm>
#include <iostream>
#include <cstdlib>
#include <cstring>
#include <cstdio>
#include <cmath>
#define re register
typedef long long ll;
using namespace std;

const int N=10+10;

char s[N];
int n,d;

int main() {
    int T; scanf("%d",&T);
    while (T--) {
        scanf("%s%d",s+1,&d); n=strlen(s+1);
        sort(s+1,s+n+1); int ans=0;
        do {
            ll x=0;
            for (re int i=1;i<=n;++i) x=x*10+s[i]-'0';
            if (x%d==0) ++ans;
        } while (next_permutation(s+1,s+n+1));
        printf("%d\n",ans);
    }
    return 0;
}
最后修改:2019 年 05 月 26 日 08 : 03 PM