cf 1027f Session in BSU

FPGA实现Gardner环定时同步:Verilog代码与Testbench实战解析 本文深入解析了在FPGA上实现Gardner环定时同步的完整过程,详细阐述了其非数据辅助的定时误差检测原理。通过Verilog代码实战,展示了内插滤波器、定时误差检测器、环路滤波器和数控振荡器等核心模块的设计,并提供了完整的Testbench验证方法,帮助开发者解决数字通信系统中的时钟同步难题。 阅读详情

一 原题

F. Session in BSU

time limit per test: 4 seconds

memory limit per test: 256 megabytes

input: standard input

output: standard output

Polycarp studies in Berland State University. Soon he will have to take his exam. He has to pass exactly nnexams.

For the each exam ii there are known two days: aiai — day of the first opportunity to pass the exam, bibi — day of the second opportunity to pass the exam (ai<biai<bi). Polycarp can pass at most one exam during each day. For each exam Polycarp chooses by himself which day he will pass this exam. He has to pass all the nn exams.

Polycarp wants to pass all the exams as soon as possible. Print the minimum index of day by which Polycarp can pass all the nn exams, or print -1 if he cannot pass all the exams at all.

Input

The first line of the input contains one integer nn (1≤n≤1061≤n≤106) — the number of exams.

The next nn lines contain two integers each: aiai and bibi (1≤ai<bi≤1091≤ai<bi≤109), where aiai is the number of day of the first passing the ii-th exam and bibi is the number of day of the second passing the ii-th exam.

Output

If Polycarp cannot pass all the nn exams, print -1. Otherwise print the minimum index of day by which Polycarp can do that.

Examples

input

Copy

2
1 5
1 7

output

Copy

5

input

Copy

3
5 13
1 5
1 7

output

Copy

7

input

Copy

3
10 40
40 80
10 80

output

Copy

80

input

Copy

3
99 100
99 100
99 100

output

Copy

-1

 

二 分析

离散化之后问题描述如下:给你一个无向图,顶点标号1-n,要求从每条边的两个顶点中选出一个,点不能被重复选。要最小化这些点的标号最大值。

考虑一个连通分量(感觉这个操作就像高中做数论题时考虑一个数的素因子一样),顶点数nv和边数ne有三种情况:

1. ne = nv - 1 (树)

2. ne = nv (基环图)

3. ne > nv 

分别讨论一下就好了。

 

三 代码

/*
AUTHOR: maxkibble
LANG: c++
PROB: 1027f
*/

#include <bits/stdc++.h>

using namespace std;

#define fi first
#define se second
#define pb push_back
#define pii pair<int, int>

const int maxn = 2e6 + 5;

int n;
int e[maxn][2];
int es[maxn], cnt;
int fa[maxn], nv[maxn], ne[maxn], maxv[maxn][2];

int root(int x) {
	return fa[x] == x? x: fa[x] = root(fa[x]);
}

inline void unite(int x, int y) {
	x = root(x);
	y = root(y);
	ne[x]++;
	if (x == y) return;
	fa[y] = x;
	nv[x] += nv[y];
	ne[x] += ne[y];
	if (maxv[x][0] > maxv[y][0]) {
		maxv[x][1] = max(maxv[y][0], maxv[x][1]);
	} else {
		maxv[x][1] = max(maxv[x][0], maxv[y][1]);
		maxv[x][0] = maxv[y][0];
	}
}

int main() {
	scanf("%d", &n);
	for (int i = 0; i < n; i++) {
		for (int j = 0; j < 2; j++) {
			scanf("%d", &e[i][j]);
			es[cnt++] = e[i][j];
		}
	}
	sort(es, es + cnt);
	int m = unique(es, es + cnt) - es;
	for (int i = 0; i < n; i++) {
		e[i][0] = lower_bound(es, es + m, e[i][0]) - es;
		e[i][1] = lower_bound(es, es + m, e[i][1]) - es;
	}
	for (int i = 0; i < m; i++) {
		fa[i] = i;
		nv[i] = 1;
		maxv[i][0] = i;
		maxv[i][1] = -1;
	}
	for (int i = 0; i < n; i++) {
		unite(e[i][0], e[i][1]);
	}
	int ans = -1;
	for (int i = 0; i < m; i++) {
		if (root(i) != i) continue;
		// printf("%d %d %d %d %d\n", i, nv[i], ne[i], maxv[i][0], maxv[i][1]);
		if (nv[i] < ne[i]) {
			puts("-1");
			return 0;
		}
		if (nv[i] == ne[i])
			ans = max(ans, maxv[i][0]);
		else
			ans = max(ans, maxv[i][1]);
	}
	printf("%d\n", es[ans]);
	return 0;
}

 

