NOI2015 程序自动分析

Luogu

写个并查集来维护就行了。先合并所有相等的变量,如果有两个不相等的变量相等,那么就输出NO。注意得先合并所有相等的变量,再来判断。因为如果两个操作一起搞的话,可能会有两个变量在某次查询的时候不相等,但后面被合并了。还有就是\(i,j\)贼jb大,要离散化一下。

#include <bits/stdc++.h>const int max_n=1e5+5;int T,N,tot;
int father[max_n<<1],num[max_n<<1],A[max_n<<1],X[max_n],Y[max_n],Z[max_n];inline int read()
{register int x=0;register char ch=getchar();while(!isdigit(ch))ch=getchar();while(isdigit(ch)){x=(x<<1)+(x<<3)+ch-'0';ch=getchar();}return x;
}int find_father(int x)
{return (father[x]==x)?x:father[x]=find_father(father[x]);
}void merge(int x,int y)
{father[find_father(x)]=find_father(y);
}bool is_same(int x,int y)
{return find_father(x)==find_father(y);
} int main()
{int flag;T=read();while(T--){flag=tot=0;N=read();for(int i=1;i<=N;++i){X[i]=read(),Y[i]=read(),Z[i]=read();num[i]=X[i],num[i+N]=Y[i];}std::sort(&num[1],&num[(N<<1)+1]);for(int i=1;i<=N<<1;++i)if(num[i]^num[i-1]) A[++tot]=num[i];for(int i=1;i<=tot;++i) father[i]=i;for(int i=1;i<=N;++i)if(Z[i]) merge(std::lower_bound(&A[1],&A[1+tot],X[i])-A,std::lower_bound(&A[1],&A[1+tot],Y[i])-A);for(int i=1;i<=N;++i){if(!Z[i] && is_same(std::lower_bound(&A[1],&A[1+tot],X[i])-A,std::lower_bound(&A[1],&A[1+tot],Y[i])-A)){puts("NO");flag=1;break;}}if(!flag) puts("YES");}return 0;
}

转载于:https://www.cnblogs.com/zcdhj/p/8401388.html

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

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

相关文章

王道操作系统考研笔记——2.2.0 交互式系统调度算法

2.2.0 交互式系统调度算法 知识总览 2.2.0.1 时间片轮转 知识点说明英文名RR&#xff0c;Round-Robin算法思想公平地、轮流地为各个进程服务&#xff0c;让每个进程在一定时间间隔内都可以得到响应算法规则按照各进程到达就绪队列的顺序&#xff0c;轮流让各个进程执行一个时…

Linux(Ubuntu 16) 下Java开发环境的配置(二)------Tomcat的配置及常见问题

前言 相比于java JDK的配置,Tomcat的配置简单的多,简直就相当于直接运行了,本文以Tomcat8.0为例进行配置1.Tomcat的下载 地址:https://tomcat.apache.org/download-80.cgi下载上图标示文件即可.然后解压到一个方便的文件夹即可.2.Tomcat的启动 如果你的Tomcat的JDK配置好的话,理…

王道操作系统考研笔记——2.3.1 进程同步和进程互斥

文章目录2.3.1 进程同步和进程互斥2.3.1.1 什么是进程同步&#xff1f;2.3.1.2 什么是进程互斥2.3.1.3 小结2.3.1 进程同步和进程互斥 知识总览 2.3.1.1 什么是进程同步&#xff1f; 在前面&#xff0c;我们说过进程具有异步性的特征。 而我们想让进程执行的顺序是可预知的&…

王道操作系统考研笔记——2.3.2 进程互斥的软件实现方法

文章目录2.3.2 进程互斥的软件实现方法2.3.2.1 单标志法2.3.2.2 双标志先检查法2.3.2.3 双标志后检查法2.3.2.4 Peterson算法2.3.2.5 小结2.3.2 进程互斥的软件实现方法 知识总览 2.3.2.1 单标志法 单标志法的算法思想是&#xff1a;两个进程在访问完临界区后会把使用临界区的…

js处理上下文代码的2个阶段

1、进入执行上下文 当进入执行上下文(代码执行之前)时&#xff0c;VO里已经包含了下列属性(前面已经说了)&#xff1a; 函数的所有形参(如果我们是在函数执行上下文中) — 由名称和对应值组成的一个变量对象的属性被创建&#xff1b;没有传递对应参数的话&#xff0c;那么由名称…

deep learning入门学习

根据知乎的一些大牛的回答总结出的deep learning入门学习的一些material&#xff1a; BE NOTED THAT SOME VIDEOS ARE ON YOUTUBE! I BELIEVE THAT YOU KNOW HOW TO ACESS THEM. 1. Andrew Ng的机器学习前四章的内容(线性回归与逻辑回归) http://open.163.com/special/opencour…

QTP基础学习(二)启动与设置

1、启动QTP选择要求的Add-in 默认带有3个Add-in&#xff0c;之后可以安装其他的Add-in&#xff0c;如.net的Add-in 2、设置QTP的选项 点击Tools-Options&#xff0c;弹出如下框&#xff1a; 3、建立记录和运行设置 点击Automatic-Record and Run Settings&#xff0c;如下图&am…

