BZOJ4025 二分图

【事件相机实战】噪声识别与智能滤波技术解析 本文深入解析了事件相机应用中关键的噪声识别与智能滤波技术。针对背景活动噪声、阈值波动噪声、热点噪声及运动边缘尾迹等核心噪声类型,文章剖析了其成因与特征,并详细介绍了从经典的时空相关性滤波、热点像素滤除到前沿的深度学习(如EDnCNN)等实战滤波方法,旨在帮助开发者在保证低延迟的前提下,有效提升事件流数据质量。 阅读详情

原题链接:https://www.lydsy.com/JudgeOnline/problem.php?id=4025

二分图

Description

神犇有一个n个节点的图。因为神犇是神犇,所以在T时间内一些边会出现后消失。神犇要求出每一时间段内这个图是否是二分图。这么简单的问题神犇当然会做了,于是他想考考你。

Input

输入数据的第一行是三个整数n,m,T。

第2行到第m+1行,每行4个整数u,v,start,end。第i+1行的四个整数表示第i条边连接u,v两个点,这条边在start时刻出现,在第end时刻消失。

Output

输出包含T行。在第i行中,如果第i时间段内这个图是二分图,那么输出“Yes”,否则输出“No”,不含引号。

Sample Input

3 3 3
1 2 0 2
2 3 0 3
1 3 1 2

Sample Output

Yes
No
Yes

HINT
样例说明:

0时刻,出现两条边1-2和2-3。

第1时间段内,这个图是二分图,输出Yes。

1时刻,出现一条边1-3。

第2时间段内,这个图不是二分图,输出No。

2时刻,1-2和1-3两条边消失。

第3时间段内,只有一条边2-3,这个图是二分图,输出Yes。

数据范围:

n<=100000,m<=200000,T<=100000,1<=u,v<=n,0<=start<=end<=T。

题解

偶然发现一篇咕咕咕了多年的题解,顺手水一波。

这么好的题当然要用 L C T \mathcal{LCT} LCT,把出现一条边看做 l i n k link link,消失看做 c u t cut cut,按时间将操作离线,如果出现了奇环,这就是个二分图。

但是这是个图, L C T \mathcal{LCT} LCT总有 l i n k link link出环的时候,所以我们只在 L C T \mathcal{LCT} LCT中保存一个以删除时间为关键值的最大生成树, l i n k link link时如果出现了环,将删除时间最早的边从 L C T \mathcal{LCT} LCT中删去,如果形成的是奇环,还要进行标记,奇环数 + 1 +1 +1;

删除时,如果该边本来就在 L C T \mathcal{LCT} LCT里,直接删去。如果不在 L C T \mathcal{LCT} LCT里且为我们标记过的奇环边,去掉标记,奇环数 − 1 -1 −1。

在本时间点的操作全部做完以后,根据奇环数回答询问即可。

