AtCoder Beginner Contest 177 (个人题解,C后缀和,D并查集,E质因数分解)
补题链接:Here
A - Don't be late
题意:高桥(Takahashi )现在要去距离家 \(D\) 米的地方面基,请问如果以最高速度 \(S\) 能否再 \(T\) 时刻准时到达?
\(cout << (d / s <= t ? "Yes" : "No");\)
注意点使用
float
B - Substring
注意到 S 和 T 长度很小,所有可以枚举
int main() {
ios_base::sync_with_stdio(false), cin.tie(0);
string s, t;
cin >> s >> t;
int n = s.size(), m = t.size();
int ans = m;
for (int start = 0; start <= n - m; ++start) {
int cnt = 0;
for (int i = 0; i < m; ++i)
if (t[i] != s[start + i]) cnt++;
ans = min(ans, cnt);
}
cout << ans << "\n";
return 0;
}
C - Sum of product of pairs
维护后缀和,记得取模即可
using ll = long long;
const ll mod = 1e9 + 7;
int main() {
ios_base::sync_with_stdio(false), cin.tie(0);
int n;
cin >> n;
ll a[n + 1], lst[n + 2] = {};
for (int i = 1; i <= n; ++i) cin >> a[i];
for (int i = n; i >= 1; --i) {
lst[i] = (lst[i + 1] % mod + (i == n ? 0 : a[i + 1]) % mod) % mod;
}
ll ans = 0;
for (int i = 1; i < n; ++i) {
ans = (ans + a[i] * lst[i] + mod) % mod;
}
cout << ans % mod << "\n";
return 0;
}
D - Friends
题意:给定 n 个人的 m 对朋友关系,现在进行最小化分组要是每个组里都没有互相认识的人,
思路:并查集,求出最大连通分量即可
- \(\mathcal{O}(NlogN)\)
const int N = 2e5 + 7;
int f[N], Siz[N];
int find(int x) {
return f[x] == x ? x : f[x] = find(f[x]);
}
void merge(int x, int y) {
x = find(x), y = find(y);
if (x != y)
f[x] = y, Siz[y] += Siz[x];
}
int main() {
ios_base::sync_with_stdio(false), cin.tie(0);
int n, m;
for (int i = 1; i <= N - 1; ++i) f[i] = i, Siz[i] = 1;
cin >> n >> m;
while (m--) {
int x, y;
cin >> x >> y;
merge(x, y);
}
sort(Siz, Siz + n + 1);
cout << Siz[n];
return 0;
}
E - Coprime
质因数分解,统计含有每个质因子的数的个数,然后求出最大的个数。如果这个值为 \(1\),说明两两互质;如果这个值小于\(N\),说明总体互质。
int cnt[1 << 20];
int all = 0;
bool isp[1 << 20];
int gcd(int a, int b) { return b ? gcd(b, a % b) : a; }
int main() {
ios_base::sync_with_stdio(false), cin.tie(0);
int n;
cin >> n;
for (int i = 0, x; i < n; ++i) {
cin >> x;
cnt[x]++;
all = gcd(all, x);
}
bool f = true;
for (int i = 2; i < (1 << 20); ++i) {
int sum = 0;
for (int j = i; j < (1 << 20); j += i) sum += cnt[j];
if (sum > 1) f = false;
}
cout << (f ? "pairwise coprime" : all == 1 ? "setwise coprime"
: "not coprime");
return 0;
}
AtCoder Beginner Contest 177
AtCoder Beginner Contest 177 (个人题解,C后缀和,D并查集,E质因数分解)的更多相关文章
- AtCoder Beginner Contest 177 题解
AtCoder Beginner Contest 177 题解 目录 AtCoder Beginner Contest 177 题解 A - Don't be late B - Substring C ...
- KYOCERA Programming Contest 2021(AtCoder Beginner Contest 200) 题解
KYOCERA Programming Contest 2021(AtCoder Beginner Contest 200) 题解 哦淦我已经菜到被ABC吊打了. A - Century 首先把当前年 ...
- AtCoder Beginner Contest 177 E - Coprime (数学)
题意:给你\(n\)个数,首先判断它们是否全都__两两互质__.然后再判断它们是否全都互质. 题解:判断所有数互质很简单,直接枚举跑个gcd就行,关键是第一个条件我们要怎么去判断,其实我们可以对所有数 ...
- AtCoder Beginner Contest 177 D - Friends (并查集)
题意:有\(n\)个人,给你\(m\)对朋友关系,朋友的朋友也是朋友,现在你想要将他们拆散放到不同的集合中,且每个集合中的人没有任何一对朋友关系,问最少需要多少集合. 题解:首先用并查集将朋友关系维护 ...
- AtCoder Beginner Contest 089完整题解
A - Grouping 2 Time limit : 2sec / Memory limit : 256MB Score : 100 points Problem Statement There a ...
- AtCoder Beginner Contest 177
比赛链接:https://atcoder.jp/contests/abc177/tasks A - Don't be late #include <bits/stdc++.h> using ...
- 2018.09.08 AtCoder Beginner Contest 109简要题解
比赛传送门 水题大赛? 全是水题啊!!! T1 ABC333 就是判断是不是两个数都是奇数就行了. 代码: #include<bits/stdc++.h> using namespace ...
- Atcoder Beginner Contest 138 简要题解
D - Ki 题意:给一棵有根树,节点1为根,有$Q$次操作,每次操作将一个节点及其子树的所有节点的权值加上一个值,问最后每个节点的权值. 思路:dfs序再差分一下就行了. #include < ...
- AtCoder Beginner Contest 148 题解
目录 AtCoder Beginner Contest 148 题解 前言 A - Round One 题意 做法 程序 B - Strings with the Same Length 题意 做法 ...
- AtCoder Beginner Contest 154 题解
人生第一场 AtCoder,纪念一下 话说年后的 AtCoder 比赛怎么这么少啊(大雾 AtCoder Beginner Contest 154 题解 A - Remaining Balls We ...
随机推荐
- Stable Diffusion扩散模型
人像生成模型 1.模型理论基础 扩散模型(Diffusion Model): 1.1 Diffusion Model 原理 首先,Denoise Model 需要一个起始的噪声图像作为输入.这个噪声图 ...
- Gradio-Lite: 完全在浏览器里运行的无服务器 Gradio
Gradio 是一个经常用于创建交互式机器学习应用的 Python 库.在以前按照传统方法,如果想对外分享 Gradio 应用,就需要依赖服务器设备和相关资源,而这对于自己部署的开发人员来说并不友好. ...
- 如何搭建园区3d可视化大屏
搭建园区3D可视化大屏需要考虑多个方面,包括硬件设备.数据源获取.软件工具和可视化设计. 以下是一个详细的步骤指南,帮助您了解如何搭建园区3D可视化大屏. 1. 硬件设备选择: - 显示屏幕:选择适合 ...
- keil 4 安装教程
一.下载 keil 官网 二.安装教程 1.开始安装 双击安装包,开始安装,直接下一步. 2.勾选同意,下一步 3.选择软件安装路径,下一步 4.填写信息 可以随意填写,下一步. 5.等待安装 6.安 ...
- [ABC237G] Range Sort Query
Problem Statement Given is a permutation $P=(P_1,P_2,\ldots,P_N)$ of $1,2,\ldots,N$, and an integer ...
- SpringBoot核心注解:@SpringBootApplication
@SpringBootApplication它是由三个注解的复合: @ComponentScan @SpringConguration @EnableAutoConfiguration 三个注解的作用 ...
- AtCoder Beginner Contest 071
第二次打日服... 感觉比较水.因为聚会的原因,还几十分钟结束的时候才打开电脑. D题就没看.难度不知. 题目链接http://abc071.contest.atcoder.jp/ ABC都水题. C ...
- 用python将卡尔曼滤波技术和统计套利应用在期货市场
背景 根据当前中国的交易规则,股票不能做空.与更发达的市场相反,套利机会不容易实现.这表明那些寻找并能够利用它们的人可能会有机会. 因此,我决定使用统计套利和配对交易技术专注于中国的期货市场. 战略理 ...
- 数字孪生技术助力GIS行业实现视效升级
在当今数字化时代,数字孪生技术正逐渐成为各行各业的一项核心技术,而地理信息系统(GIS)行业也不例外.数字孪生和GIS的结合,为地理空间数据的采集.管理.分析和可视化提供了全新的可能性,使GIS行业得 ...
- 数字孪生与GIS的结合:创新灾害预防管理的未来
近年来,全球频发的自然灾害给人们的生命和财产安全带来了巨大威胁,灾害预防管理成为当务之急.然而,随着数字孪生技术和GIS的迅猛发展,一种全新的解决方案正在崭露头角.数字孪生与GIS的结合,为灾害预防管 ...