WA求调!!!
查看原帖
WA求调!!!
1586238
easy235楼主2025/2/7 11:33
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>

int line(int i, int j, int a[][10])
{
    int k = 0;
    for (int t = 1; t <= 9; t++)
    {
        if (!a[i][t] && a[j][t])
        {
            a[i][t] = 1;
            line(i, t, a);
            k = 1;
        }
    }
    if (k)
        return 1;
    else
        return 0;
}
int Rep(int a[][10])
{
    int x, y;
    int K=0;
    for (x = 0;x <= 9;x++)
    {
        for (y = 0;y <= 9;y++)
            if (a[x][y])
        if (line(x, y, a))
            K = 1;
    }
    if (K)
        Rep(a);
    else
        return 0;
}
int main()
{
    char num[31];
    scanf("%s", num);
    int n;
    scanf("%d", &n);
    int b, c;
    int a[10][10] = { 0 };
    for (int p = 0; p < strlen(num); p++)
    {
        a[num[p] - '0'][num[p] - '0'] = 1;
    }
    while (n--)
    {
        scanf("%d %d", &b, &c);
        a[b][c]++;
    }
    Rep(a);
    int i, j;
    int A[30] = { 0 };
    for (i = 0; i < strlen(num); i++)
    {
        for (j = 1; j <= 9; j++)
            A[i] += a[num[i] - '0'][j];
    }

    int B[30] = { 0 };
    B[0] = 1;
    for (i = 0; i < strlen(num); i++)
    {
        int carry = 0;
        for (j = 0; j < 30; j++)
        {
            int temp = B[j] * A[i] + carry;
            B[j] = temp % 10;
            carry = temp / 10;
        }
    }

    int start = 29;
    while (start > 0 && B[start] == 0) start--;
    for (i = start; i >= 0; i--)
    {
        printf("%d", B[i]);
    }
    printf("\n");

    return 0;
}
2025/2/7 11:33
加载中...