[bzoj4195][Noi2015]程序自动分析

[bzoj4195][Noi2015]程序自动分析

题目大意:有$n(n\leqslant10^6)$个变量,有若干限制,形如$x_l$与$x_r$必须相等或不相等,问是否有解

题解:并查集,把相同的塞在一个集合里,最后判一下不相等的是否在一个集合内,是则无解

卡点:当成了元素非$0$即$1$

 

C++ Code:

#include <algorithm>
#include <cstdio>
#define maxn 1000010

int Tim, n, tot;
int v[maxn << 1], f[maxn], l[maxn], r[maxn], e[maxn];

int find(int x) { return x == f[x] ? x : (f[x] = find(f[x])); }
inline void merge(int a, int b) { f[find(a)] = find(b); }
int main() {
	scanf("%d", &Tim);
	while (Tim --> 0) {
		scanf("%d", &n); tot = 0;
		for (int i = 0; i < n; ++i) {
			scanf("%d%d%d", l + i, r + i, e + i);
			v[tot++] = l[i], v[tot++] = r[i];
		}
		tot = (std::sort(v, v + tot), std::unique(v, v + tot) - v);
		for (int i = 0; i < tot; ++i) f[i] = i;
		for (int i = 0; i < n; ++i) {
			l[i] = std::lower_bound(v, v + tot, l[i]) - v;
			r[i] = std::lower_bound(v, v + tot, r[i]) - v;
			if (e[i]) merge(l[i], r[i]);
		}

		bool check = true;
		for (int i = 0; i < n; ++i) if (!e[i]) check &= find(l[i]) != find(r[i]);
		puts(check ? "YES" : "NO");
	}
	return 0;
}

  

转载于:https://www.cnblogs.com/Memory-of-winter/p/10363225.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/101131.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 安装虚拟机蓝屏解决方法_vmware10虚拟机安装教程

    安装虚拟机蓝屏解决方法_vmware10虚拟机安装教程安装虚拟机VMwareWorkstation下载安装虚拟机16pro官网下载https://www.vmware.com/cn/products/workstation-pro/workstation-pro-evaluation.html选择你需要的版本获取虚拟机密钥下面三个选一个就好ZF3R0-FHED2-M80TY-8QYGC-NPKYFYF390-0HF8P-M81RQ-2DXQE-M2UT6ZF71R-DMX85-08DQY-8YMNC-PPHV8linu下载地址下载

    2022年9月14日
    0
  • LVS基本配置

    LVS基本配置LVS说明【Linux操作系统核心空间中、一般采用DR构建集群】小结:{Ipvsadm:管理集群服务的命令行工具、Ipvs:内核模块/代码;三种负载均衡模式:【NAT:修改IP、双网卡,RIP指向DIP内网网关、任意操作系统】、【DR直接路由:一个网卡、配置别名、DIP和RIP在同一网关上、修改MAC地址】、【TUP隧道:封装IP报文,异地服务连接】} LVS主要组成部分为:  负

    2022年7月23日
    5
  • 蓝桥杯算法比赛题目_蓝桥杯一般大几参加

    蓝桥杯算法比赛题目_蓝桥杯一般大几参加欢迎回到:遇见蓝桥遇见你,不负代码不负卿!前言:提到深度优先搜索(DFS),我们很容易就会想到广度优先搜索(BFS),它们两合在一起成为一个搜索专题,今天笔者先把DFS讲清楚,BFS的内容留在下一章详细讲解。OK,废话不多说,走着…先送你一朵小红花…一、引入:深度优先搜索(DFS)这块内容很重要哦,为了方便大家理解,先举一个(来自胡凡、曾磊老师编写的《算法笔记》一书)的栗子。举个栗子:设想我们现在以第一视角身处一个巨大的迷宫当中,没有上帝视角,没有通..

    2022年10月30日
    0
  • p标签样式_p标签如何设置字体颜色

    p标签样式_p标签如何设置字体颜色style="line-height:1.6em;text-align:justify;text-indent:2em;"

    2025年5月31日
    0
  • 弗曼技巧笔记

    弗曼技巧笔记弗曼技巧学习过程:选择一个概念 向其他人讲解这个概念 对讲解中出现的卡壳发现不懂的问题,回头去进一步学习学习过程中使用流程图,便于理解与记忆。弗曼技巧注重于正负反馈,有了正负反馈才能够对知识进行更好的理解。不同方式下学习内容留存率:弗曼技巧使用了最有效的方式—教授给他人。讲解的方式:可以依靠简化或类比的方式进行讲解,直到对方理解。…

    2022年6月14日
    31
  • 背包问题九讲笔记_完全背包[通俗易懂]

    背包问题九讲笔记_完全背包[通俗易懂]摘自TianyiCui童鞋的《背包问题九讲》,稍作修改,方便理解。本文包含的内容:———————————————完全背包问题描述已知:有一个容量为V的背包和N件物品,第i件物品的重量是weight[i],收益是cost[i]。条件:每种物品都有无限件,能放多少就放多少。问题:在不超

    2022年7月13日
    12

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号