AtCoder Regular Contest 120 AB题
比赛链接:Here
A - Max Add
观察一下发现每次输出与两点有关,前缀和和当前位置最大值
int main() {
cin.tie(nullptr)->sync_with_stdio(false);
int n; cin >> n;
ll s = 0, t = 0, mx = INT_MIN;
for (int i = 1, x; i <= n; ++i) {
cin >> x;
s += x, t += s;
mx = max(mx, 1ll * x);
cout << t + 1ll * i * mx << "\n";
}
}
B - Uniformly Distributed
问的是网格里有红色,蓝色,和没涂色的格子,问有多少种方法,将没涂色的格子上色,使得,无论怎么走(题目规定只能向下,向右),使得经过的红色的数量相等。
思路:从必经之路上(斜线)入手,如给斜线上两种颜色都有,那么题目无解,如果仅有一种颜色,那该斜线仅有一种涂色方式,如果都没有,则可涂两种颜色。于是问题的答案变成了 \(2^{cnt}\) ,cnt 代表没有涂色的斜线的条数.
const int N = 510, mod = 998244353;
string s[N];
ll qpow(ll a, ll b) {
ll ans = 1 ;
for (; b; b >>= 1, a = a * a % mod);
if (b & 1) ans = ans * a % mod;
return ans;
}
int main() {
cin.tie(nullptr)->sync_with_stdio(false);
int n, m;
cin >> n >> m;
for (int i = 1; i <= n; ++i) cin >> s[i], s[i] = "@" + s[i];
int r = 0, b = 0, cnt = 0, ans = 0;
bool f = 0;
for (int i = 1; i <= n; ++i) {
int x = i, y = 1;
r = 0, b = 0, cnt = 0;
while (x >= 1 and y <= m) {
if (s[x][y] == '.') cnt++;
if (s[x][y] == 'R') r = 1;
if (s[x][y] == 'B') b = 1;
x--, y++;
}
if (r == 1 and b == 1)f = 1;
else if (r == 1 and b == 0 || r == 0 and b == 1);
else {
if (cnt) ans++;
}
}
for (int i = 1; i <= m; ++i) {
if (i == 1) continue;
int x = n, y = i;
r = 0, b = 0, cnt = 0;
while (x >= 1 and y <= m) {
if (s[x][y] == '.') cnt++;
if (s[x][y] == 'R') r = 1;
if (s[x][y] == 'B') b = 1;
x--, y++;
}
if (r == 1 and b == 1)f = 1;
else if (r == 1 and b == 0 || r == 0 and b == 1);
else {
if (cnt) ans++;
}
}
if (f) ans = 0;
else ans = (ans + qpow(2, ans)) % mod;
cout << ans << "\n";
}
上面代码写复杂了,看了下其他人的发现一个很简洁的写法
const int md = 998244353;
int n, m, i, j, r;
char s[505][505], c[1010];
void solve() {
scanf("%d%d", &n, &m);
for (i = 0; i < n; i++) {
scanf("%s", s[i]);
for (j = 0; j < m; j++) if (s[i][j] != '.') {
if (c[i + j] != 0 && c[i + j] != s[i][j]) { puts("0"); return ;}
c[i + j] = s[i][j];
}
}
for (r = 1, i = 0; i <= n + m - 2; i++) if (c[i] == 0) r = (r * 2) % md;
printf("%d\n", r);
}
AtCoder Regular Contest 120 AB题的更多相关文章
- AtCoder Regular Contest 151补题
AtCoder Regular Contest 151 A. Equal Hamming Distances 简单题,注意下答案需要字典序最小即可 #include<bits/stdc++.h& ...
- AtCoder Regular Contest 128 部分题题解
关于鄙人罚坐两小时那件事...该开始看A题,这不就是个DP记录路径吗?Wrong了,嗯,我没用double,又Wrong,怎么回事,使劲检查自己的算法和细节问题,一个小时过去了,...这没错啊,又反复 ...
- Atcoder Regular Contest 060 F题第一问答案证明
一切的开始 令 \(x\) 为字符串,\(p\) 为正整数.如果对于满足 \(0\le i<|x|−p\) 的任何整数 \(i\) 满足 \(x[i]=x[i+p]\),则 \(p\) 称为 \ ...
- AtCoder Regular Contest 094 (ARC094) CDE题解
原文链接http://www.cnblogs.com/zhouzhendong/p/8735114.html $AtCoder\ Regular\ Contest\ 094(ARC094)\ CDE$ ...
- AtCoder Regular Contest 092
AtCoder Regular Contest 092 C - 2D Plane 2N Points 题意: 二维平面上给了\(2N\)个点,其中\(N\)个是\(A\)类点,\(N\)个是\(B\) ...
- AtCoder Regular Contest 102
AtCoder Regular Contest 102 C - Triangular Relationship 题意: 给出n,k求有多少个不大于n的三元组,使其中两两数字的和都是k的倍数,数字可以重 ...
- AtCoder Regular Contest 096
AtCoder Regular Contest 096 C - Many Medians 题意: 有A,B两种匹萨和三种购买方案,买一个A,买一个B,买半个A和半个B,花费分别为a,b,c. 求买X个 ...
- AtCoder Regular Contest 097
AtCoder Regular Contest 097 C - K-th Substring 题意: 求一个长度小于等于5000的字符串的第K小子串,相同子串算一个. K<=5. 分析: 一眼看 ...
- AtCoder Regular Contest 098
AtCoder Regular Contest 098 C - Attention 题意 给定一个只包含"E","W"字符串,可以花一的花费使他们互相转换.选定 ...
- Atcoder regular Contest 073(C - Sentou)
Atcoder regular Contest 073(C - Sentou) 传送门 每个人对开关的影响区间为a[i]--a[i]+t,因此此题即为将所有区间离散化后求所有独立区间的长度和 #inc ...
随机推荐
- mac中删除本地maven库中下载失败的.lastUpdated文件
在 macOS 中,要删除本地 Maven 仓库中所有的 .lastUpdated 文件,您可以使用 find 命令结合 rm 命令来执行这个操作.这可以在终端(Terminal)中完成. 打开您的终 ...
- 解决Spring Boot Mail无法发送HTML格式的邮件
Spring Boot版本:2.6.2 查阅spring-boot-starter-mail源码的MimeMessageHelper.setText方法,发现有个Boolean类型参数控制是否是HTM ...
- macOS 苹果电脑双面打印单面打印PDF设置
苹果的打印服务分为两个部分,一个是应用层另一个是系统层. 其中双面打印或单面打印统一在系统层面设置,下面我分别截图示意wps pdf和福昕pdf两款软件设置双面打印. 1.WPS PDF 在完成方式中 ...
- [ABC246G] Game on Tree 3
Problem Statement There is a rooted tree with $N$ vertices, Vertex $1$ being the root. For each $i = ...
- pinia入门案例-获取频道分类列表并渲染
使用pinia的action异步获取频道分类列表数据并渲染到页面中. 接口: GET请求,http://geek.itheima.net/v1_0/channels store/channel.js ...
- python tkinter使用(十一)
python tkinter使用(十一) 本篇文章主要讲下tkinter 窗口的一些属性,以及实现无法关闭的窗口中遇到的一些问题. #!/usr/bin/python3 # -*- coding: U ...
- 【分享】推荐一个非常好用的redis远程连接工具
推荐一个非常好用的redis远程连接工具 蓝奏云地址 https://wwsi.lanzoum.com/ig7xZ0xspf0h 密码:4vnz 二维码:
- Codeforce Round 916(div3)
Codeforces Round 916(div3) [Problem - A - Codeforces]:Problemsolving Log A.题 直接看样例进行分析,发现每一次出现的字符代表着 ...
- 深度解析 PyTorch Autograd:从原理到实践
本文深入探讨了 PyTorch 中 Autograd 的核心原理和功能.从基本概念.Tensor 与 Autograd 的交互,到计算图的构建和管理,再到反向传播和梯度计算的细节,最后涵盖了 Auto ...
- MS17-010(永恒之蓝)漏洞分析与复现
一.漏洞简介1.永恒之蓝介绍:永恒之蓝漏洞(MS17-010),它的爆发源于 WannaCry 勒索病毒的诞生,该病毒是不法分子利用NSA(National Security Agency,美国国家安 ...