代码
#include<bits/stdc++.h>
#define ls son[v][0]
#define rs son[v][1]
using namespace std;
const int M=1e6+5;
struct sd{int op,a1,a2,t,id;};
struct ed{int a1,a2,t;};
bool operator <(sd a,sd b){return a.t<b.t;}
int dad[M],son[M][2],siz[M],mn[M],val[M],n,m,t,top,ans;
bool rev[M],gg[M],on[M];sd ope[M];ed edge[M];
bool notroot(int v){return son[dad[v]][1]==v||son[dad[v]][0]==v;}
void up(int v)
{
	siz[v]=(v>n)+siz[ls]+siz[rs];mn[v]=v;
	if(val[mn[v]]>val[mn[ls]])mn[v]=mn[ls];  
	if(val[mn[v]]>val[mn[rs]])mn[v]=mn[rs];
}
void turn(int v){swap(ls,rs);rev[v]^=1;}
void down(int v){if(!rev[v])return;if(ls)turn(ls);if(rs)turn(rs);rev[v]=0;}
void push(int v){if(notroot(v))push(dad[v]);down(v);}
void spin(int v)
{
	int f=dad[v],ff=dad[f],k=son[f][1]==v,w=son[v][!k];
	if(notroot(f))son[ff][son[ff][1]==f]=v;son[v][!k]=f,son[f][k]=w;if(w)dad[w]=f;dad[f]=v,dad[v]=ff;
	up(f);
}
void splay(int v){push(v);for(int f,ff;notroot(v);spin(v)){f=dad[v],ff=dad[f];if(notroot(f))spin((son[f][0]==v)^(son[ff][0]==f)?v:f);}up(v);}
void access(int v){for(int f=0;v;v=dad[f=v])splay(v),rs=f,up(v);}
void beroot(int v){access(v);splay(v);turn(v);}
void split(int x,int y){beroot(x);access(y);splay(y);}
void link(int x,int y){beroot(x);dad[x]=y;}
void cut(int x,int y){split(x,y);dad[x]=son[y][0]=0;up(y);}
int findroot(int v){access(v);splay(v);while(ls)push(v),v=ls;return v;}
void in()
{
	int a,b,c,d,i;
	for(scanf("%d%d%d",&n,&m,&t),memset(val,127,sizeof(val)),i=1;i<=m;++i)
	scanf("%d%d%d%d",&a,&b,&c,&d),val[n+i]=d,ope[++top]=(sd){0,a,b,c,i},ope[++top]=(sd){1,a,b,d,i},edge[i]=(ed){a,b,d};
}
void deal1(int x,int y,int id,int lim)
{
	int hh;
	if(x==y){ans++;gg[id]=1;return;}
	beroot(x);
	if(findroot(y)!=x){link(y,id+n);link(x,id+n);on[id]=1;return;}
	else
	{
		split(x,y);
		if(val[mn[y]]<lim)
		{
			hh=mn[y]-n;
			if(siz[y]&1^1)gg[hh]=1,ans++;
			cut(edge[hh].a1,hh+n);cut(edge[hh].a2,hh+n);link(x,id+n);link(y,id+n);
			on[hh]=0;on[id]=1;
		}
		else if(siz[y]&1^1)gg[id]=1,ans++;
	}
}
void deal2(int x,int y,int id){if(on[id])cut(x,id+n),cut(y,id+n),on[id]=0;else if(gg[id])gg[id]=0,ans--;}
void ac()
{
	sort(ope+1,ope+1+top);
	for(int i=0,j=1,x,y,id;i<t;ans?puts("No"):puts("Yes"))
	for(++i;ope[j].t<i&&j<=top;++j){x=ope[j].a1,y=ope[j].a2,id=ope[j].id;ope[j].op?deal2(x,y,id):deal1(x,y,id,edge[id].t);}
}
int main(){in();ac();}
【WRFDA教程第一期】运行观测预处理程序(OBSPROC) 运行观测预处理程序(OBSPROC) 阅读详情

相关推荐

论文精读-ReTransformer ReRAM-based Processing-in-MemoryArchitecture for Transformer Acceleration

Transformer已经成为一种流行的深度神经网络(DNN)模型,用于神经语言处理(NLP)应用,并在神经机器翻译、实体识别等方面表现出优异的性能。然而,其在自回归解码器中的规模化点积注意机制在推理过程中带来了性能瓶颈。Transformer也是计算和内存密集型的,需要硬件加速解决方案。

a284365的博客 1922

bzoj4025 二分图

题目链接:bzoj4025 题目大意: 神犇有一个n个节点的图。因为神犇是神犇,所以在T时间内一些边会出现后消失。神犇要求出每一时间段内这个图是否是二分图。这么简单的问题神犇当然会做了,于是他想考考你。 题解: cdq+并查集判奇环 二分图,不存在奇环的图就叫二分图。所以用带权并查集来判断奇环。为了(?),按秩合并且不用路径压缩(方便还原并查集)。按秩合并的...

196

yolov8 转华为昇腾om脚本

yolov8 转华为昇腾om脚本

jacke121的专栏 1601

bzoj 4025: 二分图 (LCT)

题目描述传送门题目大意:有一个n个节点的图。在T时间内一些边会出现后消失。出每一时间段内这个图是否是二分图。题解如何判断一个图是不是二分图?对图进行黑白染色,如果一个点被染成了两种颜色,那么就不是,否则是二分图。 那如果不染色能不能判断?判断一下图中是否有奇环,如果有奇环的话一定不是二分图。注意自环也算做奇环。 那么我们以消失时间end为边权,维护最大生成树。对于加入的边分成三类,在树中的边,奇

clover_hxy的博客 609

某验SVG图标验证码识别思路(非训练)

