1437A. Marketing Scheme

题意:最近猫粮店正在打折销售猫粮罐头,在给定客人能买的罐头数量区间内求合适包装大小

思路:说实话,在比赛刚开始没看懂题,最后放弃读题直接研究给出的样例解释发现,我们可以假设 \(a = r + 1\) 再进行比较 \(l \% a >= \frac{(a + 1)} 2\)

void solve() {
ll l, r;
cin >> l >> r;
ll a = r + 1;
if (l % a >= (a + 1) / 2) cout << "YES\n";
else cout << "NO\n";
}

1437B. Reverse Binary Strings

题意:给定一个偶数长度的01字符串,求如何在最少的区间反转使得 字符串变为 “101010..."样式

思路:想清楚我们需要得到的是 10"串,那么对于其他情况都是不合法的 ”11,00“对于这些我们进行统计,最后只需要 \(k / 2\)即可

这个思路是比赛过程中观察而来的,证明待补。。。

void solve() {
cin >> n >> s, k = 0;
s[n] = s[0];
for (int i = 0; i < n; ++i)
if (s[i] == s[i + 1]) k++;
cout << k / 2 << endl;
}

1437C. Chef Monocarp

题意:我们有一位高级厨师,他知道每一道菜的美味时间 \(t_i\),但他每一分钟只能端出一道菜(已经拿出来的不能放回),如果拿出则会产生一个不愉快值 \(|T - t_i|\) ,求问怎么取出所有的菜的同时使总的不愉快值最小

思路:经典动态规划问题(脑抽写错了),这道题建议直接看代码理解。

// Author : RioTian
// Time : 20/10/28
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int inf = 0x3f3f3f3f;
const int N = 210;
int dp[N][N << 1], n, _;
void solve() {
cin >> n;
int a[n + 1];
for (int i = 1; i <= n; ++i) cin >> a[i];
sort(a + 1, a + 1 + n);
//模拟时间变化
for (int j = 1; j <= n; ++j)
for (int i = j; i <= 2 * n; ++i) {
int c = 1e6;
for (int k = j; k <= i; ++k) //求出每道菜最小的不愉快值
c = min(c, abs(k - a[j]) + dp[j - 1][k - 1]);
dp[j][i] = c;
}
cout << dp[n][n << 1] << endl;
}
int main() {
// freopen("in.txt", "r", stdin);
ios::sync_with_stdio(false), cin.tie(0), cout.tie(0);
cin >> _;
while (_--) solve();
}

1437D. Minimal Height Tree

题意:Monocarp原本有一颗树,但他为了研究BFS将树变成了一组点序列。求问还原这颗树时能构成的最小高度

思路:目前我们已知BFS的入队序列,这样我们可以构建一个二叉树,这样一定能构成一个最短高度的树。

如果有不了解二叉树的同学可以点击这里:Here

以及二叉树常用操作总结:Here

void solve() {
cin >> n;
vector<int> a(n), b(n);
for (auto &it : a) cin >> it;
int l = 0;
b[1] = 0;
for (int i = 1; i < n; ++i) {
if (a[i] < a[i - 1]) l++;
b[i] = b[l] + 1;
}
cout << b[n - 1] << endl;
}

