代码源每日一题div1 区间和

news2025/7/15 17:33:05

区间和 - 题目 - Daimayuan Online Judge

题意:

 思路:

根据前缀和的性质:当已知的前缀和区间是整个区间的划分时,才能求出整个区间的和

因为如果两个区间之间有交叉,交叉部分的和求不出来

因此,如果已知两个区间的和,就能求出两个区间合并起来的值

我们把区间端点看成结点,那么已知上面两条边,就能求出下面那条边

我们把这种关系叫做传递性,并查集维护的就是这种关系

所谓朋友的朋友也是朋友,亲戚的亲戚也是亲戚,描述的就是这种关系

因此我们可以用并查集去维护

并查集中的元素是端点,因此对于读入的 l 和 r ,建边就好了

因为已知 l 和 r,可以推出来sum[r]-sum[l-1],因此需要把l-1和r连边

这样建边之后,我们看0和n在不在同一个连通块就好了

Code:

#include <bits/stdc++.h>
using namespace std;
const int mxn=2e5+10;
int n,m,l,r;
int f[mxn];
int find(int x){
	return f[x]=(x==f[x])?x:find(f[x]);
}
void join(int u,int v){
	int f1=find(u),f2=find(v);
	if(f1!=f2) f[f1]=f2;
}
void init(){
	for(int i=0;i<=n;i++) f[i]=i;
}
int main(){
	ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
	cin>>n>>m;
	init();
	for(int i=1;i<=m;i++){
		cin>>l>>r;
		join(l-1,r);
	}
	if(find(0)==find(n)) cout<<"Yes"<<'\n';
	else cout<<"No"<<'\n';
}

 总结:

当题目中有关于传递性的条件时,可以考虑并查集

传递性的本质是图论中间接有关系的两个结点之间可以直接连边,变成直接关系

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

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

相关文章

DeFi收益来源全面概述

去中心化金融一个主要的优势就是它对所有人开放&#xff0c;任何人在任何时间、任何地点都可以参与其中。这样一来&#xff0c;作为DeFi参与者就有机会获得在传统金融领域很难获得或根本不可能获得的收益。 加密货币的特性是开源的、无需许可的&#xff0c;这将DeFi变成了一个…

【Linux】进程创建/终止/等待/替换

目录 一、子进程的创建 1、fork函数的概念 2、如何理解fork拥有两个返回值 3、fork调用失败的场景 二、进程的终止 1、main函数返回值 1.1main函数的返回值的意义 1.2将错误码转化为错误信息 1.3查看进程的退出码 2、进程退出的情况 1、进程的正常退出与异常退出 2…

Principal branch

In mathematics, a principal branch is a function which selects one branch (“slice”) of a multi-valued function. Most often, this applies to functions defined on the complex plane. Contents1 Examples1.1 Trigonometric inverses1.2 Exponentiation to fraction…

255-261BFC,媒体的类型,媒体的特性,浏览器前缀,媒体查询,逻辑操作符,

◼ 有时候可能会看到有些CSS属性名前面带有:-o-、-xv-、-ms-、mso-、-moz-、-webkit- ◼ 官方文档专业术语叫做:vendor-specific extensions(供应商特定扩展) ◼ 为什么需要浏览器前缀了?  CSS属性刚开始并没有成为标准,浏览器为了防止后续会修改名字给新的属性添加了浏…

树莓派学习笔记(一)

树莓派学习笔记 笔记来自B站UP主【树小悉】的树莓派系列视频的听课笔记&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;适合新手入门&#xff0c;强烈推荐&#xff01;&#xff01;&#xff01; 关机命令 sudo poweroff 关闭电源sodo shutdown -h now 立刻关机sudp shut…

二、进程管理(四)经典同步互斥问题

目录 4.1生产者-消费者问题 4.1.1单类生产者-单类消费者问题 4.1.2多类生产者-多类消费者问题 4.1.3吸烟者问题 4.2读者-写者问题 4.3哲学家进餐问题 分析进程同步和互斥问题的三步&#xff1a; 关系分析&#xff1a;分析问题中的同步&#xff08;前驱关系&#xff09;、…

端口渗透篇:Java RMI 远程代码执行漏洞

转载https://cloud.tencent.com/developer/article/2149191 前言持续更新&#xff1a;整理下渗透测试工作中发现过的漏洞&#xff08;包含漏洞描述、漏洞等级、漏洞验证、修复建议&#xff09;&#xff0c;这里不深究漏洞产生的各种后利用或者绕过方式&#xff0c;漏洞验证过程…

【Python游戏】Python各大游戏合集(5):塔防游戏、飞机大战、连连看、打地鼠、记忆翻牌 | 附带源码

相关文件 关注小编&#xff0c;私信小编领取哟&#xff01; 当然别忘了一件三连哟~~ 公众号&#xff1a;Python日志 可以关注小编公众号&#xff0c;会不定时的发布一下Python小技巧&#xff0c;还有很多资源可以免费领取哟&#xff01;&#xff01; 源码领取&#xff1a;加P…

