20?!
查看原帖
20?!
1007656
U_stinian楼主2023/8/16 22:02
#include<bits/stdc++.h>
#include<iostream>
#define lll __uint128_t
using namespace std;
int arr[10][10],d[10];
int num[101];
int main()
{
    string s;
    int n;
    cin>>s>>n;
    int a,b;
    for(int i=1;i<=n;i++)
    {
        cin>>a>>b;
        arr[a][b]=1;
    }
    for(int k=1;k<10;k++)
        for(int i=0;i<10;i++)
            for(int j=1;j<10;j++)
            if(arr[i][k]&&arr[k][j])
            arr[i][j]=1;
    for(int i=0;i<=9;i++)
    {
        arr[i][i]=1;
        for(int j=0;j<=9;j++)
            if(arr[i][j])
             d[i]++;
    }
    num[1]=1;int len=2;
    for(int i=0;i<s.length();i++)
    {
        for(int j=1;j<=100;j++)
            num[j]*=d[s[i]-'0'];
        for(int j=1;j<=100;j++)
            if(num[j]>=10)
        {
            num[j+1]+=num[j]/10;
            num[j]%=10;
        }
    }
    for(int i=len-1;i>=1;i--)
        cout<<num[i];
}

2023/8/16 22:02
加载中...