寒光博客

[CodeForces]#577A.Important Exam
Codeforces Round #577 (Div. 2), problem: (A) 问题链接:https:/...
扫描右侧二维码阅读全文
05
2019/08

[CodeForces]#577A.Important Exam

Codeforces Round #577 (Div. 2), problem: (A)
问题链接:https://codeforces.com/contest/1201/problem/A

题目大意

一个班级的学生写多项选择题。
这个班有n个学生。测试有m个问题,每个问题都有5个可能的答案(A, B, C, D或E),每个问题都有一个正确的答案。问题i的正确答案值ai分。不正确的答案得零分。
学生们记得他们在考试中给出的答案,但是他们不知道正确的答案是什么。他们非常乐观,所以他们想知道班上所有学生的最大可能总分是多少。
输入
第一行包含整数n和m(1≤n,m≤1000)——班级人数和考试题目数。
下面n行中的每一行都包含字符串si (|si|=m),描述第i个学生的答案。第j个字符表示第j个问题的学生答案(A、B、C、D或E)。
最后一行包含m个整数a1,a2,…,am(1≤ai≤1000)-每个问题正确答案的点数。
输出
打印一个整数 这个班的最大可能总分

分析

求出每个问题的出现次数最多的选项的个数 ✖ 对应的分数即可 求和即可。
也就是 就把每一列出现次数最多的字母数量加一下

例如1:

2 4
ABCD
ABCE
1 2 3 4

数据分析:

每一行数字的代表 某一个问题 所有选项的出现频率
如 20000 代表 第一个问题A总共出现2次

20000
02000
00200
00011
A:2$*$1
B:2$*$2
C:2$*$3
D:1$*$4
ans=16

例如2:

6 5
AAAAA
AAAAB
AAABB
AABBB
ABBBB
BBBBB
999 13 877 342 1

数据分析:

输入第一列 510000 代表 问题1 A出现5次 B出现1次
输入第三列 240000 代表 问题4 A出现2次 B出现4次

510000
420000
330000
240000
150000
A:5$*$999
B:4$*$13
C:3$*$877
D:4$*$342
E:5$*$1
ans=9051

代码

package cf;

import java.util.Scanner;

import static java.lang.Math.max;

public class AImportantExam {

    public static void main(String[] args) {
        Scanner cin = new Scanner(System.in);
        int n = cin.nextInt();
        int m = cin.nextInt();
        int ans=0;
         int[][] e = new int[m][n];
        for (int i = 0; i < n; i++) {
           String  s = cin.next();
            for (int j = 0; j < m; j++) {
                e[j][s.charAt(j) - 'A']++;
            }
        }
//        System.out.println();
//        for (int i = 0; i <m ; i++) {
//            for (int j = 0; j < n; j++) {
//                System.out.print(e[i][j]);
//            }
//            System.out.println();
//        }
        for (int i = 0; i < m; i++) {
            int a=cin.nextInt();
            int theMax=max(e[i][0],max(e[i][1],max(e[i][2],max(e[i][3],e[i][4]))));
//            System.out.println((char)('A'+i)+":"+theMax+"*"+a);
            ans+=theMax*a;

        }
        System.out.println(ans);

    }
}
本文作者:Author:     文章标题:[CodeForces]#577A.Important Exam
本文地址:https://dxoca.cn/Algorithm/220.html       百度已收录
版权说明:若无注明,本文皆为“Dxoca's blog (寒光博客)”原创,转载请保留文章出处。
Last modification:August 12th, 2019 at 06:58 pm
如果觉得我的文章对你有用,请随意赞赏

Leave a Comment

6 comments

  1. L:30括号真多 Java是不是支持隔行书写,还是排个版吧。方便检查
    话说评论区鼠标点一下就整体insert了,希望改一下

    1. Dxoca
      @灵

      谢谢|´・ω・)ノ

    2. Dxoca
      @灵

      好的 解决了~!

      1. @Dxoca

        what?这么快!怎么改的

        1. Dxoca
          @灵

          因为熟练

    3. Dxoca
      @灵

      哈哈哈 嵌套求 最大max嘛 qwq 的确,,整体insert 我看看