Testing Beta Round (Unrated)
比赛链接: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)的更多相关文章
- Codeforces Beta Round #80 (Div. 2 Only)【ABCD】
Codeforces Beta Round #80 (Div. 2 Only) A Blackjack1 题意 一共52张扑克,A代表1或者11,2-10表示自己的数字,其他都表示10 现在你已经有一 ...
- Codeforces Beta Round #62 题解【ABCD】
Codeforces Beta Round #62 A Irrational problem 题意 f(x) = x mod p1 mod p2 mod p3 mod p4 问你[a,b]中有多少个数 ...
- Codeforces Beta Round #83 (Div. 1 Only)题解【ABCD】
Codeforces Beta Round #83 (Div. 1 Only) A. Dorm Water Supply 题意 给你一个n点m边的图,保证每个点的入度和出度最多为1 如果这个点入度为0 ...
- Codeforces Beta Round #13 C. Sequence (DP)
题目大意 给一个数列,长度不超过 5000,每次可以将其中的一个数加 1 或者减 1,问,最少需要多少次操作,才能使得这个数列单调不降 数列中每个数为 -109-109 中的一个数 做法分析 先这样考 ...
- Codeforces Beta Round #79 (Div. 2 Only)
Codeforces Beta Round #79 (Div. 2 Only) http://codeforces.com/contest/102 A #include<bits/stdc++. ...
- Codeforces Beta Round #77 (Div. 2 Only)
Codeforces Beta Round #77 (Div. 2 Only) http://codeforces.com/contest/96 A #include<bits/stdc++.h ...
- Codeforces Beta Round #76 (Div. 2 Only)
Codeforces Beta Round #76 (Div. 2 Only) http://codeforces.com/contest/94 A #include<bits/stdc++.h ...
- Codeforces Beta Round #75 (Div. 2 Only)
Codeforces Beta Round #75 (Div. 2 Only) http://codeforces.com/contest/92 A #include<iostream> ...
- Codeforces Beta Round #74 (Div. 2 Only)
Codeforces Beta Round #74 (Div. 2 Only) http://codeforces.com/contest/90 A #include<iostream> ...
随机推荐
- Solon rpc 之 SocketD 协议 - 消息加密模式
Solon rpc 之 SocketD 协议系列 Solon rpc 之 SocketD 协议 - 概述 Solon rpc 之 SocketD 协议 - 消息上报模式 Solon rpc 之 Soc ...
- go判断字符串是否是IP地址
前言 现在有这样的需求 正文 使用net包 net包的方法可以判断是否是 ip,需要注意的是 ip 分为 ipv4 和 ipv6 此方法将 v4 和 v6 一起判断出来 address := net. ...
- 【剑指 Offer】11.旋转数组的最小数字
题目描述 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转.输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素.例如,数组 [3,4,5,1,2] 为 [1,2,3,4,5] 的 ...
- 【C++】《C++ Primer 》第八章
第八章 IO库 一.IO类 1. 标准库定义的IO类型 头文件 作用 类型 iostream 从标准流中读写数据 istream, wistream 从流读取数据 ostream, wostream ...
- 剑指offer 面试题5:替换空格
题目描述 请实现一个函数,将一个字符串中的每个空格替换成"%20".例如,当字符串为We Are Happy. 则经过替换之后的字符串为We%20Are%20Happy. 编程思想 ...
- 前端面试:Http协议与浏览器
Http与Https的区别 Http是明文传输的,Https协议是在Http协议上添加了SSL的加密协议,可以进行加密传输和身份验证. 其实就是说Http对网络传输完全是裸奔状态,也就没办法防范中间人 ...
- maven生命周期与插件
目录 Maven生命周期 clean default site 命令与对应周期 插件与绑定 插件目标 插件绑定 内置绑定 自定义绑定 插件配置 本文主要是针对<maven实战>书中关键知识 ...
- grep和egrep
grep nobody /etc/passwd 显示/etc/passwd中带有nobody字样的行,区分大小写 grep -i nobody /etc/passwd 现实/etc/passwd中 ...
- cobalt strike出现连接超时情况解决办法
服务器安装好teamserver服务后,进行连接,此时出现了连接超时的情况 检查方法: 一.检查端口是否正常开启 netstat -an | grep <设置的端口号>centos7可以用 ...
- K8s遇到问题解决思路
问题排查一 从describe去查找相应的deploy/pod/rs/svc [root@k8s-master ~]# kubectl describe po/nginx-f95d765f9-8b6b ...