1 条题解

  • 0
    @ 2026-5-4 22:55:04

    解题思路

    对于每道题,我们统计每种答案(A、B、C、D、E)的出现次数。记 cnt[i][A]cnt[i][A] 为第 ii 题中答案 A 被选中的次数,其他字母同理。

    ii 题能获得的最大分数为:

    $$a_i \times \max(cnt[i][A], cnt[i][B], cnt[i][C], cnt[i][D], cnt[i][E]) $$

    最终答案为所有 mm 道题的最大得分之和。


    #include<bits/stdc++.h>
    using namespace std;
    typedef long long ll;
    ll n, m;
    string s[1005];
    ll a[1005];
    ll ans;
    ll b[1005][5];
    ll ma;
    int main()
    {
        ios_base::sync_with_stdio(false);
        cin>>n>>m;
        for (ll i=1; i<=n; i++)
        {
            cin>>s[i];
        }
        for (ll i=0; i<m; i++)
        {
            cin>>a[i];
        }
        for (ll i=0; i<m; i++)
        {
            ma=0;
            for (ll j=1; j<=n; j++)
            {
                b[i][s[j][i]-'A']++;
            }
            for (ll j=0; j<5; j++)
            {
                ma=max(ma, b[i][j]);
            }
            ans+=ma*a[i];
        }
        cout<<ans;
    }
    
    • 1

    信息

    ID
    6877
    时间
    1000ms
    内存
    256MiB
    难度
    10
    标签
    递交数
    1
    已通过
    1
    上传者