zoukankan      html  css  js  c++  java
  • codevs 1009 产生数x

                         题目描述 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
     1 #include<iostream>
     2 
     3 using namespace std;
     4 
     5 string n;
     6 int k,can[10][10];
     7 
     8 int main() {
     9     cin>>n>>k;
    10     int x,y;
    11     while(k--) {//k为可变换的数字有多少个 
    12         cin>>x>>y,can[x][y]=1;//can数组进行标记,即x可以变换为y 
    13     }
    14     for(int v=0; v<10; v++)
    15         for(int j=0; j<10; j++)
    16             for(int i=0; i<10; i++)
    17                 if(i!=j&&j!=v&&i!=v)//排除x变为x的情况,必须保证让x变为不同的数字 
    18                     if(can[i][v]==1&&can[v][j]==1) can[i][j]=1;
    19                     /*
    20                 如果i可以变换成v,并且v还可以变成j的话,那么,i也可以变为j
    21                     */ 
    22     long long sum=1;//进行统计 
    23     for(int i=0; i<n.length(); i++) {
    24         int n1=n[i]-'0',change=1;//n1进行转换,将字符串形式的转换为int形式 
    25         for(int j=0; j<10; j++)
    26             if(can[n1][j]==1&&n1!=j)//如果当前数字可以进行转换,记录下来,即change++ 
    27             {
    28                 change++;
    29             }
    30         sum*=change;
    31     }
    32     cout<<sum<<endl;//最后输出 
    33     return 0;
    34 }

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

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

  • 相关阅读:
    【BZOJ 1370】 团伙
    【BZOJ 1590】 Secret Message
    【BZOJ 2288】 生日礼物
    【POJ 3630】 Phone List
    【BZOJ 1398】 Necklace
    platform驱动之probe函数
    linux输入子系统之按键驱动
    linux输入子系统概念介绍
    操盘策略:KDJ三线合一 必定孕育大牛股
    nandflash裸机程序分析
  • 原文地址:https://www.cnblogs.com/zxqxwnngztxx/p/6701012.html
Copyright © 2011-2022 走看看