AtCoder Beginner Contest 166 (A~E)
比赛链接:Here
AB水题
C - Peaks
题意:
- 给出
个观察台的高度,以及 条边,定义“好观察台”:比所有直接相连的观测台都高
思路:
因为道路是双向的,互相判断一下即可
a &= bool
这个写法学习了
int main() {
cin.tie(nullptr)->sync_with_stdio(false);
int n, m; cin >> n >> m;
vector<int>h(n), st(n, 1);
for (int &i : h) cin >> i;
while (m--) {
int a, b;
cin >> a >> b, a -= 1, b -= 1;
st[a] &= h[a] > h[b];
st[b] &= h[b] > h[a];
}
int cnt = 0;
for (int i = 0; i < n; ++i) cnt += st[i];
cout << cnt;
}
D - I hate Factorization
题意:
- 给出
请问存在 使得 吗
思路:
因为 A,B可取负值,而且数据范围挺大的,说明应该有技巧
实际写了一下数据发现
那么直接枚举就好了
ll fac(ll x) {return x * x * x * x * x;}
int main() {
cin.tie(nullptr)->sync_with_stdio(false);
ll n; cin >> n;
for (ll i = -1000; i <= 1000; ++i) {
ll y = fac(i) + n;
for (ll j = -1000; j <= 1000; ++j)
if (fac(j) == y) {
return printf("%lld %lld", j, i), 0;
}
}
}
E - This Message Will Self-Destruct in 5s
题意:
-
给出一个长度为 n 的序列 h,
求问有多少组不同的无序数对
使得
思路:
思维题,题意是找数对
我们可以设 map
存数即可(在ABC里做过类似的了)
int main() {
cin.tie(nullptr)->sync_with_stdio(false);
int n; cin >> n;
int a[n + 1];
ll cnt = 0;
map<int, int>mp;
for (int i = 1; i <= n; ++i) {
cin >> a[i];
cnt += mp[a[i] - i];
mp[-a[i] - i] += 1;
}
cout << cnt ;
}
分类:
刷题笔记: AtCoder
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· Obsidian + DeepSeek:免费 AI 助力你的知识管理,让你的笔记飞起来!
· 分享4款.NET开源、免费、实用的商城系统
· 解决跨域问题的这6种方案,真香!
· 一套基于 Material Design 规范实现的 Blazor 和 Razor 通用组件库
· 5. Nginx 负载均衡配置案例(附有详细截图说明++)
2020-08-25 题解 CF1388A 【Captain Flint and Crew Recruitment】(思维、贪心)
2020-08-25 BZOJ 2038: [2009国家集训队]小Z的袜子【莫队算法裸题】