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) (个人题解)的更多相关文章

  1. Codeforces Round #687 (Div. 2, based on Technocup 2021 Elimination Round 2) D. XOR-gun (二进制,异或,前缀和)

    题意:给你一组非递减的数,你可以对两个连续的数进行异或,使其合并为一个数,问最少操作多少次使得这组数不满足非递减. 题解:首先,给出的这组数是非递减的,我们考虑二进制,对于三个连续的非递减的最高位相同 ...

  2. Codeforces Round #687 (Div. 2, based on Technocup 2021 Elimination Round 2) C. Bouncing Ball (后缀和,枚举)

    题意:有一长度为\(n\)的平台,平台有的位置有木桩,可以使小球弹起来,小球必须从第\(p\)个位置开始,而且每次都会向右弹\(k\)个单位,然后有的位置是没有木桩的,你可以在这些的空的位置放一个木桩 ...

  3. Codeforces Round #687 (Div. 2, based on Technocup 2021 Elimination Round 2) B. Repainting Street (枚举)

    题意:有\(n\)栋房子,每栋房子都有自己的颜色\(c_i\),你每次可以对连续的长度为\(k\)的区间改变任何房子的颜色,问最少多少次可以使得所有房子颜色相同. 题解:因为只有\(100\)中颜色, ...

  4. Codeforces Round #687 (Div. 2, based on Technocup 2021 Elimination Round 2) A. Prison Break

    题意:有一张\(n\)x\(m\)的图,图中每个点都关押着罪犯,在坐标\((r,c)\)处有一个出口,每名罪犯每秒可以可以像上下最有移动一个单位或者不动,问所有罪犯能够逃离监狱的最少时间. 题解:直接 ...

  5. Codeforces Round #687 (Div. 2, based on Technocup 2021 Elimination Round 2)

    A. Prison Break 题意:就是在一个n*m的矩阵中,以(1,1)为起点(n,m)为终点,每个点以每个单位1s的速度移动,问总共至少需要多少秒,所有的矩阵点就能够全部移动到(r,c)中 思路 ...

  6. Codeforces Round #679 (Div. 2, based on Technocup 2021 Elimination Round 1)

    考场上只做出来四道,第二天一早就写出来了E,蛮绝望的. A Finding Sasuke 水构造 #include <cstdio> #include <algorithm> ...

  7. Codeforces Round #692 (Div. 2, based on Technocup 2021 Elimination Round 3) C. Peaceful Rooks (思维,dsu找环)

    题意:一个棋盘上有一些"车",现在要让这些"车"跑到左倾斜的对角线上,每次可以移动一个棋子,但是棋盘的任意时刻都不能出现一个"车"能吃另一个 ...

  8. Codeforces Round #692 (Div. 2, based on Technocup 2021 Elimination Round 3)

    A.In-game Chat 题目:就是从后面数连着的'('的个数是不是严格比剩下的字符多 思路:水题,直接从后往前遍历即可 代码: #include<iostream> #include ...

  9. 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++ ...

  10. 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. 题解:很显然只有 \( ...

随机推荐

  1. 匿名远程启动jenkins的job

    安装jenkins插件Build Authorization Token Root job配置中的构建触发器,勾选触发远程构建,输入要用的令牌,如soul 通过jenkins地址调用触发 非参数化jo ...

  2. CentOS6-详细启动流程

    CentOS6的启动流程 第一步:硬件启动阶段 本步的流程: 1. 打开电源: 2. POST自检: 3. BIOS逐一排查设备启动顺序,如果是硬盘启动,读取硬盘的MBR的BootLoader.(这里 ...

  3. 汇报工作与众不同:在PPT中展示Datainside动态图表

    题目要求了解在PPT中展示Datainside动态图表,下面是关于该主题的详细介绍. 内容可视化:概念与定义 内容可视化(Data Visualization)是将数据以图形或其他视觉形式呈现的过程, ...

  4. Flink State 状态原理解析

    一.Flink State 概念 State 用于记录 Flink 应用在运行过程中,算子的中间计算结果或者元数据信息.运行中的 Flink 应用如果需要上次计算结果进行处理的,则需要使用状态存储中间 ...

  5. SQL执行insert into后返回主键ID

    1 select @@identity 2 select SCOPE_IDENTITY() 3 select IDENT_CURRENT('table') 注解:@@IDENTITY 返回当前会话的所 ...

  6. [gym104076][CCPC2022济南站L] Tree Distance

    You are given an unrooted weighted tree \(T\) with vertices \(1,2,-,n\). Please answer some queries. ...

  7. 实验1:UML与面向对象程序设计原则

    本次实验属于模仿型实验,通过本次实验学生将掌握以下内容: 1.掌握面向对象程序设计中类与类之间的关系以及对应的UML类图: 2.理解面向对象程序设计原则.   [实验任务一]:UML复习 阅读教材第一 ...

  8. smm整合

    配置整合 这个里面SpringConfig 就是书写Spring的配置类,其中加载了jdbc配置类和mybatis配置类,还加载了jdbc资源类. package com.itheima.config ...

  9. K8S核心技术

    一.命令行工具Kubectl kubectl 是 Kubernetes 集群的命令行工具,通过 kubectl 能够对集群本身进行管理,并能 够在集群上进行容器化应用的安装部署 1.基本语法 kube ...

  10. 别再傻傻地用 ifconfig 查地址了!这条命令足以让你摘掉小白工程师的帽子

    大家好,我是民工哥. 众所周知,在 Linux 系统中,ip 和 ifconfig 这个两命令的功能十分相似,ifconfig 是 net-tools 中已被弃用的一个命令,很多年前就已经没有维护了. ...