【滑动窗口】codeforces 1290 A. Mind Control
题意
第一行输入一个正整数 \(T(1 \leq T \leq 1000)\),表示共有 \(T\) 组测试用例。对于每一组测试用例:
第一行输入三个正整数 \(n, m, k(1 \leq m \leq n \leq 3500, 0 \leq k \leq n - 1)\),且保证 \(n\) 之和不超过 \(3500\),第二行输入 \(n\) 个整数 \(a_i(1 \leq a_i \leq 10^9)\)。
总的有 \(n\) 个整数,每次会从两端任意取走其中一个数。你可以任意控制 \(k\) 次取数的方案,比如第 \(j\) 次取数可以控制取的数是当前剩余的数里最前面的一个。你要做的是找出一个 \(X\),使得无论如何取数,都能使得第 \(m\) 次取数不小于 \(X\)。输出 \(X\)。
题解
若控制第 \(j(j > m)\) 的取数方案,因为第 \(m\) 个数已经取过,显然对结果不会影响,因此只需要控制前 \(w = min(m - 1, k)\) 个数的取数方案。
不妨暴力枚举删除前 \(left\) 个数和后 \(right\) 个数,其中 \(0 \leq left, right = w - left \leq w\) 的情况下,在接下来的第 \((m - w)\) 次取数时能取到的数的最大值里的最小值。
参考代码
#include<bits/stdc++.h>
using namespace std;
constexpr int N = 3507;
int T, n, m, k;
int a[N];
void solve() {
cin >> n >> m >> k;
int ans = 1, w = min(m - 1, k);
m -= w + 1;
for (int i = 0; i < n; ++ i) cin >> a[i];
for (int i = 0; i <= w; ++ i) {
int left = i, right = n - w + i - 1;
int res = 1e9;
for (int j = 0; j <= m; ++ j) res = min(res, max(a[left + j], a[right - m + j]));
ans = max(ans, res);
}
cout << ans << '\n';
}
int main() {
ios::sync_with_stdio(false);cin.tie(nullptr);cout.tie(nullptr);
cin >> T;
while (T --) {
solve();
}
return 0;
}
【滑动窗口】codeforces 1290 A. Mind Control的更多相关文章
- CodeForces 701C They Are Everywhere (滑动窗口)
题目链接:http://codeforces.com/problemset/problem/701/C 题意:找到字符串中能包含所有元素的最短字符串长度. 利用“滑动窗口”解题 解题思路: 1. 遍历 ...
- CodeForces 427B Prison Transfer (滑动窗口)
题意:给定 n, t, c 和 n 个数,问你在这 n 个数中有多少连续的 c 个数,并且这个 c 个数不大于 t. 析:很简单么,是滑动窗口,从第一个开始遍历,如果找到 c 个数,那么让区间前端点加 ...
- CodeForces 279B Books (滑动窗口)
题意:给定n本书的阅读时间,然后你从第 i 本开始阅读,问你最多能看多少本书在给定时间内. 析:就是一个滑动窗口的水题. 代码如下: #pragma comment(linker, "/ST ...
- [CF580B]Kefa and Company(滑动窗口)
题目链接:http://codeforces.com/problemset/problem/580/B 某人有n个朋友,这n个朋友有钱数m和关系s两个属性.问如何选择朋友,使得这些朋友之间s最大差距小 ...
- TCP 滑动窗口和 拥塞窗口
转http://coolshell.cn/articles/11609.html 滑动窗口 -- 表征发送端和接收端的接收能力 拥塞窗口-- 表征中间设备的传输能力 TCP滑动窗口 需要说明一下,如果 ...
- TCP协议探究(三):RTT、滑动窗口和阻塞处理
1 RTT算法 1.1 概述 上一节说了重传机制需要设置一个重传超时值(RTO,Retransmission TimeOut),RTO设长了,重发太慢:设短了,可能导致包没有丢,就重发了,可能导致雪崩 ...
- TCP/IP笔记——TCP特点、首部格式、滑动窗口
这次总结一下TCP相关的知识. TCP主要特点 面向连接:在通信前必须建立连接(只是逻辑上存在,而不是物理连接) 只能有两个端点:即只能一对一通信(所以通常p2p是用UDP实现的) 提供可靠交付服务: ...
- 传输层-Transport Layer(下):UDP与TCP报头解析、TCP滑动窗口、TCP拥塞控制详解
第六章 传输层-Transport Layer(下) 上一篇文章对传输层的寻址方式.功能.以及流量控制方法做了简短的介绍,这一部分将介绍传输层最重要的两个实例:TCP协议和UDP协议,看一看之前描述的 ...
- TCP超时重传、序列号、滑动窗口简介
文章目录 12 TCP:传输控制协议(初步) 12.1 引言 12.1.1 ARQ和重传 12.1.2 分组窗口和滑动窗口 12.1.3 变量窗口:流量控制和拥塞控制 12.1.4 变量窗口:设置重传 ...
- [LeetCode] Sliding Window Maximum 滑动窗口最大值
Given an array nums, there is a sliding window of size k which is moving from the very left of the a ...
随机推荐
- 为了更好的 Flutter | 2021 第二季度开发者调研
自 Flutter 2 发布以后,诸多振奋人心的开发特性 也随之解锁,从 加速应用开发 到 流畅地开发多平台应用 都已经有了长足的进步.我们也从社区收集到了不少大家关心的问题,并进行了 解答.毫无疑问 ...
- 东方通TongWeb7部署SuperMap iServer War包
一.软件版本 操作系统: CentOS 7.5.1804 JDK:1.8_201 东方通:TongWeb7.0.4.2 SuperMap iServer:10.2 二.东方通TongWeb7部署流程 ...
- 离线安装MySQL
离线安装mysql [下载地址](MySQL :: Download MySQL Community Server) 解压后依次执行如下命令 rpm -ivh mysql-community-comm ...
- USB2.0设备的休眠挂起及远程唤醒
USB可见设备状态,分为连接(Attached),上电(Powered),默认(Default),地址(Address),配置(Configured)和挂起(Suspended)6个状态.所谓可见,即 ...
- Kernel调试追踪技术之 Kprobe on ARM64
kprobe是什么? kprobe 是一种动态调试机制,用于debugging,动态跟踪,性能分析,动态修改内核行为等,2004年由IBM发布,是名为Dprobes工具集的底层实现机制[1][2],2 ...
- 如何快速定位 Linux Panic 出错的代码行
问题描述 内核调试中最常见的一个问题是:内核Panic后,如何快速定位到出错的代码行? 就是这样一个常见的问题,面试过的大部分同学都未能很好地回答,这里希望能够做很彻底地解答. 问题分析 内核Pani ...
- C#查漏补缺----Exception处理实现,无脑抛异常不可取
前言 环境:.NET 8.0 系统:Windows11 参考资料:CLR via C#, .Net Core底层入门 https://andreabergia.com/blog/2023/05/err ...
- 实例:([Flappy Bird Q-learning]
目录 实例:(Flappy Bird Q-learning) 问题分析 关于Q 训练 成果 实例:(Flappy Bird Q-learning) 问题分析 让小鸟学习怎么飞是一个强化学习(reinf ...
- kotlin类与对象——>对象表达式与对象声明、内联类
1.对象表达式与对象声明 有时候,我们需要创建一个对某个类做了轻微改动的类的对象,而不用为之显式声明新的子类.Kotlin 用对象表达式和对象声明处理这种情况 2.对象表达式 要创建一个继承自某个(或 ...
- kotlin类与对象——>数据类、密封类、泛型
数据类,用来保存数据的类,使用data对class进行标记 data class User(val name: String, val age: Int) //编译器自动从主构造函数中声明的所有属性导 ...