标签:sum [1] amp for name space std char span
#include <cstdio>
#include <iostream>
#include <cstring>
using namespace std;
char a[32];
int k,in[15],ans[1010];
bool d[15][15],vis[15];
void mul(int x){
for(int i=ans[0];i;i--){
ans[i]*=x;
ans[i+1]+=ans[i]/10;
ans[i]%=10;
}
for(int i=1;i<=ans[0];i++)ans[i+1]+=ans[i]/10,ans[i]%=10;
while(ans[ans[0]+1])ans[0]++;
}
int dfs(int now){
int sum=1;
vis[now]=1;
for(int i=1;i<=9;i++)
if(d[now][i] && !vis[i])sum+=dfs(i);
return sum;
}
int main(){
ans[0]=ans[1]=1;
scanf("%s%d",&a,&k);
while(k--){
int u,v;
scanf("%d%d",&u,&v);
d[u][v]=1;
}
for(int i=0;i<=9;i++){
memset(vis,0,sizeof(vis));
in[i]=dfs(i);
}
for(int i=0;i<strlen(a);i++)mul(in[a[i]-‘0‘]);
for(int i=ans[0];i;i--)printf("%d",ans[i]);
puts("");
return 0;
}
标签:sum [1] amp for name space std char span
原文地址:http://www.cnblogs.com/codetogether/p/7652448.html