zoukankan      html  css  js  c++  java
  • luogu P1037 产生数

    原题链接:https://www.luogu.org/problem/show?pid=1037

    首先,我不知道标签的搜索是哪里来的,这明明就是个Floyd+乘法原理

    首先0—9每个数自己想自己连边,然后读入给出的边,跑一边Floyd,因为此题并没有要求步数的要求,所以只需要记录能否到达即可。1为能到达。

    然后统计每一个数字都能到达几个数字(本身也算),将所有结果乘起来,用高精度处理一下就好了

    #include<cstdio>
    #include<cstring>
    int n,e[20][20];
    int num[20],ans[50],l;
    char a[50];
    int main()
    {
        scanf("%s %d",a,&n);
        for(int i=1;i<=n;i++)
        {
            int x,y;
            scanf("%d %d",&x,&y);
            e[x][y]=1;
        }
        for(int i=0;i<=9;i++) e[i][i]=1;
        for(int k=0;k<=9;k++)
        {
            for(int i=0;i<=9;i++)
            {
                for(int j=0;j<=9;j++)
                {
                    if(e[i][k]==1&&e[k][j]==1) e[i][j]=1;
                }
            }
        }
        int len=strlen(a);
        for(int i=0;i<len;i++)
        {
            int s=a[i]-'0';
            for(int j=0;j<=9;j++)
            {
                if(e[s][j]==1) num[i]++;  
            }
        }
        ans[0]=1;
        for(int i=0;i<len;i++)
        {
            for(int j=0;j<=l;j++) ans[j]*=num[i];
            for(int j=0;j<=l;j++)
            {
                if(ans[j]>9)
                {
                    ans[j+1]+=ans[j]/10;
                    ans[j]%=10;
                }
            }
            if(ans[l+1]!=0) l++;
        }
        for(int i=l;i>=0;i--) printf("%d",ans[i]);
        return 0;
    }
  • 相关阅读:
    Java 线程池
    Java 内存模型
    img图片铺满父元素
    element-ui 表单复杂数据类型校验
    element-ui 栅格布局 一行五等分
    element-ui表单只验证单个字段
    记录
    js-字符串全局替换
    vue3-搭建项目-vue2-vu3使用上的变化
    小程序引入echarts
  • 原文地址:https://www.cnblogs.com/zeroform/p/7693803.html
Copyright © 2011-2022 走看看