二分+划分型dp,CF 360B - Levko and Array

news2025/1/11 21:36:49

目录

一、题目

1、题目描述

2、输入输出

2.1输入

2.2输出

3、原题链接

二、解题报告

1、思路分析

2、复杂度

3、代码详解


一、题目

1、题目描述

2、输入输出

2.1输入

2.2输出

3、原题链接

B - Levko and Array

二、解题报告

1、思路分析

最小化最大值,提示我们用二分

我们二分 c(a),如何check?

划分型dp

定义 f(i) 为 第 i 个元素不变,前 i 个元素能够不变的元素数目的最大值

我们枚举上一个不变元素的下标 j

a[i] 和 a[j] 能够同时不变的前提是我们能够通过修改 a[j + 1, i - 1] 使得 二者与相邻元素差值绝对值均不超过 二分值 x

即 abs(a[i] - a[j]) <= (i - j) * x

2、复杂度

时间复杂度: O(N^2logU)空间复杂度:O(N)

3、代码详解

 ​
#include <bits/stdc++.h>

using i64 = long long;
using i32 = unsigned int;
using u64 = unsigned long long;
using i128 = __int128;

constexpr int inf32 = 1E9 + 7;
constexpr i64 inf64 = 1E18 + 7;
constexpr int P = 998'244'353;

void solve() {
	int n, k;
	std::cin >> n >> k;

	std::vector<int> a(n);
	for (int i = 0; i < n; ++ i)
		std::cin >> a[i];
	
	std::vector<int> f(n, 1);
	
	auto check = [&](int x) -> bool {
		f.assign(n, 1);	

		for (int i = 0; i < n; ++ i) {
			for (int j = 0; j < i; ++ j) {
				if (abs(a[i] - a[j]) <= 1LL * (i - j) * x)
					f[i] = std::max(f[i], f[j] + 1);
			}
		}

		return *std::max_element(f.begin(), f.end()) >= n - k;
	};
	
	int lo = 0, hi = 2E9 + 1;

	while (lo < hi) {
		int x = lo + (hi - lo) / 2;
		if (check(x))
			hi = x;
		else 
			lo = x + 1;
	}

	std::cout << hi;
}

auto FIO = []{
	std::ios::sync_with_stdio(false);
	std::cin.tie(nullptr);
	std::cout.tie(nullptr);
	return 0;
}();

