zoukankan      html  css  js  c++  java
  • codevs 1009 产生数 2002年NOIP全国联赛普及组 x (内附解析w)

                         题目描述 Description

      给出一个整数 n(n<10^30) 和 k 个变换规则(k<=15)。
      规则:
       一位数可变换成另一个一位数:
       规则的右部不能为零。
      例如:n=234。有规则(k=2):
        2-> 5
        3-> 6
      上面的整数 234 经过变换后可能产生出的整数为(包括原数):
       234
       534
       264
       564
      共 4 种不同的产生数
    问题:
      给出一个整数 n 和 k 个规则。
    求出:
      经过任意次的变换(0次或多次),能产生出多少个不同整数。
      仅要求输出个数。

    输入描述 Input Description

    键盘输人,格式为:
       n k
       x1 y1
       x2 y2
       ... ...
       xn yn

    输出描述 Output Description

     屏幕输出,格式为:
      一个整数(满足条件的个数)

    样例输入 Sample Input


       234 2
       2 5
       3 6

    样例输出 Sample Output

    4

    数据范围及提示 Data Size & Hint
     

    分类标签 Tags

     
    #include<iostream>
    
    using namespace std;
    
    string n;
    int k,can[10][10];
    
    int main() {
        cin>>n>>k;
        int x,y;
        while(k--) {//k为可变换的数字有多少个 
            cin>>x>>y,can[x][y]=1;//can数组进行标记,即x可以变换为y 
        }
        for(int v=0; v<10; v++)
            for(int j=0; j<10; j++)
                for(int i=0; i<10; i++)
                    if(i!=j&&j!=v&&i!=v)//排除x变为x的情况,必须保证让x变为不同的数字 
                        if(can[i][v]==1&&can[v][j]==1) can[i][j]=1;
                        /*
                    如果i可以变换成v,并且v还可以变成j的话,那么,i也可以变为j
                        */ 
        long long sum=1;//进行统计 
        for(int i=0; i<n.length(); i++) {
            int n1=n[i]-'0',change=1;//n1进行转换,将字符串形式的转换为int形式 
            for(int j=0; j<10; j++)
                if(can[n1][j]==1&&n1!=j)//如果当前数字可以进行转换,记录下来,即change++ 
                {
                    change++;
                }
            sum*=change;
        }
        cout<<sum<<endl;//最后输出 
        return 0;
    }

    如果运气好也是错,那我倒愿意错上加错!

    ❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀

  • 相关阅读:
    golang中将json转成go
    软件升级
    golang 各类型转换
    golang 基础知识6
    golang 基础知识5
    bash resource
    toy
    links
    android abd remove
    YCM
  • 原文地址:https://www.cnblogs.com/zxqxwnngztxx/p/6665581.html
Copyright © 2011-2022 走看看