1 条题解

  • 0
    @ 2025-2-14 21:23:51

    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
    上传者