1 条题解
-
0
C++ :
#include<cstdio> #include<cstdlib> #include<cstring> #include<iostream> using namespace std; int n,k; int map[12][12]={0}; int head=1; int tail=1; int num; int f[10001]; void bfs() { bool flag[9]; head=1; tail=1; memset(f,0,sizeof(f)); for(int i=1;i<=9;++i) { flag[i]=0; } f[head]=num; flag[num]=1; while(head<=tail) { for(int i=1;i<=9;++i) { if(map[f[head]][i]==1&&flag[i]==0) { ++tail; f[tail]=i; flag[i]=1; } } head++; } return; } int main() { //freopen("build.in","r",stdin); //freopen("build.out","w",stdout); cin>>n>>k; int x,y; for(int i=1;i<=k;++i) { cin>>x>>y; map[x][y]=1; } int ans[15]; for(int i=1;i<=9;++i) { ans[i]=1; } for(num=0;num<=9;++num) { bfs(); ans[num]=tail; } unsigned long long sum=1; int c; while(n!=0) { c=n%10; sum=sum*ans[c]; n=n/10; } cout<<sum; return 0; }
- 1
信息
- ID
- 896
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者