Educational Codeforces Round 97 (Rated for Div. 2) (A - D题个人题解)的更多相关文章

  1. Educational Codeforces Round 97 (Rated for Div. 2)

    补了一场Edu round. A : Marketing Scheme 水题 #include <cstdio> #include <algorithm> typedef lo ...

  2. Educational Codeforces Round 97 (Rated for Div. 2) E. Make It Increasing(最长非下降子序列)

    题目链接:https://codeforces.com/contest/1437/problem/E 题意 给出一个大小为 \(n\) 的数组 \(a\) 和一个下标数组 \(b\),每次操作可以选择 ...

  3. Educational Codeforces Round 97 (Rated for Div. 2)【ABCD】

    比赛链接:https://codeforces.com/contest/1437 A. Marketing Scheme 题解 令 \(l = \frac{a}{2}\),那么如果 \(r < ...

  4. Educational Codeforces Round 97 (Rated for Div. 2) D. Minimal Height Tree (贪心)

    题意:有一个从根节点\(BFS\)得来的序列(每次\(bfs\)子节点的时候保证是升序放入队列的),现在让你还原树(没必要和之前相同),问能构造出的最小的树的深度. 题解:不看根节点,我们从第二个位置 ...

  5. Educational Codeforces Round 97 (Rated for Div. 2) C. Chef Monocarp (DP)

    题意:有\(n\)个菜在烤箱中,每个时刻只能将一个菜从烤箱中拿出来,第\(i\)个时刻拿出来的贡献是\(|i-a[i]|\),你可以在任意时刻把菜拿出来,问将所有菜拿出的最小贡献是多少? 题解: 先对 ...

  6. Educational Codeforces Round 59 (Rated for Div. 2) (前四题)

    A. Digits Sequence Dividing(英文速读) 练习英语速读的题,我还上来昏迷一次....只要长度大于2那么一定可以等于2那么前面大于后面就行其他no 大于2的时候分成前面1个剩下 ...

  7. Educational Codeforces Round 60 (Rated for Div. 2) - C. Magic Ship

    Problem   Educational Codeforces Round 60 (Rated for Div. 2) - C. Magic Ship Time Limit: 2000 mSec P ...

  8. Educational Codeforces Round 60 (Rated for Div. 2) - D. Magic Gems(动态规划+矩阵快速幂)

    Problem   Educational Codeforces Round 60 (Rated for Div. 2) - D. Magic Gems Time Limit: 3000 mSec P ...

  9. Educational Codeforces Round 43 (Rated for Div. 2)

    Educational Codeforces Round 43 (Rated for Div. 2) https://codeforces.com/contest/976 A #include< ...

  10. Educational Codeforces Round 35 (Rated for Div. 2)

    Educational Codeforces Round 35 (Rated for Div. 2) https://codeforces.com/contest/911 A 模拟 #include& ...

随机推荐

  1. 从源码分析 Redis 异步删除各个参数的具体作用

    以前对异步删除几个参数的作用比较模糊,包括网上的很多资料都是一笔带过,语焉不详. 所以这次从源码(基于 Redis 7.0.5)的角度来深入分析下这几个参数的具体作用: lazyfree-lazy-u ...

  2. 一步解决Cannot resolve symbol 'WebServlet'(@WebServlet注解标红)

    右键项目名(javaweb01)->Open Module Settings Modules->Dependencies->点击Export上面的,添加Tomcat即可

  3. STM32外设:通用输入输出 GPIO、EXIT

    主要外设: GPIO:General Purpose I/O 一般用途IO EXIT:External Interrupt/Event Controller 外部中断/事件控制器(STM32) 辅助外 ...

  4. 组合式api的使用方式

    方式一:通过setup选项 <script> export default { setup(){ // 提供数据 // 提供函数 // 提供计算属性等等..... } } </scr ...

  5. 在arm架构的银河麒麟系统部署Redis

    以下是在arm架构的银河麒麟系统上部署Redis的详细步骤: 1. 创建文件夹 首先,在合适的位置创建必要的文件夹.在本例中,我们将创建/opt/redis和/usr/src/redis两个文件夹. ...

  6. dotnet-dump工具使用

    介绍 dotnet-dump 是 .NET Core 官方工具之一,用于生成和分析 .NET Core 进程的转储文件(dump file).它可以帮助开发人员在应用程序发生故障或性能问题时进行故障排 ...

  7. 未能加载文件或程序集“*****.dll”或它的某一个依赖项。找到的程序集清单定义与程序集引用不匹配。(异常来自HRESULT:0x80131040)

    问题描述: 未能加载文件或程序集"*****.dll"或它的某一个依赖项.找到的程序集清单定义与程序集引用不匹配.(异常来自HRESULT:0x80131040) 解决方法: 1. ...

  8. 【scikit-learn基础】--『监督学习』之 决策树分类

    决策树分类算法是一种监督学习算法,它的基本原理是将数据集通过一系列的问题进行拆分,这些问题被视为决策树的叶子节点和内部节点.决策树的每个分支代表一个可能的决策结果,而每个叶子节点代表一个最终的分类结果 ...

  9. 深入剖析 Linux Cgroups 子系统:资源精细管理

    本章主要演示以下 cgroups 下各个 subsystem 的作用. 根据难易程度,依次演示了 pids .cpu 和 memory 3 个 subsystem 的使用. 注:本文所有操作在 Ubu ...

  10. Asp .Net Core 系列: 集成 Consul 实现 服务注册与健康检查

    目录 什么是 Consul? 安装和运行 Consul Asp .Net Core 如何集成 Consul 实现服务注册和健康检查 Consul.AspNetCore 中的 AddConsul 和 A ...