【MATLAB-app】系列教程(含视频)第4、5、6课:实战_制作简单的图像处理软件 写作时间: 2020-12-27 我的教程目录 第1课:初步了解appdesigner 第2课:学会制作一个计算器 第3课:学习更多的控件(重点!) 第4课:实例1:制作一个图像处理软件 第5课:学习APPdesigner的设计精髓,框架 第6课:结合使用多种控件,函数等,丰富我们的实例1 第7课:app设计打包,完成工程应用导出 标题: 第4课:我的实例_学会制作一个图像处理软件 本文目录: 1.先看看我之前的一个工程 2.常用的基本组件控件 3.最常用且实用的控件的用法 -3.1 editfilel 阅读详情

相关推荐

CC2340R5-OAD升级实战:从配置到调试的全流程解析

本文详细解析CC2340R5芯片的OAD(空中升级)全流程,涵盖环境配置、MCU-BOOT、OAD-BL和OAD-APP程序开发,以及内存布局和调试技巧。通过实战案例展示如何实现蓝牙设备的远程固件升级,提升开发效率和产品可维护性。

silver的专栏 1063

Codeforces_1027F_Session in BSU(并查集维护二分图)

传送门 题意:一个人有n场考试,每场考试有2个可以考试的时间,问是否可以安排上所有的考试,如果可以输出最短的天数。 思路:非常有意思的一道题。现场看到觉得是一个二分图匹配,但是发现数据范围很大(结果还真有二分图过的)。 1)首先需要离散化,这样最多只有2e6的点,可以存的下。 2)我们将点点的模型变成一个点边的模型,将一场考试的两个时间点连一条边,然后如果在一个连通块中如果点数(考试数)=...

yyy_3y的博客 326

从零开始STM32cubeide学习

使用的是正点原子的精英版,单片机是STM32F103ZET6,详细讲解完成跑马灯实验

weixin_44077208的博客 2280

补题向 | Session in BSU(并查集维护二分图匹配,基环树?)

Session in BSU 有n场考试,每场考试有两个参加的时间点,求参加完所有的考试的最早时间 把每个时间点看成点,每场考试的两个点相连,那么边就代表每场考试,考试的场数为边数en,参加考试的时间点为顶点数量vn 对于每个连通板块,只有三种情况 vn==en,那么刚好一个时间点参加一场考试,因此参加完所有考试的时间是此板块中所有时间点的最大值,这种情况下板块中肯定存在环 ...

bekote的博客 386

银行客户投诉预测模型优化

在实际操作中,银行可以使用这个优化后的模型来识别那些可能引起客户不满的因素,并采取预防措施。例如,如果模型表明退款金额是一个很强的预测因子,银行可能会审查其退款政策,以确保它对客户是公平和透明的。在银行业务中,客户投诉是一个重要的指标,它直接关系到客户满意度和银行服务质量。某一个指标,比如:退款金额,本文假设退款金额对于预测投诉的权重应该高于赔偿金额。在每次迭代中,本文使用当前的权重组合来训练模型,并计算在测试集上的准确率。的可能值来搜索最佳的权重组合,并输出最佳准确率及对应的权重。来寻找最佳的权重组合。

weixin_57499254的博客 1707

【FISCO BCOS】二十、多机部署区块链

实际开发中,为了满足高可用性和高容错性的需求,往往会采用多级部署区块链的方式,今天介绍一下FISCO BCOS的多机部署流程。

naihe_fish的博客 3651

Codeforces 1027F Session in BSU - 并查集

题目传送门   传送门I   传送门II   传送门III 题目大意   有$n​$门科目有考试,第$i​$门科目有两场考试,时间分别在$a_i, b_i\ \ (a_i < b_i)​$,要求每门科目至少参加一场考试,不能在同一个时间参加两场考试,问最后参加的考试最早的时间是什么。   这几天,我怎么做的都是水题Emm....   考虑先将$a_i, b...

adx33526的博客 184

蓝牙芯片驱动开发-第11章第1题-WiFi蓝牙共存的关键策略有哪些

蓝牙芯片驱动开发-第11章第1题-WiFi蓝牙共存的关键策略有哪些

weixin_42162924的博客 30

CF1027F Session in BSU

一、题目 点此看题 二、解法

C202044zxy的博客 227

嵌套学习 (Nested Learning, NL):赋予AI持续学习能力的革命性范式

嵌套学习(Nested Learning, NL)的核心哲学在于彻底颠覆传统深度学习中将模型架构(Architecture)与优化算法(Optimization)视为两个独立组件的“扁平化”视角 。传统方法通常将神经网络的结构设计和其训练过程分离开来,模型架构是预先定义好的静态蓝图,而优化算法(如SGD、Adam)则是一个外部的、统一的规则引擎,负责在训练期间调整模型参数 。这种分离的视角隐藏了模型内部不同组件之间复杂的梯度流和动态更新过程,将整个学习系统视为一个单一层次的优化问题。然而,嵌套学习范式提出,

步子哥的博客 487

【零基础学习CAPL】——CAN报文的发送(CRC——ChecSum值)

本章主要介绍带有CRC值的报文发送一般报文可使用CANoe的IG模块直接发送,但带有CRC值的报文就只能编写脚本进行发送,以下详细讲解在配合Panel面板情况下,如何进行带有循环冗余码的报文进行报文的发送。