本文提出了一种无需训练的某验SVG图标验证码识别方法。通过分析SVG文件结构,使用正则表达式提取静态图标数据,并借助CairoSVG库转换为PNG格式。随后采用坐标定位方式裁剪出12个固定位置的图标,最后利用ResNet50提取特征,通过余弦相似度匹配目标图标。该方法避免了训练目标检测模型,实现了高效准确的验证码识别。关键步骤包括SVG文件预处理、图标定位裁剪和基于预训练模型的相似度比对。

九月镇灵将的博客 419

第八章 GPU Scheduler 分析:8.3 drm_sched_entity — 调度实体

本文介绍了DRM GPU调度器中的drm_sched_entity结构,它作为用户提交命令进入调度器的提交通道,解决了归属、排序和公平性问题。文章首先分析了命令提交的归属需求,然后详细阐述了entity的核心模型,包括其职责、进程映射关系和核心字段。接着说明了用户态提交进入内核后的关键节点路径,以及entity内部的FIFO语义和激活机制。entity通过组织同一context的命令提交包为FIFO队列,使调度器能够在多个entity之间进行优先级和公平性调度,同时保证同一提交通道的顺序执行。

图形/计算GPU的驱动与虚拟化技术分享园地 653

BZOJ4025二分图题解(线段树分治+并查集)

题目:BZOJ4025. 题目大意:给定一张nnn个点mmm条边的无向图,以及每条边的出现时间段[li,ri][l_i,r_i][li​,ri​],问每个时间点的图是否是二分图. 1≤n≤105,1≤m≤2∗1051\leq n\leq 10^5,1\leq m\leq 2*10^51≤n≤105,1≤m≤2∗105,结束时间≤105\leq 10^5≤105. LCT做法. 考虑二分图的性质,...

hzk_cpp的博客 487

第一部分:VTK基础入门(第1章:VTK简介与概述)

VTK简介与核心特性概述 VTK(Visualization Toolkit)是一个开源的跨平台C++类库,专用于3D计算机图形学、图像处理和科学可视化。由Kitware公司开发,VTK自1993年起源以来,经历了开源化、成熟化和现代化多个发展阶段,现已成为科学可视化的核心工具之一。 VTK的核心特性包括: 管道架构:模块化设计实现数据流管理 丰富的数据支持:处理多边形数据、图像数据等 强大的渲染能力:集成OpenGL,支持多种渲染技术 最新版本VTK 9.4.2增强了现代C++支持,优化了内存管理,并提升

仰望星空的博客 2359

bzoj 4025: 二分图(线段树分治 + 可撤销并查集)

题目链接:bzoj4025 题目大意:有m条边,每条边有一个出线的时刻和消失的时刻,判断每个时刻这个图是否是二分图。 判断二分图可以用带权并查集,合并时维护一个 dis[x]dis[x]dis[x] 数组,表示在并查集树上 x 到 其父节点的距离(只需要维护奇偶性),当出现奇环时即该时刻的图不是二分图。 因为边有出现和消失两种操作,需要一种可以维护加入和删除的可撤销并查集。对于这类题,可以根据时间...

qq_41997978的博客 417

MIKE水动力笔记4_制作网格

建立水动力模型前的重要一步就是制作网格,本文所讲内容就是如何在MIKE中制作网格。

晏长街的博客 2万+

C++设计模式之观察者模式

观察者模式(Observer Pattern)是一种行为设计模式,它定义了对象之间的一对多依赖关系,当一个对象状态发生变化时,所有依赖于它的对象都会得到通知并自动更新。这种模式通常用于实现分布式事件处理系统,当一个对象(称为“主题”或“发布者”)改变状态时,所有注册的观察者都会收到通知。

每天进步一点点。 600

BZOJ4025: 二分图

题解: 首先要知道二分图的性质 如果这个存在奇环 那么不存在二分图 否则二分图存在 那么我们只需要维护这个图中是否出现奇环即可 首先考虑加边 如果没有联通直接连边即可 否则考虑这条链上是奇数还是偶数 如果是奇数点 那么把里面最小的边丢到集合中 并断开最小边加上目前这条边(根据删除的时间来判定) 删除时 如果这条边在集合中直接删除即可 否则就是先判定这条边是否是树边 如果是的话 直接断开树边 统计...

weixin_30566111的博客 242

数字后端:版图基础seal ring

seal ring结构是为了防止划片或封装对芯片造成破坏,从而在芯片与划片道(scribe line)之间添加的一圈保护环

