Codeforces Round #687 (Div. 2, based on Technocup 2021 Elimination Round 2) (个人题解)
Codeforces Round #687 (Div. 2, based on Technocup 2021 Elimination Round 2)
A. Prison Break
https://codeforces.com/contest/1457/problem/A
题意:给定一个n行m列的监狱(每个(i,j)中均有犯人),犯人们为了集体逃脱找到了一个洞口(r,c)点。现在请问最少需要多少秒才能全体逃脱。
思路:只要计算一下边角的犯人离出口的最大距离即可
void solve() {
int n, m, r, c;
cin >> n >> m >> r >> c;
cout << max(r - 1, n - r) + max(c - 1, m - c) << endl;
}
B. Repainting Street
https://codeforces.com/contest/1457/problem/B
题意:Tom要为一排房子粉刷颜色,每个房子的都有它的颜色,由于Tom认为相同颜色的为”美丽“,但Tom每天只能为k个连续的房子进行粉刷。请问最少需要多少天才能变美丽
思路:由于仅100种颜色,可以使用暴力枚举 + 滑动窗口解决
void solve() {
int n, k;
cin >> n >> k;
int a[n + 1];
for (int i = 0; i < n; ++i)
cin >> a[i];
int res = n;
for (int c = 1; c <= 100; ++c) { //枚举进行粉刷的颜色种类
int last = -k, curr = 0;
for (int j = 0; j < n; ++j) {
if (a[j] == c)
continue;
if (last + k <= j) {
last = j;
curr++;
}
}
res = min(res, curr);
}
printf("%d\n", res);
}
C. Bouncing Ball
https://codeforces.com/contest/1457/problem/C
string s;
void solve() {
int n, p, k, x, y;
cin >> n >> p >> k;
p--;
vector<int> b(n);
cin >> s;
cin >> x >> y;
int ans = 1 << 30;
for (int i = n - 1; 0 <= i; --i) {
b[i] = !(s[i] == '1');
if (i + k < n)
b[i] += b[i + k];
if (i >= p)
ans = min(ans, (i - p) * y + b[i] * x);
}
printf("%d\n", ans);
}
E. New Game Plus!
https://codeforces.com/contest/1457/problem/E
理解好题意,利用前缀和贪心即可
// Author : RioTian
// Time : 20/11/29
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N = 5e5 + 5;
int n, k, a[N];
ll b[N], sum, res = -(1LL << 60), curr;
int main() {
cin >> n >> k;
for (int i = 1; i <= n; ++i)
cin >> a[i];
sort(a + 1, a + n + 1);
for (int i = 1; i <= n; ++i) {
b[i] = b[i - 1] + a[i];
sum += 1LL * (i - 1) * a[i];
}
for (int i = 1; i <= n; ++i) {
int mx = (i - 1 + k) / (k + 1), mn = (i - 1) / (k + 1);
res = max(res, (b[n] - b[i - 1]) * mx + curr + sum);
sum -= (b[n] - b[i]);
curr += 1LL * mn * a[i];
}
res = max(res, curr);
cout << res << endl;
return 0;
}
Codeforces Round #687 (Div. 2, based on Technocup 2021 Elimination Round 2) (个人题解)的更多相关文章
- Codeforces Round #687 (Div. 2, based on Technocup 2021 Elimination Round 2) D. XOR-gun (二进制,异或,前缀和)
题意:给你一组非递减的数,你可以对两个连续的数进行异或,使其合并为一个数,问最少操作多少次使得这组数不满足非递减. 题解:首先,给出的这组数是非递减的,我们考虑二进制,对于三个连续的非递减的最高位相同 ...
- Codeforces Round #687 (Div. 2, based on Technocup 2021 Elimination Round 2) C. Bouncing Ball (后缀和,枚举)
题意:有一长度为\(n\)的平台,平台有的位置有木桩,可以使小球弹起来,小球必须从第\(p\)个位置开始,而且每次都会向右弹\(k\)个单位,然后有的位置是没有木桩的,你可以在这些的空的位置放一个木桩 ...
- Codeforces Round #687 (Div. 2, based on Technocup 2021 Elimination Round 2) B. Repainting Street (枚举)
题意:有\(n\)栋房子,每栋房子都有自己的颜色\(c_i\),你每次可以对连续的长度为\(k\)的区间改变任何房子的颜色,问最少多少次可以使得所有房子颜色相同. 题解:因为只有\(100\)中颜色, ...
- Codeforces Round #687 (Div. 2, based on Technocup 2021 Elimination Round 2) A. Prison Break
题意:有一张\(n\)x\(m\)的图,图中每个点都关押着罪犯,在坐标\((r,c)\)处有一个出口,每名罪犯每秒可以可以像上下最有移动一个单位或者不动,问所有罪犯能够逃离监狱的最少时间. 题解:直接 ...
- Codeforces Round #687 (Div. 2, based on Technocup 2021 Elimination Round 2)
A. Prison Break 题意:就是在一个n*m的矩阵中,以(1,1)为起点(n,m)为终点,每个点以每个单位1s的速度移动,问总共至少需要多少秒,所有的矩阵点就能够全部移动到(r,c)中 思路 ...
- Codeforces Round #679 (Div. 2, based on Technocup 2021 Elimination Round 1)
考场上只做出来四道,第二天一早就写出来了E,蛮绝望的. A Finding Sasuke 水构造 #include <cstdio> #include <algorithm> ...
- Codeforces Round #692 (Div. 2, based on Technocup 2021 Elimination Round 3) C. Peaceful Rooks (思维,dsu找环)
题意:一个棋盘上有一些"车",现在要让这些"车"跑到左倾斜的对角线上,每次可以移动一个棋子,但是棋盘的任意时刻都不能出现一个"车"能吃另一个 ...
- Codeforces Round #692 (Div. 2, based on Technocup 2021 Elimination Round 3)
A.In-game Chat 题目:就是从后面数连着的'('的个数是不是严格比剩下的字符多 思路:水题,直接从后往前遍历即可 代码: #include<iostream> #include ...
- Codeforces Round #517 (Div. 2, based on Technocup 2019 Elimination Round 2)
Codeforces Round #517 (Div. 2, based on Technocup 2019 Elimination Round 2) #include <bits/stdc++ ...
- Codeforces Round #596 (Div. 2, based on Technocup 2020 Elimination Round 2)
A - Forgetting Things 题意:给 \(a,b\) 两个数字的开头数字(1~9),求使得等式 \(a=b-1\) 成立的一组 \(a,b\) ,无解输出-1. 题解:很显然只有 \( ...
随机推荐
- mysql可视化工具有哪些?优点是什么?
MySQL 是一种广泛使用的关系型数据库管理系统(RDBMS),由于其开放源代码和高度可定制化的优势,广受开发者欢迎.为了更加高效地管理 MySQL 数据库,我们通常需要使用 MySQL 可视化工具. ...
- Go笔记(3)-3种go语言的键盘输入详解
go语言的键盘输入详解 go语言中有三种输入函数,分别是: fmt.Scanf() 可以按照指定的格式进行输入 fmt.Scanln() 通过指针将值赋值给变量 fmt.Scan() (1)fmt.S ...
- [NOI online2022普及B] 数学游戏
题目描述 Kri 喜欢玩数字游戏. 一天,他在草稿纸上写下了 \(t\) 对正整数 \((x,y)\),并对于每一对正整数计算出了 \(z=x\times y\times\gcd(x,y)\). 可是 ...
- 5分钟安装Kubernetes+带你轻松安装istio服务网格指南
上次我跟大家简单介绍了一下Kubernetes的各个组件及其含义,本期本来计划带领大家一起学习一些常用命令,但我认为这种方式可能无法达到学习的效果.有可能你们会直接忘记,甚至可能没有兴趣去学.我也理解 ...
- cocos2d-Js 各类碰撞检测
这里总结一下点.圆.矩形之间的简单碰撞检测算法(矩形不包括旋转状态) 点和圆的碰撞检测: 1.计算点和圆心的距离 2.判断点与圆心的距离是否小于圆的半径 isCollision: function(p ...
- vscode下载
vscode下载 想下载官网可以直接去官网下载(速度超慢~) 百度网盘链接: 链接:https://pan.baidu.com/s/14DfWI5b2HA_J_kHBcu8JQw?pwd=yyds 提 ...
- JavaFx之使用指定字体样式(二十九)
JavaFx之使用指定字体样式(二十九) javafx use specified font 29 javafx默认的字体样式太丑,可能需要我们自定义字体样式. 之前说好放弃学习javafx,没想到越 ...
- k8s 标签-2
目录 标签-2 node的角色 修改node节点的角色,将他的角色修改成他的主机名 标签的作用 Cordon,Drain以及污点 Cordon--告警警戒 Drain 驱逐演示 污点 污点的Cordo ...
- 前端系列:ES6-ES12新语法
目录 ECMAScript系列:简介 ECMAScript系列:ES6新特性 let 关键字 const 关键字 变量的解构赋值 模板字符串 简化对象写法 箭头函数 参数默认值 rest 参数 spr ...
- Bazel 如何生成 clangd/clang-tidy 所需的 compile_commands.json
VSCode 中如何使用 clang-tidy 安装 clangd 插件 禁用 ms-cpp 插件(VSCode 会自动提示有冲突) 生成 clangd 所需的 compile_commands.js ...