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/ ...
随机推荐
- 匿名远程启动jenkins的job
安装jenkins插件Build Authorization Token Root job配置中的构建触发器,勾选触发远程构建,输入要用的令牌,如soul 通过jenkins地址调用触发 非参数化jo ...
- python循环语句(二)
Python for循环可以遍历任何序列的项目,如一个列表或者一个字符串. 知识点:for循环的语法格式如下: for iterating_var in sequence: statements(s) ...
- SpringBoot整合SpringSecurity实现前后端分离认证授权
1.什么是SpringSecurity? Spring Security是一个功能强大且高度可定制的身份验证和访问控制框架.它实际上是保护基于spring的应用程序的标准. Spring Securi ...
- Java中“100==100”为true,而"1000==1000"为false?
前言 今天跟大家聊一个有趣的话题,在Java中两个Integer对象做比较时,会产生意想不到的结果. 例如: Integer a = 100; Integer b = 100; System.out. ...
- ElasticSearch之Index stats API
获取指定索引的统计数据. 获取指定索引的全部统计数据,命令样例如下: curl -X GET "https://localhost:9200/testindex_001/_stats?pre ...
- ElasticSearch之cat recovery API
命令样例如下: curl -X GET "https://localhost:9200/_cat/recovery?v=true&pretty" --cacert $ES_ ...
- C语言之小明的加减法
1.题目内容: 叛逆期的小明什么都喜欢反着做,连看数字也是如此(负号除外),比如: 小明会把1234它看成4321:把-1234看成-4321:把230看成032 (032=32):把-230看成-0 ...
- .Net人的自我修养-书目汇总
.Net人的自我修养-书目汇总 2019年来现在的公司开始从事.Net相关的工作.记录一下工作以来看过(或者翻过)和听过还不错打算看相关的技术书籍或资料. 为了方便给大家参考,看(翻)过书目以难度排序 ...
- 华为云FusionInsight助力宇宙行打造金融数据湖新标杆
摘要:工行采用了华为云FusionInsight MRS大数据存算分离方案,实现了大数据平台与OBS对象存储服务的对接,将原有的HDFS数据无缝迁移到OBS上.在保证性能的前提下,实现了计算与存储独立 ...
- 用100W+行代码贡献经验,带你了解如何参与OpenHarmony开源
摘要:截至2022年11月,深开鸿共计参与共建OpenAtom OpenHarmony(以下简称OpenHarmony)社区16个SIG,其中4个为深开鸿主导,并累计贡献代码量超过百万行. 本文分享自 ...