int main () {
	#ifdef DEBUG
		freopen("in.txt", "r", stdin);
		freopen("out.txt", "w", stdout);
	#endif
	
	int T = 1;
	// std::cin >> T;
	while (T --)
		solve();

	return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2064936.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

射频前端加LNA放大具体应用方案介绍

1.1编写目的 接收机为了适应在一些应用场合要求&#xff0c;需要增大接收强度&#xff0c;必要时在前段增加一个低噪声放大器LNA以增大链路增益&#xff0c;本文编写一个最简单的低成本的LNA&#xff0c;记录是想给大家一个引导思路或借鉴。 1.2背景 以micrf220这款芯片在…

A4-80内六角螺栓产品特性及应用

A4-80内六角螺栓是一种常用的紧固件&#xff0c;广泛应用于需要高强度和耐腐蚀性能的各种场合。下面我们就来科普一下A4-80内六角螺栓的产品特性和应用场景。 产品特性 材质 A4-80内六角螺栓通常采用A4等级的不锈钢材料制成&#xff0c;这意味着它们具有优异的耐腐蚀性能&#…

【R语言】基于多模型的变量重要性图 (Variable Importance Plots)

变量重要性图 Variable Importance Plots 1. 写在前面2.1数据导入2.2 模型训练2.3 变量重要性2.4 变量重要性图2.5 模型模拟验证3.基于caret包计算变量重要性 1. 写在前面 好久没有更新博客了&#xff0c;正好最近在帮老师做一个项目&#xff0c;里面涉及到了不同环境变量的重要…

基于鸿蒙Next模拟扫图识物的一个过程

一、功能介绍&#xff08;基础&#xff09; 基于鸿蒙Next模拟扫图识物的一个过程&#xff0c;扫描到图片&#xff0c;提示出相关的图片内容&#xff0c;是一个什么东西。 二、使用场景&#xff08;大类&#xff09; 支付、社交、信息获取、在线调查、教育学习等等。 三、实现…

Vue指令:v-cloak、v-once、v-pre 指令

1、v-cloak 指令 v-cloak 指令可以隐藏未编译的 Mustache 标签直到实例准备完毕&#xff0c;否则在渲染页面时&#xff0c;有可能用户会先看到 Mustache 标签&#xff0c;然后看到编译后的数据。 &#xff08;1&#xff09;设置CSS样式 display:none <style type"te…

别再盲目推广了!用Xinstall,效果翻倍

在移动互联网时代&#xff0c;App的运营推广成为了开发者们最为关注的话题之一。然而&#xff0c;随着市场竞争的加剧&#xff0c;推广难度也越来越大。这时候&#xff0c;一款名为Xinstall的品牌走进了我们的视线&#xff0c;它以其独特的技术和解决方案&#xff0c;为App推广…

【系统架构设计】软件架构设计(2)

【系统架构设计】软件架构设计&#xff08;1&#xff09; 软件架构概述架构需求与软件质量属性软件架构风格层次系统架构风格面向服务的架构SOA概述微服务微服务和SOA差异 软件架构概述 架构需求与软件质量属性 软件架构风格 层次系统架构风格 面向服务的架构 SOA概述 面…

【生日视频制作】教师节中秋节国庆节直升飞机AE模板修改文字软件生成器教程特效素材【AE模板】

飞机生日视频制作教程AE模板改文字特效广软件告生成器玩法素材 怎么如何做的【生日视频制作】教师节中秋节国庆节直升飞机AE模板修改文字软件生成器教程特效素材【AE模板】 生日视频制作步骤&#xff1a; 安装AE软件 下载AE模板 把AE模板导入AE软件 修改图片或文字 渲染出视频…

一起学Java(3)-Java项目构建工具Gradle和Maven场景定位和优缺点对比

在第一步创建的项目&#xff08;java-all-in-one&#xff09;项目里&#xff0c;我们提到了使用Gradle作为项目构建工具。看到这里&#xff0c;不知道你是否有疑惑&#xff0c;什么是项目构建工具。Java项目常用构建工具有哪些&#xff1f;都有什么特点&#xff1f; 带着疑惑&…

网络安全——基础知识记忆梳理

1. SQL注入攻击 SQL注入攻击是一种常见的网络安全威胁&#xff0c;它利用Web应用程序中对用户输入的数据的不正确处理&#xff0c;攻击者可以在SQL查询中注入恶意代码&#xff0c;从而执行非授权的数据库操作。这种攻击方式可以导致数据泄漏、数据篡改、绕过认证等多种安全问题…

【java计算机毕设】足浴城消费系统小程序MySQL ssm vue uniapp maven项目设计源代码 编程语言 小组课后作业 寒暑假作业

目录 1项目功能 2项目介绍 3项目地址 1项目功能 【java计算机毕设】足浴城消费系统小程序MySQL ssm vue uniapp maven项目设计源代码 编程语言 小组课后作业 寒暑假作业 2项目介绍 系统功能&#xff1a; 足浴城消费系统小程序包括管理员、用户、商家三种角色。 管理员功能&…

Linux基础I/O之文件缓冲区

一、缓冲区的基本概念 缓冲区这个概念&#xff0c;我相信大家或多或少的有听到过&#xff0c;那么其到底是个什么东西呢&#xff1f; 简单地理解一下&#xff0c;其可以被看做一部分的内存&#xff08;可以认为是malloc来的&#xff09;。 那为什么要有缓冲区这个东西呢&#x…

C语言典型例题48

《C程序设计教程&#xff08;第四版&#xff09;——谭浩强》 习题3.8 有4个圆塔&#xff0c;圆形分别为&#xff08;2,2&#xff09;、&#xff08;-2,2&#xff09;、&#xff08;-2&#xff0c;-2&#xff09;、&#xff08;2&#xff0c;-2&#xff09;&#xff0c;圆半径为…

uni-app 手记集。

1、uni-app 是一个使用 Vue.js 开发的前端应用的框架&#xff0c;所以不会Vue.js的小伙伴可以先去看看Vue.js的基础教学。 2、.vue文件结构 <template><div class"container"></div> </template><script type"text/ecmascript-6&q…

开放式耳机怎么戴?会有伤害?四款开放式蓝牙耳机排行榜前十名

老实说&#xff0c;开放式耳机对耳朵会产生什么伤害&#xff1f;我不太能想出来。我倒是觉得入耳式耳机可能会&#xff0c;因为入耳式耳机需将耳机塞入耳朵耳道&#xff0c;那就会对耳道产生影响。使用者在佩戴入耳式耳机的时候耳道会变成一个接近完全封闭的状态&#xff0c;耳…

【实战篇】Port配置

目录 1 前言1.1 开发板特性1.2 电路原理分析2 步骤2.1 General配置2.2 PortContainer配置3 总结1 前言 本文讲解如何配置Port模块。Port的引脚配置在整个实验中非常的重要,一旦配置错误可能会导致实验失败。引脚如何配置,完全依赖于我们的硬件设计和芯片型号,我们这里以英飞…

PE文件空白区添加代码

1、C源码 #include <iostream> #include<windows.h>int main() {int i 1;std::cin >> i;if (i 100){MessageBoxA(0, 0, 0, 0);}return 0; }2、将上述源码编译成可执行文件PEParase.exe&#xff0c;备用 3、使用010Editor打开该exe文件&#xff0c;查找PE…

git revert操作引起的代码丢失以及解决方案

场景如下&#xff1a; 某项目下有很多开发中的分支&#xff0c;比如分支a&#xff0c;b&#xff0c;c&#xff0c;d都合并到了一个test分支上&#xff1b;某次误操作将test分支内容合到了分支e上&#xff0c;然后紧接着又revert了这次合并&#xff0c;试图撤销合并&#xff1b…

如何解决Windows虚拟机不能安装vmtools的问题?

今天学到个小tips给大家分享一下&#xff01;&#xff01;&#xff01;解决win7安装不了vmtools的问题&#xff0c;以及如何打补丁&#xff01; 大家有没有遇到过下面的问题&#xff0c;就是在再给win7装vmtools的时候无法安装的情况&#xff0c;我这里这个是win7的旗舰版就遇…

Google Ads投放 | 如何分析竞争对手的谷歌广告?

Google Ads广告投放是出海企业的必重要营销动作之一&#xff0c;而分析竞争对手的 Google 广告是优化您自己的广告策略的关键步骤。通过了解竞争对手的动向&#xff0c;您可以发现改进的机会并在竞争中保持领先地位。 今天整理了Google Ads 竞争对手分析的4种方法&#xff1a; …