【高速数字化仪应用案例系列】虹科数字化仪在通信领域的应用

通信应用 随着国际社会要求以越来越快的速度传输更多信息&#xff0c;电子通信也在不断发展。模拟和数字技术用于无线、光纤和有线网络系统提供的点对点和广播通信。为了开发和维护这些系统&#xff0c;工程师需要能够测试和鉴定接收和传输的信号。需要减少信号损失或衰减&…

SpringBoot SpringBoot 原理篇 1 自动配置 1.2 bean 的加载方式【二】

SpringBoot 【黑马程序员SpringBoot2全套视频教程&#xff0c;springboot零基础到项目实战&#xff08;spring boot2完整版&#xff09;】 SpringBoot 原理篇 文章目录SpringBootSpringBoot 原理篇1 自动配置1.2 bean 的加载方式【二】1.2.1 第二种方式1 自动配置 1.2 bean …

idea 项目代码打包为jar包详解

目录前言一、将所有依赖和模块代码打包为一个jar二、只将模块代码打包为一个jar前言 假设我有如下简单 maven 项目 点击 File > Project Structure > Artifacts > 点击加号 > 选择JAR > 选择From modules with dependencies 一、将所有依赖和模块代码打包为一…

【树莓派不吃灰】命令篇⑨ 记录学习文件系统

目录1. 外部存储设备1.1 分区挂载1.2 查看磁盘信息&#xff08;包括未挂载磁盘&#xff09;1.2.1 mmcblk0p01.2.2 sda1&#xff08;额外了解&#xff09;1.3 查看UUID1.4 查看文件系统挂载情况2. 文件系统2.1 索引式文件系统2.1.1 EXT2 文件系统&#xff08;了解&#xff09;2.…

Android 序列化框架 Gson 原理分析,可以优化吗?

本文已收录到 AndroidFamily&#xff0c;技术和职场问题&#xff0c;请关注公众号 [彭旭锐] 提问。 前言 大家好&#xff0c;我是小彭。 Gson 是 Google 推出的 Java Json 解析库&#xff0c;具有接入成本低、使用便捷、功能扩展性良好等优点&#xff0c;想必大家都很熟悉了。…

ES6 入门教程 25 Module 的加载实现 25.4 循环加载

ES6 入门教程 ECMAScript 6 入门 作者&#xff1a;阮一峰 本文仅用于学习记录&#xff0c;不存在任何商业用途&#xff0c;如侵删 文章目录ES6 入门教程25 Module 的加载实现25.4 循环加载25.4.1 CommonJS 模块的加载原理25.4.2 CommonJS 模块的循环加载25.4.3 ES6 模块的循环加…

MobPush Android 快速集成

开发工具&#xff1a;Android Studio 集成方式&#xff1a;Gradle在线集成 安卓版本支持&#xff1a;minSdkVersion 19 集成准备 注册账号 使用PushSDK之前&#xff0c;需要先在MobTech官网注册开发者账号&#xff0c;并获取MobTech提供的AppKey和AppSecret&#xff0c;详情可…

Gitblit自建仓库及多人使用

上稿已完成了Git Server部署了&#xff0c;现在开始创建仓库及笔者常用的IDE使用 第一步&#xff1a;SSH密钥生成&#xff0c;并保存到GitBlit 正常Git都会用到的server SSH Keys&#xff0c;这里自建同样少不了 【问题直接在CMD输入命令&#xff0c;直接切菜&#xff0c;笔…

ShardingSphere (一)

ShardingSphere &#xff08;一&#xff09; ShardingSphere-JDBC 与 SpringBoot 集成 ShardingSphere-JDBC 定位为轻量级 Java 框架&#xff0c;在 Java 的 JDBC 层提供的额外服务。 它使用客户端直连数据库&#xff0c;以 jar 包形式提供服务&#xff0c;无需额外部署和依赖…

气人|这种通过率调优技巧居然这么晚才让我知道

量化风控审核过程中的通过率在贷前策略中是一大重要的内容&#xff0c;另外一个是逾期率。二者之间的因果关系就是通过率高低变化决定了逾期率风险的走势&#xff0c;通过率决定了逾期率的结果&#xff0c;而逾期率又对通过率起到了一个制衡的作用。 很多的风险管理人员常常会遇…

前端实现克里金插值分析(一)

作者:yangjunlin 最近不少小伙伴问我怎么搞前端插值分析&#xff0c;我在github上查找了一些资料&#xff0c;目前最常用的方式是webgis框架idw&#xff08;反距离权重算法&#xff09;d3-contour的方式实现&#xff0c;这种方式是比较简单同时基本能满足一般的气象分析&#x…

Netty入门学习

同步&#xff1a;当调用方法的线程和接收结果的线程是同一个&#xff0c;这意味着阻塞&#xff0c;那么是同步。 异步&#xff1a;当调用方法的线程和处理结果的线程不是同一个&#xff0c;这意味着不是阻塞&#xff0c;是异步。 下图是一个简单的Netty的客户端和服务器端 【…