最高的牛

news/2024/8/22 17:52:51

title: 最高的牛
date: 2023-12-14 21:29:19
tags: 差分
categories: 算法进阶指南

—>传送门

题目大意

在这里插入图片描述

思路

题目中的 M M M 对关系给我们的信息实际上是牛之间身高的相对大小的关系,我们初始化一个数组 a a a,全部为 0 0 0,有一对关系内,我们就可以得知在 ( l , r ) (l,r) (l,r) 内的牛要比端点矮,通过差分来映射出这个关系,我这个范围内的牛要比端点的至少低 1 1 1,最后每个牛的身高就是最高值与相对大小之和,即 h + a [ i ] h + a[i] h+a[i]

时间复杂度

将区间操作转化了左右端点上的操作,时间复杂度为 O(N + M)。

代码

#include<bits/stdc++.h>
#define fi first
#define se second
#define pb push_back
#define sz size()
#define bpt __builtin_popcountll

using namespace std;
typedef long long ll;
typedef unsigned long long ull;
typedef pair<int, int> PII;

const int N = 6E5 + 10, mod = 1e9 + 7;


int main()
{
	int n,p,h,m;
	cin >> n >> p >> h >> m;
	vector<int>a(n + 2);
	map<PII,int> mp;
	for(int i = 0; i < m; i++){
	    int l,r;
	    cin >> l >> r;
	    if(l > r) swap(l,r);
	    if(mp[{l,r}]) continue;
	    mp[{l,r}] = 1;
	    a[l + 1] --,a[r] ++;
	}
	for(int i = 1; i <= n; i++){
	    a[i] += a[i - 1];
	}
	for(int i = 1; i <= n; i++){
	    cout << h + a[i] << endl;
	}
    return 0;
}

http://lihuaxi.xjx100.cn/news/1892408.html

相关文章

Java stream流实现List<对象>通过对象中的多个字段去重

遇到同时通过多个字段对list进行去重需求&#xff0c;记录一下 先创建一个实体类 Data public class User {private Long id;private String name;private String code;private String phone;private Integer age;public User(Long id, String name, String code, String phon…

代码随想录Day51—— 309.最佳买卖股票时机含冷冻期 714.买卖股票的最佳时机含手续费

309.最佳买卖股票时机含冷冻期 给定一个整数数组prices&#xff0c;其中第 prices[i] 表示第 i 天的股票价格 。​ 设计一个算法计算出最大利润。在满足以下约束条件下&#xff0c;你可以尽可能地完成更多的交易&#xff08;多次买卖一支股票&#xff09;: 卖出股票后&…

C语言数据结构-二叉树的入门

文章目录 0 碎碎念1 二叉树的概念和结构1.1 概念和特点1.2 结构1.3 特殊的二叉树1.4 二叉树的存储与性质1.5 前序、中序和后序 2 简单二叉树的实现2.1 定义数据结构类型2.2 前序、中序和后序接口的实现2.3 二叉树中节点的个数2.4 叶子节点的个数 3 完整代码块3.1 BinaryTree.h3…

【论文解读】ICLR 2024高分作:ViT需要寄存器

来源&#xff1a;投稿 作者&#xff1a;橡皮 编辑&#xff1a;学姐 论文链接&#xff1a;https://arxiv.org/abs/2309.16588 摘要&#xff1a; Transformer最近已成为学习视觉表示的强大工具。在本文中&#xff0c;我们识别并表征监督和自监督 ViT 网络的特征图中的伪影。这些…

windows 设置定时开机

一、设置自动关机 按WinR键打开运行 如果你想设置预定时间关机可以这样输入&#xff1a; at 22:00 shutdown -s 或者 shutdown -s -t 7200&#xff08;2小时后自动关机&#xff09; 7200——【1小时3600秒&#xff0c; 这里设置7200就等于两个小时之后电脑关机 】&#xff1…

一键提取微信聊天记录,生成HTML、Word文档永久保存,还能生成微信年度聊天报告

不知道生活中你有没有遇到过这种情况&#xff0c;聊天记录不完整&#xff0c;有的在手机上&#xff0c;有的在电脑上&#xff0c;搜索起来很烦。那有没有一种办法可以把微信聊天记录统一呢&#xff1f;当然是有的。下面&#xff0c;就让我们一起来看一下怎么操作。 先看效果 操…

c11 override声明,函数饰词的用法

1.override 声明词 无论何时&#xff0c;只要你在派生类中声明了一个函数&#xff0c;而且该函数意在改写基类中的一个虚函数时&#xff0c;请确保你给该函数加上此关键字。 如果函数加上此关键字&#xff0c;则编译发现虚派发时的语法错误会报错提示。 class base { public…

CSDN一键注释功能

这是什么牛逼哄哄的功能 看这里&#xff1a; 然后&#xff1a; 再试一个&#xff1a; 输出结果是&#xff1f;package yuyi03.interview;/*** ClassName: InterviewTest2* Package: yuyi03.interview* Description:** Author 雨翼轻尘* Create 2023/12/14 0014 0:08*/ publ…