zoukankan      html  css  js  c++  java
  • 2018湘潭大学程序设计竞赛【B】

    题目链接: https://www.nowcoder.com/acm/contest/105/B

    题意: 给你一个字母矩阵,和测试组数,让你统计字符串的字符累计出现的次数,然后让你找出需要找的字符,这个字符必须是每行每列里出现次数最多的。

    题解: 暴力瞎搞。map列举一下啊。写的十分暴力,绝对不是最优解。QAQ。题好难读,看了好久才懂样例。

      1 #include<iostream>
      2 #include<string>
      3 #include<cstring>
      4 #include<cstdio>
      5 #include<map>
      6 using namespace std;
      7 int a[6][6];
      8 int h[6];
      9 int l[6];
     10 int maxh;
     11 int maxl;
     12 map<int,char> m;
     13  
     14 void init(){
     15     m[0] = '0';m[1] = '1';m[2] = '2';m[3] = '3';m[4] = '4';m[5] = '5';
     16     m[10] = '6';m[11] = '7';m[12] = '8';m[13] = '9';m[14] = 'A';m[15] = 'B';
     17     m[20] = 'C';m[21] = 'D';m[22] = 'E';m[23] = 'F';m[24] = 'G';m[25] = 'H';
     18     m[30] = 'I';m[31] = 'J';m[32] = 'K';m[33] = 'L';m[34] = 'M';m[35] = 'N';
     19     m[40] = 'O';m[41] = 'P';m[42] = 'Q';m[43] = 'R';m[44] = 'S';m[45] = 'T';
     20     m[50] = 'U';m[51] = 'V';m[52] = 'W';m[53] = 'X';m[54] = 'Y';m[55] = 'Z';
     21 }
     22  
     23 int main(){
     24     init();
     25     int n;
     26     cin >> n;
     27     while(n--){
     28         memset(a,0,sizeof(a));
     29         memset(h,0,sizeof(h));
     30         memset(l,0,sizeof(l));
     31         maxh=0;
     32         maxl=0;
     33         string s;
     34         cin >> s;
     35         for(int i=0;i<s.size();i++){
     36             if(s[i]=='0')   a[0][0]++;
     37             if(s[i]=='1')   a[0][1]++;
     38             if(s[i]=='2')   a[0][2]++;
     39             if(s[i]=='3')   a[0][3]++;
     40             if(s[i]=='4')   a[0][4]++;
     41             if(s[i]=='5')   a[0][5]++;
     42             if(s[i]=='6')   a[1][0]++;
     43             if(s[i]=='7')   a[1][1]++;
     44             if(s[i]=='8')   a[1][2]++;
     45             if(s[i]=='9')   a[1][3]++;
     46             if(s[i]=='A')   a[1][4]++;
     47             if(s[i]=='B')   a[1][5]++;  
     48             if(s[i]=='C')   a[2][0]++;
     49             if(s[i]=='D')   a[2][1]++;
     50             if(s[i]=='E')   a[2][2]++;
     51             if(s[i]=='F')   a[2][3]++;
     52             if(s[i]=='G')   a[2][4]++;
     53             if(s[i]=='H')   a[2][5]++;
     54             if(s[i]=='I')   a[3][0]++;
     55             if(s[i]=='J')   a[3][1]++;
     56             if(s[i]=='K')   a[3][2]++;
     57             if(s[i]=='L')   a[3][3]++;
     58             if(s[i]=='M')   a[3][4]++;
     59             if(s[i]=='N')   a[3][5]++;
     60             if(s[i]=='O')   a[4][0]++;
     61             if(s[i]=='P')   a[4][1]++;
     62             if(s[i]=='Q')   a[4][2]++;
     63             if(s[i]=='R')   a[4][3]++;
     64             if(s[i]=='S')   a[4][4]++;
     65             if(s[i]=='T')   a[4][5]++;
     66             if(s[i]=='U')   a[5][0]++;
     67             if(s[i]=='V')   a[5][1]++;
     68             if(s[i]=='W')   a[5][2]++;
     69             if(s[i]=='X')   a[5][3]++;
     70             if(s[i]=='Y')   a[5][4]++;
     71             if(s[i]=='Z')   a[5][5]++;
     72         }
     73              
     74         for(int i = 0 ; i < 6 ; i++){
     75             int sum = 0;
     76             for(int j = 0 ; j < 6; j++)
     77                 sum += a[i][j]; 
     78             
     79             h[i] = sum;
     80         }
     81          
     82          
     83         for(int i = 0 ; i < 6; i++){
     84             int sum = 0;
     85             for(int j = 0 ; j < 6; j++)
     86                 sum += a[j][i];
     87             
     88             l[i] = sum;
     89         }
     90          
     91         for(int i = 0 ; i < 6; i++){
     92             if(h[i] > maxh)
     93                 maxh = h[i];
     94             if(l[i] > maxl)
     95                 maxl = l[i];
     96         }
     97          
     98         //cout << maxh <<" " << maxl << endl;
     99         for(int i = 0 ; i < 6; i++){
    100             for(int j = 0; j < 6; j++){
    101                 //cout << h[i] << " " << l[j]<<endl;
    102                 if(h[i] == maxh && l[j] == maxl){  
    103                     int cnt = i*10+j;
    104                     printf("%c",m[cnt]);
    105                 }
    106             }
    107         }
    108         cout << endl;
    109     }
    110 }
    View Code
  • 相关阅读:
    java.lang.AbstractMethodError: Method com/mchange/v2/c3p0/impl/NewProxyPreparedStatement.isClosed()Z is abstract
    Spring MVC controller控制器映射无法访问问题!!!
    关于 use-default-filters 属性的说明
    Spring MVC工程 无法拦截到url请求
    Caused by: java.lang.ClassNotFoundException: org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter
    Spring事务
    MySQL几个join
    解决CentOS7关闭/开启防火墙出现Unit iptables.service failed to load: No such file or directory.
    【Mybatis架构】Mapper映射文件中的#{}与${}
    空指针异常(从辅助类获取对象之后需要实例化才能保存信息)
  • 原文地址:https://www.cnblogs.com/Asumi/p/8991443.html
Copyright © 2011-2022 走看看