40分求调
查看原帖
40分求调
1025958
511_Juruo_wyk楼主2023/10/22 09:37

样例过了,自造数据也过了,下载数据之后不懂为什么。

#include<bits/stdc++.h>
#define int ll
using namespace std;
typedef long long ll;
struct node{
    queue<int>q;
}a[10];
int vis[10];
int dp[10];
int n,k,x,y,s;
ll ans=1;
void dfs(int num){
    if(vis[num]==1){
        s--;
        return;
    }
    vis[num]=1;
    queue<int>w;
    while(!a[num].q.empty()){
        s++;
//        printf("%d ",a[num].q.front());
        dfs(a[num].q.front());
        w.push(a[num].q.front());
        a[num].q.pop();
    }
    a[num].q=w;
    vis[num]=0;
}
signed main(){
    scanf("%d %d",&n,&k);
    for(int i=1;i<=k;i++)scanf("%d %d",&x,&y),a[x].q.push(y);
    for(int i=0;i<10;i++){
        memset(vis,0,sizeof(vis));
        s=1;
        dfs(i);
        dp[i]=s;
//        printf("%d:%d\n",i,s);
    }
    while(n){
        ans*=(dp[n%10]);
        n/=10;
    }
    cout<<ans;
    return 0;
}
/*
12 3
1 2
2 3
2 7
*/
2023/10/22 09:37
加载中...