C. Painting the Fence(思维 + 前缀和)

news/2024/4/26 0:54:00/文章来源:https://blog.csdn.net/m0_64158084/article/details/130358824

Problem - C - Codeforces

You需要油漆一个由n个部分组成的长围栏。不幸的是,它没有被涂漆,所以你决定雇用q名画家来完成这项工作。第i名画家将会油漆所有满足lisxsri的部分x.
不幸的是,你的预算很紧,所以你只能雇用q-2名画家。显然,只有你雇用的画家才会完成他们的工作。
如果你选择最优的q-2名画家,你希望最大化已经涂漆的部分数量。如果至少有一名画家对一个部分进行了涂漆,则认为该部分已经涂漆。
输入
第一行包含两个整数n和q (3≤n,q≤5000)--分别是部分数和可供聘用的画家数。
接下来有q行,每行描述其中一位画家:第i行包含两个整数li和ri (1<lisri≤n)。
输出
输出—个整数--如果你雇用q-2名画家,最大可以涂漆的部分数量。

Examples

input

Copy

7 5
1 4
4 5
5 6
6 7
3 5

output

Copy

7

input

Copy

4 3
1 1
2 2
3 4

output

Copy

2

input

Copy

4 4
1 1
2 2
2 3
3 4

output

Copy

3

题解:

首先我们可以记录如果所有人涂,每个点会涂几次,由于数据比较小,差分都不用,直接暴力即可

关键是,我们如何,减去两个人涂的影响呢?

其中一个人我么可以通过,枚举q个人时,让l[i] ~ r[i]这一段区间都减一,这样消去了一个影响,那另一个人呢?

我们这侯就可以用到前缀和了,通过前缀和记录,1~n当前为止,被染的次数1的数量有多少,并且记录n有多少个点被染过,

接着我么枚举i + 1~n,ans = max(ans,sum - pre[r[j]] - pre[l[j]-1]);

通过前缀和可以快速得到,每一段如果不涂的影响(影响就是被涂次数为一的数量)

本题主要考点为,利用前缀和求任意一段得影响(前缀和应用十分广泛的一种思路,不应该想不到的)

#include <cstdio>
#include <cstring>
#include <algorithm>
#include<iostream>
#include<vector>
#include<set>
#include<map>
#include<cmath>
#include<queue>
using namespace std;
typedef long long ll;
#define int long long
typedef pair<int,int> PII;
int mod = 1e9 + 7;
int l[5005];
int r[5005];
int cnt[5005];
int pre[5005];
void solve()
{int n,q;cin >> n >> q;for(int i = 1;i <= q;i++){cin >> l[i] >> r[i];for(int j = l[i];j <= r[i];j++)cnt[j]++;}int ans = 0;for(int i = 1;i <= q;i++){for(int j = l[i];j <= r[i];j++)cnt[j]--;int sum = 0;for(int j = 1;j <= n;j++){if(cnt[j] == 1)pre[j] = pre[j - 1] + 1;elsepre[j] = pre[j - 1];if(cnt[j])sum++;}for(int j = i + 1;j <= q;j++){ans = max(ans,sum - (pre[r[j]] - pre[l[j] - 1]));}for(int j = l[i];j <= r[i];j++)cnt[j]++;} cout << ans;
}
//5 7 8 9 10signed main()
{
//	ios::sync_with_stdio(0);
//	cin.tie(0);cout.tie(0);int t = 1;
//	cin >> t;while(t--){solve(); }
}

 

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

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数据湖Iceberg-简介(1)

文章目录 Iceberg简介概述特性数据存储、计算引擎插件化实时流批一体数据表演化&#xff08;Table Evolution&#xff09;模式演化&#xff08;Schema Evolution&#xff09;分区演化&#xff08;Partition Evolution&#xff09;列顺序演化&#xff08;Sort Order Evolution&a…

itop-3568开发板驱动学习笔记(22)设备树(一)设备树基础

《【北京迅为】itop-3568开发板驱动开发指南.pdf》 学习笔记 文章目录 设备树简介设备树编译设备树语法设备根节点设备子节点节点名称reg 属性#address-cell 和 #size-cells 属性model 属性status 属性compatible 属性aliases 节点chosen 节点device_type 属性自定义属性 设备树…

Linux云服务器的使用,以及运行Python程序

目录 1、使用Linux云服务器的软件 2、Linux系统运行Python程序 3、Linux系统查看包、虚拟环境、安装包等 以下几个深度学习服务器都不错&#xff1a;智星云、AutoDL、恒源云 1、使用Linux云服务器的软件 MobaXterm_Personal 推荐MobaXterm_Personal mobaxterm是一款方便网站…

数据库管理新定义:一款纯Web化免费SQL开发工具,免安装

SQL Studio是一款由麦聪软件研发的多数据库管理工具&#xff0c;提供Windows、Linux 和 MacOS三种版本的软件包&#xff0c;支持中英文两种语言。SQL Studio是用Java编写的&#xff0c;默认使用 JDK 8进行编译。 下载看这里: [SQLStudio] (http://www.maicongs.com/#/home/web)…

地热井监测控制系统解决方案

概述 地热井监测控制系统主要是对地热井采水和回灌进行流量、温度、水位&#xff08;压力&#xff09;等参数的实时监测&#xff0c;对地热站现场环境进行实时视频监控。地热井现场和取水井、回灌井安装监测装置&#xff0c;通过无线传输设备将数据实时传输至自然资源局已建中…

上海车展:预售价109.8万元,仰望U8见证国产品牌崛起

如果要评选2023上海车展上比亚迪展台“最亮的星”&#xff0c;估计很多媒体和观众都会毫不迟疑地把票投给仰望U8。 没办法&#xff0c;因为在本届车展上&#xff0c;仰望U8的表现实在是太吸睛了。 作为比亚迪旗下的高端新能源品牌&#xff0c;仰望汽车在上海车展上携两款车型—…

