freegt @ 2023-07-20 15:46:51
#include<bits/stdc++.h>
using namespace std;
int a[251];
int n[11],d[11];
int main(){
int t;
int sum;
cin>>t;
for(int i=1;i<=t;i++){
cin>>n[i]>>d[i];
}
for(int i=1;i<=t;i++){
sum=0;
memset(a,0,sizeof(a));
a[1]=1;
for(int j=2;j<=n[i];j++){
for(int m=1;m<=250;m++){
a[m]*=j;
}
for(int m=1;m<=250;m++){
if(a[m]>9){
a[m+1]+=a[m]/10;
a[m]%=10;
}
}
}
int m=250;
while(a[m]==0&&m>1) m--;
for(int k=m;k>=1;k--){
if(a[k]==d[i]) sum++;
}
cout<<sum<<endl;
}
return 0;
}
by freegt @ 2023-07-20 16:04:22
hahaha自己搞出来了
数组开小了,开100000部分样例超时,开到10000正好全过了
by M4A4_Howl @ 2023-09-30 16:38:30
@freegt hahaha