王道操作系统考研笔记——2.3.3 进程互斥的硬件实现方法

文章目录2.3.3 进程互斥的硬件实现方法2.3.3.1 中断屏蔽方法2.3.3.2 TestAndSet指令2.3.3.3 Swap指令2.3.3.4 小结2.3.3 进程互斥的硬件实现方法 知识总览 2.3.3.1 中断屏蔽方法 利用开/关中断指令实现中断屏蔽方法&#xff0c;可以使得某进程开始访问临界区到结束期间不允许…

Python Web框架Tornado的异步处理代码演示样例

1. What is Tornado Tornado是一个轻量级但高性能的Python web框架&#xff0c;与还有一个流行的Python web框架Django相比。tornado不提供操作数据库的ORM接口及严格的MVC开发模式&#xff0c;但能够提供主要的web server功能。故它是轻量级的&#xff1b;它借助non-blocking …

Linux基础--MBR/GPT与parted

关于MBR和GPT这两种分区表&#xff0c;wiki上讲的很清楚。不过有些同学可能看不了&#xff0c;你需要先了解科学上网。这里我就只把它们的结构图贴上&#xff0c;简要说明了。https://zh.wikipedia.org/wiki/%E4%B8%BB%E5%BC%95%E5%AF%BC%E8%AE%B0%E5%BD%95https://zh.wikipedi…

MYSQL的空间查询(转帖)

SELECT x(location),y(location) FROM frddata.points; 本文将向各位介绍如何使用MySql5.x中的空间数据库&#xff0c;并展示一下它高效的性能&#xff08;前提是正确使用&#xff09;。 本文适合于对SQL和MYSQL熟悉的人员。 步骤1&#xff1a;创建支持空间查询的表 首先来说一…

数据库杂谈(五)——关系数据库语言

文章目录5 关系数据库语言5.1 MySQL简介5.1.1 MySQL的发展历史5.1.2 数据库的用户接口5.1.3 SQL及其概念辨析5.1.4 SQL查询语言的分类5.2 入手5.2.1 回顾——基本和虚表5.2.2 数据准备5.2.3 常用命令5.2.4 导入数据5.2.5 简单的查询5.2.6 条件查询5.2.6.1 条件查询格式5.6.2.1 …

ansible---基础

ansible特点&#xff1a;不需要安装客户端&#xff0c;通过sshd去通信基于模块工作&#xff0c;模块可以由任何语言开发不仅支持命令行使用模块&#xff0c;也支持编写yaml格式的playbook支持sudo安装&#xff1a;yum install -y epel-releaseyum install -y ansible 配置文件&…

Suse 12 安装VMware tool

cd /run/media/root /VMware Tools 查看光盘目录mdkir tool chmod -R 777 /tool 赋予文件夹权限cp -rf /run/media/root /VMware Tools /toolcd /tooltar -zxvf VMwareTools-9.10.0-2476743.tar.gz cd vmware-tools-distrib/ ./vmware-install.pl 执行安装 转载于:https:…

css斜角覆盖阴影

Demo下载 效果如图&#xff1a; css&#xff1a; #box { width: 280px; height: 150px; background: #ff6565; padding: 20px; position: relative; overflow: hidden; } #content { width: 280px; height: 15…

Django 模型与 Mysql 数据类型对应

Django 1.11.9 文件路径&#xff1a;site-packages\django\db\backends\mysql\base.py–class DatabaseWrapper _data_types { ‘AutoField’: ‘integer AUTO_INCREMENT’, ‘BigAutoField’: ‘bigint AUTO_INCREMENT’, ‘BinaryField’: ‘longblob’, ‘BooleanFiel…

王道操作系统考研笔记——2.3.4 信号量机制

文章目录2.3.4 信号量机制2.3.4.1 引入2.3.4.2 整型信号量2.3.4.3 记录型信号量2.3.4.4 小结2.3.4 信号量机制 知识总览 在1965年&#xff0c;荷兰学着Dijkstra提出了一种卓有成效的实现进程互斥、同步的方法——信号量机制。 2.3.4.1 引入 用户进程可以通过使用操作系统提供…

QT分析之WebKit

该文章整理自 网易博客 http://blog.163.com/net_worm/blog/static/12770241920101831312381/ 转载请注明出处 WebKit是QT4新整合的第三方构件。按照惯例动手分析之前&#xff0c;先了解大概 WebKit由三个模块组成&#xff1a;JavaScriptCore、WebCore 和 WebKit WebKit作为了整…

ViewPager循环

android.support.v4.view.ViewPager ViewPager的使用跟AbsListView&#xff0c;AbsSpinner类似&#xff0c;需要用一个adapter填充数据&#xff0c;同时实现了onPagerChangeListener接口。 ViewPager需要的adapter继承自android.support.v4.view.PageAdapter,getCount返回adapt…

angularjs学习笔记—工具方法

1.angular.bind(self, fn, args) 作用&#xff1a;返回一个新的函数&#xff0c;绑定这个函数的this指向self 参数&#xff1a;self&#xff1a;新函数的上下文对象 fn&#xff1a;需要绑定的函数 args&#xff1a;传递给函数的参数 返回值&#xff1a;this指向self的新函数 …