P1955-[NOI2015]程序自动分析【并查集,离散化】
正题
评测记录:https://www.luogu.org/recordnew/lists?uid=52918&pid=P1955
题目大意
给出若干个关系,xi≠xj or xi=xjxi≠xjorxi=xjx_i\neq x_j\ \ \ or\ \ \ x_i=x_j,然后求是否全部都满足。
解题思路
首先由于数据较大,所以我们先离散化,然后用并查集。先处理所有等于的关系,然后不等于的再判断。
code
#include<cstdio>
#include<algorithm>
#define N 1000010
using namespace std;
struct node{int x,y,t;
}a[N];
int n,uniq[2*N],f[2*N],t;
bool cmp(node x,node y)
{return x.t>y.t;
}
int find(int x)
{if(f[x]!=x) return f[x]=find(f[x]);return x;
}
int main()
{scanf("%d",&t);for(int ti=1;ti<=t;ti++){scanf("%d",&n);for(int i=1;i<=n;i++){scanf("%d%d%d",&a[i].x,&a[i].y,&a[i].t);uniq[i]=a[i].x;uniq[i+n]=a[i].y;}//以上为去重stable_sort(uniq+1,uniq+1+2*n);int m=unique(uniq+1,uniq+1+2*n)-(uniq+1);//以上为离散化for(int i=1;i<=m;i++) f[i]=i;//初始化并查集for(int i=1;i<=n;i++){a[i].x=lower_bound(uniq+1,uniq+1+m,a[i].x)-(uniq+1),a[i].y=lower_bound(uniq+1,uniq+1+m,a[i].y)-(uniq+1);}//以上为找到离散化之后的位置stable_sort(a+1,a+1+n,cmp);bool flag=0;for(int i=1;i<=n&&!flag;i++){int fa=find(a[i].x),fb=find(a[i].y);if(a[i].t) f[min(fa,fb)]=max(fa,fb);//链接else if(fa==fb) printf("NO\n"),flag=true;//判答案}if(!flag) printf("YES\n");}
}
P1955-[NOI2015]程序自动分析【并查集,离散化】相关推荐
- 洛谷 P1955 [NOI2015]程序自动分析(沙雕题)
题目描述 在实现程序自动分析的过程中,常常需要判定一些约束条件是否能被同时满足. 考虑一个约束满足问题的简化版本:假设x1,x2,x3-代表程序中出现的变量,给定n个形如xi=xj或xi≠xj的变量相 ...
- P1955 [NOI2015]程序自动分析 离散化学习 lower_bound学习
题目链接 https://www.luogu.org/problemnew/show/P1955 题目描述 在实现程序自动分析的过程中,常常需要判定一些约束条件是否能被同时满足. 考虑一个约束满足问题 ...
- P1955 [NOI2015] 程序自动分析
解题思路 输入的数据有满足约束和不满足约束,很明显我们能解决的是等于的情况,用并查集直接将相等的两个变量合并起来,并且我们很明显能发现是否满足条件和判断的顺序是无关的,所以我们可以先将相等的变量进行合 ...
- bzoj 4195: [Noi2015]程序自动分析
4195: [Noi2015]程序自动分析 Description 在实现程序自动分析的过程中,常常需要判定一些约束条件是否能被同时满足. 考虑一个约束满足问题的简化版本:假设x1,x2,x3,-代表 ...
- 【bzoj4195】[Noi2015]程序自动分析 离散化+并查集
题目描述 在实现程序自动分析的过程中,常常需要判定一些约束条件是否能被同时满足. 考虑一个约束满足问题的简化版本:假设x1,x2,x3,-代表程序中出现的变量,给定n个形如xi=xj或xi≠xj的变量 ...
- 【刷题】BZOJ 4195 [Noi2015]程序自动分析
Description 在实现程序自动分析的过程中,常常需要判定一些约束条件是否能被同时满足. 考虑一个约束满足问题的简化版本:假设x1,x2,x3,-代表程序中出现的变量,给定n个形如xi=xj或x ...
- bzoj4195 [Noi2015]程序自动分析
在实现程序自动分析的过程中,常常需要判定一些约束条件是否能被同时满足. 考虑一个约束满足问题的简化版本:假设x1,x2,x3,-代表程序中出现的变量,给定n个形如xi=xj或xi≠xj的变量相等/不等 ...
- 2019ICPC(徐州) - so easy(并查集+离散化)
题目链接:点击查看 题目大意:给出一个1~n的序列,然后给出m个操作,每个操作分为下列两种情况: 1 x:让数字x不可用 2 x:查询包括x在内的右侧的第一个可用数字 题目分析:因为n给到了1e9,而 ...
- LNSYOJ201小胖的奇偶【并查集+离散化】【做题报告】
这道题是一个带权并查集 题目描述 huyichen和xuzhenyi在玩一个游戏:他写一个由0和1组成的序列. huyichen选其中的一段(比如第3位到第5位),问他这段里面有奇数个1 还是偶数个1 ...
最新文章
- 关闭vmware喇叭报警声
- 谷歌如何利用人工智能重塑美国医疗行业?
- letswave7中文教程1:软件安装与脑电数据导入
- 自然语言处理期末复习(3)-(5)模型与句法分析
- mysql join 循环_关于mysql联表的内嵌循环操作nested loop join中on和where执行顺序问题...
- 企业靠一套数据平台实现“低成本运营战略”,降低成本600万
- css设置元素继承父元素宽度_详解CSS中的百分比的应用
- html5仿qq空间,JS实现的仿QQ空间图片弹出效果代码
- 手写数字识别 随机森林 代码
- html中地图的绘制toolbars,tkinter内嵌Matplotlib系列(二)之函数曲线绘制
- 随手小记 才知道[阁楼藏尸|未来闪影]
- Bailian2675 计算书费【求和】
- 使用R的金融统计:收益、随机行走和模拟
- 记忆术: 记数字 (110数字图像编码)
- 邮件服务器域名怎么查看,如何查看企业邮箱是哪里的域名
- 15天入门Python,每天都该干嘛,规划路线。
- Autodesk的免费的CAD软件试用版下载地址
- ARM APCS 学习笔记
- 【Homeassistant 与Passive Infrared Sensor被动红外传感器握手】
- 教育期刊《语文教学通讯》杂志简介及投稿须知
热门文章
- ansys fluent udf manual 下载_FLUENT流固耦合柱体结构涡激振动仿真案例解析
- 卡屏java_Java drawImage到屏幕上一卡一卡的
- 开发板实现645协议C语言,迅为-imx6ull开发板之C语言实现LED例程
- linux 用mutex定义一个linkedlist,一个高性能无锁非阻塞链表队列
- java ee监听器编程,java EE开发之Servlet第四课:监听器(Listener)
- 反射的基本知识(详解)
- 7-46 新浪微博热门话题 (30 分)(思路+详解+set + map)pta逐个点过的 来呀兄弟们
- 从当前元素继续寻找_云漫圈 | 寻找无序数组的第k大元素
- [Redis6]常用数据类型_List列表
- [Java基础]自定义注解 格式本质