LOVE135149的博客 1913

codeforces1027F. Session in BSU

题目链接 codeforces1027F. Session in BSU 题解 二分图匹配就fst了....显然是过去的,不过tle test87估计也pp了,好坑 那么对于上面做匹配的这个二分图分情况讨论一下 考虑当前的联通块: 边数大于点数:这样肯定是无解的 边数 = 点数:这是一棵基环树,每个日期都会被用,输出最大值 边数 < 点数:这是一棵树,输出次大值 并查集维护一下联通...

agtvo48266的专栏 196

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

[CF1027F]Session in BSU

说难不难,言易不易。

七代目鸽影 241

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

【题解】CF1027F:Session in BSU

原题传送门 这题我用并查集过了 看到范围1e9,所以先离散 然后每次把点对应的两个时间用并查集连条边 对于每个点的两个时间,分类讨论 两个时间都没选,暂时选小的那个,并用并查集把两个时间连起来 有一个选了,那么这次选剩下的那个,然后把这两个时间删掉(就是在并查集里把他们的祖先设置为0) 都选过了(表现为两个时间的祖先都为0),那么直接输出-1得了 为什么这题用并查集就搞定了呢,并查集的连边操作...

ModestCoder_的博客 499

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

CF 1027 F. Session in BSU

F. Session in BSU https://codeforces.com/contest/1027/problem/F 题意:   n场考试,每场可以安排在第ai天或者第bi天,问n场考完最少需要多少天。 分析:   将所有的a与b连边,一条边相当于一场考试,一个点相当于一个考试时间,每条边需要找一个点。   那么在一个联通块中,边数>点数,无解(这些考试都只能在这...

weixin_30527323的博客 266

[CF1027F]Session in BSU[最小基环树森林]

题意 有 \(n\) 门课程,每门课程可以选择在 \(a_i\) 或者 \(b_i\) 天参加考试,每天最多考一门,问最早什么时候考完所有课程。 \(n\leq 10^6\)。 分析 类似 [BZOJ4883]棋盘上的守卫 一题。 将每门课程对应的两天连边,如果课程 \(i\) 要在第 \(x\) 天考,则对应边指向 \(x\) 。 最后有 \(n\) 天,\(n\) 条有向边,每条边...

aqw145212的专栏 206

[CF1027F] Session in BSU

题目传送门 洛谷 (有翻译) 网上有用dfs或者二分图匹配什么的,感觉略显复杂。 这道题可以用并查集解决。 把每个考试对应的两个时间连起来。 连的时候判断无解的情况,还有(暂时)有解的两种情况就行了: 祖先是0的已经不能取了,如果两个都不行就无解。 一个不行就必须取另一个。 两个都行,暂时取最小的。 1 #include<cstdio> 2 #include...

weixin_30344131的博客 168

省选专练CF1027F Session in BSU

如果你做过SCOI2010连续攻击游戏 就会一眼发现做法——并查集维护二分图 这个做法: 并查集要特意把祖先放的较大 这样祖先就是这个联通块的最大权 #include<bits/stdc++.h> using namespace std; inline void read(int &x){ x=0; ch...

dingwufu9301的博客 180

cf1027F. Session in BSU(并查集 匈牙利)

题意 题目链接 $n$个人,每个人可以在第$a_i$天或第$b_i$,一天最多考一场试,问在最优的情况下,最晚什么时候结束 Sol 自己只能想到暴力匈牙利二分图匹配,然而还是被构造数据卡了。。 标算很神奇。 同样考虑把题目中给出的模型建成二分图,左侧代表每个人,右侧代表每一天的考试 然后我们把右侧每个人能选择的两个点之间连边 这样模型就由二分图转化成了一条链上的问题。 分情况讨论...

weixin_33971130的博客 165

[基环树入门][ZJOI2008]骑士/CF1027F Session in BSU

最近一下子看到好多基环树的题,先做两道入门吧 解释基环树——树加一条边使之成环 这里想说一下基环树和tarjan最基本的区别:基环树入度出度至多为1。 树形DP还有一种特殊情况——基环树的DP,基环树就是一颗树上再加一条边,处理基环树问题时一般先找出环再处理,然后再搞来搞去就行啦 例如[ZJOI2008]骑士 利用基环树只有一条多余边的性质对其进行特判,其余树形dp   ps  f[i...

Wall-E 420

Codeforces1027F Session in BSU

全世界都在考基环树系列,一场CF考了两题基环树。。。。。。 AC Code: #include&lt;cstdio&gt; #include&lt;cstring&gt; #include&lt;cctype&gt; #include&lt;vector&gt; #include&lt;cmath&gt; #include&lt;algorithm&gt; #define maxn 200...

Freopen的博客 381
上一篇: cf 1027D Mouse Hunt
下一篇: cf 1051F The Shortest Statement
max_kibble
博客等级 码龄11年 2粉丝 110原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值