【Leetcode -141.环形链表 -2.两数相加】

Leetcode Leetcode -141.环形链表Leetcode -2.两数相加 Leetcode -141.环形链表 题目&#xff1a;给你一个链表的头节点 head &#xff0c;判断链表中是否有环。 如果链表中有某个节点&#xff0c;可以通过连续跟踪 next 指针再次到达&#xff0c;则链表中存在环。 为了表示给…

测试Ocr工具IronOCR(续2:编写圈选图片识别文本的程序)

上篇文章介绍了加载图片并圈选图片中文字区域的程序实现方式&#xff0c;本文基于此实现识别圈选区域文字内容的程序。主要识别语言包括英文和中文。IronOCR包中自带英文语言包&#xff0c;项目还需安装中文语言包&#xff0c;建议直接安装IronOcr.Languages.Chinese语言包&…

什么样的测试才是优秀的测试

什么样的测试才是优秀的测试 优秀的测试应该包括以下要素&#xff1a; 测试代码的可读性和可维护性 代码在项目中及特定源代码中的组织方式 测试所检查的内容 测试的可靠性及可重复性 测试对测试替身的使用 可读的代码才是可维护的代码 代码较差的可读性与缺陷密度密切相…

软件测试技术那么多,我们该如何分辨?

经典软件测试技术分类&#xff1a; 测试技术是指顺利完成测试的一系列相关过程&#xff0c;有很多可能的分类方式&#xff0c;表2-1就是其中的一种。表中列出了流行的测试技术&#xff0c;也按照上面的讨论对其进行分类&#xff1a;手工测试、自动测试、静态测试、动态测试、功…

今年SMETA审核费用即将涨价

【今年SMETA审核费用即将涨价】 SMETA全称&#xff08; Sedex Members Ethical Trade Audit &#xff09;&#xff0c;即Sedex会员社会道德贸易审核&#xff0c;它是Sedex发起的一种负责任的供应链审计方法/项目。 Sedex是一个全球性的责任商业平台&#xff0c;SMETA是审核方法…

手推FlinkML2.2(三)

SQLTransformer&#xff08;SQL转换器&#xff09;是一种数据预处理方法&#xff0c;允许您使用SQL语句对数据进行转换和操作。SQL转换器通常用于数据清洗、特征工程和数据聚合等任务&#xff0c;以提高数据分析和机器学习模型的性能。它可以与各种数据处理和存储系统&#xff…

本地搭建属于自己的ChatGPT:基于PyTorch+ChatGLM-6b+Streamlit+QDrant+DuckDuckGo

本地部署chatglm及缓解时效性问题的思路&#xff1a; 模型使用chatglm-6b 4bit&#xff0c;推理使用hugging face&#xff0c;前端应用使用streamlit或者gradio。 微调对显存要求较高&#xff0c;还没试验。可以结合LoRA进行微调。 缓解时效性问题&#xff1a;通过本地数据库…

你的车有通风座椅吗?新款奔驰S400升级原厂主副驾座椅通风

大家好&#xff0c;我是奔之升小志&#xff08;bzs878&#xff09;&#xff0c;专注名车原厂升级&#xff0c;欢迎戳戳右上角“”号关注一下&#xff0c;持续为您带来精彩改装案例。 座椅通风有什么用&#xff1f;能改善身体与座椅接触面空气流通&#xff0c;达到不出汗的效果…

选择美国虚拟主机需注意的安全问题

在选择美国虚拟主机时&#xff0c;安全性应该是您首要关注的问题。虚拟主机通常是网站托管的最便宜和最方便的方式之一&#xff0c;但也存在安全问题。在本文中&#xff0c;我们将讨论一些您应该注意的安全问题&#xff0c;并提供一些解决方案来保护您的网站。 一、了解虚拟主机…

C++(继承(上))

目录 &#xff1a; 1.引出继承的概念 2.继承的关系和方式 3.继承中的作用域 ------------------------------------------------------------------------------------------------------------------------------ 1.引出继承的概念 这些学生、老师、后勤都具有相同的特征&…

elementUI-el-table组件使用总结

一、背景 vue2项目中用到el-table这个组件&#xff0c;但基础的功能不够用&#xff0c;所以需要自定义 二、表头自定义 比如要让表头展现出下面的形式&#xff1a; 只需使用 slot"header" slot-scope"scope" 对插槽进行定义&#xff0c;并绑定变量 <…

CPU Cache:访问存储速度是如何大幅提升的?

我们了解到不同的物理器件&#xff0c;它们的访问速度是不一样的&#xff1a;速度快的往往代价高、容量小&#xff1b;代价低且容量大的&#xff0c;速度通常比较慢。为了充分发挥各种器件的优点&#xff0c;计算机存储数据的物理器件不会只选择一种&#xff0c;而是以 CPU 为核…

java的validation框架(参数校验)

一.bean validation和hibernate validator参数校验常用约束注解&#xff1a; 空值校验类&#xff1a;Null&#xff0c;NotNull&#xff0c;NotEmpty&#xff0c;NotBlank等 范围校验类&#xff1a;Min&#xff0c;Size&#xff0c;Digits&#xff0c;Future&#xff0c;Negati…

微信小程序自定义搜索标题栏

一&#xff1a;需求 把微信小程序标题栏处变成搜索栏。自定义返回上级页面。 二&#xff1a;需求分析 首先要把小程序标题栏设置为可自定义。然后计算原标题栏的高度组成结构。根据计算高度设置搜索框和返回按钮的布局。最后进行代码功能实现。 三&#xff1a;功能实现 1&…