码迷,mamicode.com
首页 > 其他好文 > 详细

Testing Beta Round (Unrated)

时间:2020-07-24 21:43:12      阅读:67      评论:0      收藏:0      [点我收藏+]

标签:上下左右   tips   char   cout   beta   seq   span   链接   test   

比赛链接:https://codeforces.com/contest/1390

A. 123-sequence

题意

给出一个只含有 $1,2,3$ 的数组,问使所有元素相同至少要替换多少元素。

题解

统计数组中出现次数最多的元素即可。

代码

#include <bits/stdc++.h>
using namespace std;
int main() {
    int n; cin >> n;
    int mx = 0;
    map<int, int> cnt;
    for (int i = 0; i < n; ++i) {
        int x; cin >> x;
        mx = max(mx, ++cnt[x]);
    }
    cout << n - mx << "\n";
}

B. Right Triangles

题意

给出一个只含有 ‘*‘,‘.‘ 的 $n \times m$ 的方阵,问方阵中有多少两条直角边与方阵平行的由 ‘*‘ 组成三个顶点的直角三角形。

题解

预处理出每个点上下左右 ‘*‘ 的个数,然后枚举四个方向的直角三角形即可。

Tips

 == 的优先级要先于 = ,所以如果赋值中有 == ,应将其括起来。

代码

#include <bits/stdc++.h>
using ll = long long;
using namespace std;
const int N = 1005;

int n, m;
char MP[N][N];
ll u[N][N], d[N][N], l[N][N], r[N][N];

int main() {
    cin >> n >> m;
    for (int i = 1; i <= n; ++i) {
        for (int j = 1; j <= m; ++j) {
            cin >> MP[i][j];
        }
    }
    for (int i = 1; i <= n; ++i) {
        for (int j = 1; j <= m; ++j) {
            l[i][j] = l[i][j - 1] + (MP[i][j] == *);
        }
        for (int j = m; j >= 1; --j) {
            r[i][j] = r[i][j + 1] + (MP[i][j] == *);
        }
    }
    for (int i = 1; i <= m; ++i) {
        for (int j = 1; j <= n; ++j) {
            u[j][i] = u[j - 1][i] + (MP[j][i] == *);
        }
        for (int j = n; j >= 1; --j) {
            d[j][i] = d[j + 1][i] + (MP[j][i] == *);
        }
    }
    ll ans = 0;
    for (int i = 1; i <= n; ++i) {
        for (int j = 1; j <= m; ++j) {
            if (MP[i][j] == *) {
                --u[i][j], --d[i][j], --l[i][j], --r[i][j]; //减去自身
                ans += u[i][j] * l[i][j];
                ans += u[i][j] * r[i][j];
                ans += d[i][j] * l[i][j];
                ans += d[i][j] * r[i][j];
            }
        }
    }
    cout << ans << "\n";
}

今晚的 cf 明天再补,早些休息吧

Testing Beta Round (Unrated)

标签:上下左右   tips   char   cout   beta   seq   span   链接   test   

原文地址:https://www.cnblogs.com/Kanoon/p/13374153.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!