/ SeriousOJ /

Record Detail

Accepted


  
# Status Time Cost Memory Cost
#1 Accepted 1ms 532.0 KiB
#2 Accepted 16ms 788.0 KiB
#3 Accepted 15ms 816.0 KiB
#4 Accepted 15ms 788.0 KiB
#5 Accepted 17ms 788.0 KiB
#6 Accepted 18ms 848.0 KiB
#7 Accepted 20ms 788.0 KiB
#8 Accepted 24ms 856.0 KiB
#9 Accepted 34ms 788.0 KiB
#10 Accepted 15ms 840.0 KiB
#11 Accepted 22ms 856.0 KiB
#12 Accepted 24ms 832.0 KiB
#13 Accepted 28ms 792.0 KiB
#14 Accepted 23ms 816.0 KiB
#15 Accepted 16ms 788.0 KiB
#16 Accepted 16ms 816.0 KiB
#17 Accepted 16ms 812.0 KiB
#18 Accepted 24ms 824.0 KiB
#19 Accepted 23ms 788.0 KiB
#20 Accepted 21ms 836.0 KiB
#21 Accepted 15ms 788.0 KiB
#22 Accepted 28ms 3.09 MiB
#23 Accepted 17ms 2.574 MiB
#24 Accepted 30ms 3.156 MiB
#25 Accepted 16ms 2.52 MiB
#26 Accepted 30ms 3.258 MiB
#27 Accepted 21ms 3.129 MiB
#28 Accepted 15ms 2.348 MiB
#29 Accepted 47ms 3.062 MiB
#30 Accepted 19ms 3.207 MiB
#31 Accepted 24ms 3.117 MiB
#32 Accepted 6ms 932.0 KiB
#33 Accepted 6ms 932.0 KiB
#34 Accepted 8ms 936.0 KiB
#35 Accepted 13ms 932.0 KiB
#36 Accepted 16ms 952.0 KiB
#37 Accepted 37ms 1.578 MiB
#38 Accepted 20ms 1.602 MiB
#39 Accepted 20ms 1.59 MiB
#40 Accepted 20ms 1.582 MiB
#41 Accepted 20ms 1.605 MiB
#42 Accepted 6ms 3.77 MiB
#43 Accepted 7ms 3.77 MiB
#44 Accepted 7ms 3.867 MiB
#45 Accepted 9ms 3.941 MiB
#46 Accepted 9ms 3.742 MiB
#47 Accepted 12ms 3.77 MiB
#48 Accepted 14ms 3.945 MiB
#49 Accepted 13ms 3.723 MiB
#50 Accepted 13ms 3.758 MiB

Code

// Authored by Ibrahimfostok...
// Next level : "Master"
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const ll mod = 998244353;
// const ll mod = 1e9 + 7;
#define gcd __gcd
#define int ll
#define ld long double
#define lcm(a, b) (a * b / gcd(a, b))
#define ceil(x, y) (((x) + (y) - 1ll) / (y))
#define all(x) x.begin(), x.end()
#define rall(x) x.rbegin(), x.rend()
#define pb push_back
#define MOD(x) x = ((x % mod) + mod) % mod
const long double pi = 3.14159265358979323846;
mt19937_64 rng(chrono::steady_clock::now().time_since_epoch().count());
ll rand(ll L, ll R)
{
    return uniform_int_distribution<ll>(L, R)(rng);
}
//
void My_Solve(int TC)
{
    // cout << setprecision(10) << fixed;
    int n, m, ans = 0;
    cin >> n >> m;
    vector<string> a(n);
    vector<vector<int>> pre(n + 1, vector<int>(m));
    vector<vector<int>> suf(n + 2, vector<int>(m));
    for (int i = 0; i < n; i++)
        cin >> a[i];
    for (int j = 0; j < m; j++)
    {
        vector<int> cnt(26);
        for (int i = 0; i < n; i++)
            cnt[a[i][j] - 'a']++, pre[i + 1][j] = max(cnt[a[i][j] - 'a'], pre[i][j]);
        cnt.assign(26, 0);
        for (int i = n - 1; i >= 0; i--)
        {
            cnt[a[i][j] - 'a']++;
            suf[i + 1][j] = max(cnt[a[i][j] - 'a'], suf[i + 2][j]);
        }
    }
    for (int i = 0; i <= n; i++)
        ans = max(ans, accumulate(all(pre[i]), 0ll) + accumulate(all(suf[i + 1]), 0ll));
    cout << ans << '\n';
}
int32_t main()
{
    ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
    // freopen("input.txt", "r", stdin);
    // freopen("output.txt", "w", stdout);
    int t = 1;
    cin >> t;
    for (int i = 1; i <= t; i++)
        My_Solve(i);
    return 0;
}

Information

Submit By
Type
Submission
Problem
P1164 Simple character matching game
Contest
Brain Booster #8
Language
C++17 (G++ 13.2.0)
Submit At
2025-02-17 15:29:00
Judged At
2025-02-17 15:29:00
Judged By
Score
100
Total Time
47ms
Peak Memory
3.945 MiB