zoukankan      html  css  js  c++  java
  • 1042. Shuffling Machine (20)

    题目连接:https://www.patest.cn/contests/pat-a-practise/1042

    20分的题耗费了我这么多时间……还是C++不熟练啊!

    我的主要思路就是使用map映射,关键字为序号,值为字符;每次将改变后的存入ans中,随后更新machine。注意map可以自动按照关键字进行由小到大的排序,因此可以方便地访问。

    不熟悉之处:数字转字符串、可以直接machine=ans;

     1 #include<stdio.h>
     2 #include<map>
     3 #include<string>
     4 #include<iostream>
     5 #include<stdlib.h>
     6 using namespace std;
     7 int main()
     8 {
     9     map<int,string>Machine,Auto,ans,empty;
    10     Auto[1]='S';Auto[2]='H';Auto[3]='C';Auto[4]='D';Auto[5]='J';
    11     int i=1,cnt=1,j=1;
    12     string s;
    13     char sh[3];
    14     string D;
    15     while(j<=54)
    16     {
    17         if (i%14==0){i=1;cnt++;}
    18         //itoa(i,sh,10);
    19         sprintf(sh,"%d",i);
    20         D=Auto[cnt];
    21         Machine[j]=D+sh;
    22         i++;
    23         j++;
    24     }
    25     int K,rule[60];
    26     scanf("%d",&K);
    27     for (i=1;i<=54;i++)scanf("%d",&rule[i]);
    28     i=1;
    29     map<int,string>::iterator it;
    30 
    31     while(K--){
    32         i=1;
    33         for (it=Machine.begin();it!=Machine.end();it++) {
    34         ans[rule[i++]]=it->second;
    35         }
    36         Machine=ans;
    37         }
    38 
    39 int flag=0;
    40     for (it=Machine.begin();it!=Machine.end();it++)
    41     {
    42         if(flag==0){cout<<it->second;flag=1;}
    43         else cout<<" "<<it->second;
    44     }
    45     return 0;
    46 }
  • 相关阅读:
    js delete 操作符
    js中contains()方法的了解
    绝对地址、相对地址、/、./、../之间的区别
    关于应用版本号的更迭
    js事件的绑定与移除
    js实现阶乘
    圆角和渐变
    css3用到知识点小结
    font-size:0的妙用,用于解决inline或者inline-block造成的间隙
    js怎么把数字转化为字母(A,B.....AA,AB,..)
  • 原文地址:https://www.cnblogs.com/wuxiaotianC/p/6405333.html
Copyright © 2011-2022 走看看