AtCoder Beginner Contest 188 题解
AtCoder Beginner Contest 188
A,B很简单就不多说
C - ABC Tournament
找出前一半的最大值和后一半的最大值,二者中较小的那一个对应的序号就是最后的答案。
时间复杂度:\(\mathcal{O}(2^N)\)
using ll = long long;
int main() {
ios_base::sync_with_stdio(false), cin.tie(0);
ll a[70000];
int n;
cin >> n, n = pow(2, n);
for (int i = 0; i < n; ++i) cin >> a[i];
ll m1 = a[0], idx = 0;
for (int i = 1; i < n / 2; ++i)
if (a[i] > m1) m1 = a[i], idx = i;
ll m2 = a[n / 2], idxx = n / 2;
for (int i = n / 2 + 1; i < n; ++i)
if (a[i] > m2) m2 = a[i], idxx = i;
cout << (m1 < m2 ? idx + 1 : idxx + 1) << "\n";
return 0;
}
D - Snuke Prime
时间复杂度:\(\mathcal{O}(N)\)
using ll = long long;
int main() {
ios_base::sync_with_stdio(false), cin.tie(0);
ll N, C;
cin >> N >> C;
vector<pair<ll, ll>> event;
for (ll i = 0; i < N; ++i) {
ll a, b, c;
cin >> a >> b >> c;
event.push_back({a - 1, c});
event.push_back({b, -c});
}
sort(event.begin(), event.end());
ll ans = 0, fee = 0, time = 0;
for (auto [x, y] : event) {
if (x != time) {
ans += min(C, fee) * (x - time);
time = x;
}
fee += y;
}
cout << ans << "\n";
return 0;
}
E - Peddler
题意:N 个城镇,每个镇子购买和卖出 \(1kg\) 黄金的价格是 \(A_i\) ,现在可以我们有 M条道路,问怎么才能获得最大收益
思路:虽然看过去需要搜索做,但这里只要逆向动态规划即可。
int main() {
ios_base::sync_with_stdio(false), cin.tie(0);
int N, M;
cin >> N >> M;
vector<int> A(N + 1);
for (int i = 1; i <= N; ++i) cin >> A[i];
vector<vector<int>> e(N + 1);
for (int i = 0; i < M; ++i) {
int u, v;
cin >> u >> v;
// e[u].emplace_back(v), e[v].emplace_back(u);
e[u].emplace_back(v); // 这里单向和双向都没什么区别
}
vector<int> h(N + 1, -1e9);
int ans = -1e9;
for (int i = N; i > 0; --i) {
for (auto v : e[i]) h[i] = max(h[i], h[v]);
ans = max(ans, h[i] - A[i]);
h[i] = max(h[i], A[i]);
}
cout << ans << "\n";
return 0;
}
F - +1-1x2
- 如果 \(X \ge Y\) ,则答案为\(X - Y\)
- 如果 \(X < Y\) ,则可以考虑用DFS,详细可以看代码
using ll = long long;
ll x, y, ans = 1e18;
map<ll, ll> mp;
ll dfs(ll a) {
if (mp.count(a)) return mp[a];
if (a <= x) return x - a;
if (a & 1)
return mp[a] = min(min(dfs((a + 1) / 2), dfs((a - 1) / 2)) + 2, a - x);
else
return mp[a] = min(dfs(a / 2) + 1, a - x);
}
int main() {
cin >> x >> y;
cout << dfs(y);
}
AtCoder Beginner Contest 188 题解的更多相关文章
- AtCoder Beginner Contest 188题解
A 题意 问\(x,y\)相差是否小于\(3\) #include<iostream> #include<cstdio> #include<cmath> #defi ...
- AtCoder Beginner Contest 154 题解
人生第一场 AtCoder,纪念一下 话说年后的 AtCoder 比赛怎么这么少啊(大雾 AtCoder Beginner Contest 154 题解 A - Remaining Balls We ...
- AtCoder Beginner Contest 153 题解
目录 AtCoder Beginner Contest 153 题解 A - Serval vs Monster 题意 做法 程序 B - Common Raccoon vs Monster 题意 做 ...
- AtCoder Beginner Contest 177 题解
AtCoder Beginner Contest 177 题解 目录 AtCoder Beginner Contest 177 题解 A - Don't be late B - Substring C ...
- AtCoder Beginner Contest 184 题解
AtCoder Beginner Contest 184 题解 目录 AtCoder Beginner Contest 184 题解 A - Determinant B - Quizzes C - S ...
- AtCoder Beginner Contest 173 题解
AtCoder Beginner Contest 173 题解 目录 AtCoder Beginner Contest 173 题解 A - Payment B - Judge Status Summ ...
- AtCoder Beginner Contest 172 题解
AtCoder Beginner Contest 172 题解 目录 AtCoder Beginner Contest 172 题解 A - Calc B - Minor Change C - Tsu ...
- AtCoder Beginner Contest 169 题解
AtCoder Beginner Contest 169 题解 这场比赛比较简单,证明我没有咕咕咕的时候到了! A - Multiplication 1 没什么好说的,直接读入两个数输出乘积就好了. ...
- AtCoder Beginner Contest 148 题解
目录 AtCoder Beginner Contest 148 题解 前言 A - Round One 题意 做法 程序 B - Strings with the Same Length 题意 做法 ...
- AtCoder Beginner Contest 151 题解报告
总的来说,这次的题目比较水,然而菜菜的我并没有把所有题目都做完,话不多说,直接来干货: A:Next Alphabet 题目链接:https://atcoder.jp/contests/abc151/ ...
随机推荐
- 【Javaweb】Servlet* | 请求重定向【🖤🖤】
请求重定向的含义 请求重定向,是指客户端给服务器发请求,然后服务器告诉客户端说.我给你一些地址,你去新地址访问,叫请求重定向(因为之前的地址可能已经废弃). 请求重定向的实现代码 请求重定向的第一种方 ...
- Codeforces Round #691 (Div. 2) D - Glass Half Spilled(DP)
题目 补下因实验漏掉的CF(还以为是晚上,没想到是下午开始).前三题过的很顺利,到D题时想了会发现数据很小爆搜貌似能过,就以为是道水题,交了一发T了,胡乱加了点剪枝还是T.逐渐意识到事情的严重性.考虑 ...
- 数据分析工具 Datainside、Power BI、帆软(FineReport)怎么选?
Datainside.Power BI和帆软(FineReport)都是数据分析领域常用的工具,它们各自有不同的特点和适用场景.下面将会详细介绍每个工具的功能和优势,以便您进行选择. Datainsi ...
- Netty源码学习7——netty是如何发送数据的
零丶引入 系列文章目录和关于我 经过<Netty源码学习4--服务端是处理新连接的&netty的reactor模式和<Netty源码学习5--服务端是如何读取数据的>,我们了 ...
- jmeter二次开发自定义函数助手
需求:在工作中,需要使用唯一的字符串来作为订单ID,于是想到了UUID,要求uuid中不能有特殊字符包括横线,所以就有了重新写一个uuid进行使用: 准备:idea 依赖包: 注意事项:必须有包且包的 ...
- 手把手教你搭建 Ceph+JuiceFS
Ceph 提供了对象存储,可作为存储引擎在 JuiceFS 中使用.这一组合非常适合云计算.大数据分析和机器学习等数据密集型应用场景. 在日常部署中可直接通过 Ceph RADOS 配合 JuiceF ...
- [ABC264Ex] Perfect Binary Tree
Problem Statement We have a rooted tree with $N$ vertices numbered $1,2,\dots,N$. The tree is rooted ...
- linux没有ifconfig命令
直接控制台安装(输入下面对应的tools命令就好了) ifconfig yum install -y net-tools.x86_64 vim yum -y install vim*
- SpringBoot项目整合微信登录
一.开通微信登录 去微信开发者平台 1.注册 2.邮箱激活 3.完善开发者资料 4.开发者资质认证 准备营业执照,1-2个工作日审批.300元 5.创建网站应用 6.提交审核,7个工作日审批 7.熟悉 ...
- 2021AI量化投资训练营重磅升级,自带编程的优势显而易见
量化交易规模突破万亿大关 国内量化交易规模快速发展,今年量化基金已突破万亿大关,并且量化私募的整体业绩十分亮眼,过去5年一线量化私募的超额收益基本在20%~30%,量化交易的占比已达到20%-30%( ...