m0_61544122的博客 1万+

[BZOJ 4025] 二分图

题目传送-BZOJ4025 题意: 有一张\(n\)个节点的无向图,其中边\(i\)在\(s_i\)出现,\(e_i\)结束,并连接着节点\(x,y\). 并保证\(s_i < e_i \le T\),要求对于每个时间\(t\le T\)输出此时的图是否是二分图。 \(n\le100000,m\le200000,T\le100000\) 题解: 这是道好题,考到了线段树(分治)的思...

A4401780916的博客 130

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

【BZOJ4025】二分图 LCT

【BZOJ4025】二分图 Description 神犇有一个n个节点的图。因为神犇是神犇,所以在T时间内一些边会出现后消失。神犇要求出每一时间段内这个图是否是二分图。这么简单的问题神犇当然会做了,于是他想考考你。 Input 输入数据的第一行是三个整数n,m,T。 第2行到第m+1行,每行4个整数u,v,start,end。第i+1行的四个整数表示第i条边连接u,...

aodanchui1057的博客 154

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

BZOJ4025 二分图题解(LCT)

题目:BZOJ4025. 题目大意:给定一张nnn个点mmm条边的无向图,以及每条边的出现时间段[li,ri][l_i,r_i][li​,ri​],问每个时间点的图是否是二分图. 考虑二分图的性质,想到一张图为二分图的条件为没有奇环,玩这个方向往下想. 考虑问题其实就是给一张图加边或删边,查询图是否是二分图这个操作是一个标准的动态图模型,而动态图一般是用动态树维护图的一个生成树来实现的,所以考虑使...

hzk_cpp的博客 455

BZOJ 4025 二分图 分治+并查集

题目大意:给定一张nn个点的图,有mm条边,TT个时间段,每条边只存在于(st,ed](st,ed]这些时间段,求每个时间段内这个图是否是二分图 分治并查集大法好 定义Solve(x,y,E)Solve(x,y,E)为当前处理的区间为[x,y][x,y],EE为所有存在时间为[x,y][x,y]的子集的边的集合 那么对于EE中的每一条边(u,v)(u,v),讨论: 若当前边的存在时间为[x,

世界 4883

[BZOJ4025][线段树分治][并查集]二分图

BZOJ4025 维护动态图,如果某一个时刻出现了奇环,那么之后都不是二分图,很好证明,一个奇环不可能拆成几个偶环 查询新加入的一条边的两个端点的距离即可判断奇偶性,可以通过带权并查集+染色做到 动态加边删边就用分治就完了 Code: #include<bits/stdc++.h> using namespace std; inline int read(){ int res=0,f...

romiqi 315

[BZOJ4025]二分图

[BZOJ4025]二分图 试题描述 神犇有一个n个节点的图。因为神犇是神犇,所以在T时间内一些边会出现后消失。神犇要求出每一时间段内这个图是否是二分图。这么简单的问题神犇当然会做了,于是他想考考你。 输入 输入数据的第一行是三个整数n,m,T。 第2行到第m+1行,每行4个整数u,v,start,end。第i+1行的四个整数表示第i条边连接u,v两个点,这条边在start时刻出现,...

weixin_30832351的博客 69

[bzoj4025]二分图

4025: 二分图Time Limit: 20 Sec Memory Limit: 512 MB Submit: 458 Solved: 172 [Submit][Status][Discuss] Description神犇有一个n个节点的图。因为神犇是神犇,所以在T时间内一些边会出现后消失。神犇要求出每一时间段内这个图是否是二分图。这么简单的问题神犇当然会做了,于是他想考考你。 Inp

Vampire 854

【BZOJ 4025】二分图

算法标签:线段树分治+可撤销并查集

forever_dreams的博客 223

【BZOJ4025】二分图(线段树分治,并查集)

【BZOJ4025】二分图(线段树分治,并查集) 题面 BZOJ 题解 是一个二分图,等价于不存在奇环。 那么直接线段树分治,用并查集维护到达根节点的距离,只计算就好了。 #include<iostream> #include<cstdio> #include<cstdlib> #include<cstring> #include<cmath&...

weixin_30344131的博客 187
上一篇: CF1051D Bicolorings
下一篇: CF1042F Leaf Sets
ShadyPi
博客等级 码龄9年 1万+粉丝 637原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ShadyPi

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值