[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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • http协议与tcp协议区别[通俗易懂]

    http协议与tcp协议区别[通俗易懂]http协议与tcp协议区别1、性质不同:http是一个简单的请求-响应协议。TCP是一种面向连接的、可靠的、基于字节流的传输层通信协议。2、连接不同:TCP连接到不同但互连的计算机通信网络的主计算机中的成对进程之间依靠TCP提供可靠的通信服务。http通常运行在TCP之上。指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。3、功能不同:当应用层向TCP层发送用于网间传输的、用8位字节表示的数据流,TCP则把数据流分割成适当长度的报文段,最大传输段大小(MSS)通常受该计算机连接的网

    2022年9月20日
    1
  • django成品网站源码_alpha omega

    django成品网站源码_alpha omegaVuePress 1.0.0-alpha.39 发布,轻量级静态网站生成器

    2022年4月21日
    130
  • redis五大类型用法

    redis五大类型用法

    2022年3月2日
    34
  • 落后的失利王朝死亡

    落后的失利王朝死亡

    2022年1月11日
    48
  • Navicat Premium 常用功能讲解

    Navicat Premium 常用功能讲解

    2021年11月9日
    59
  • 知识图谱构建技术综述-2.3知识推理-学习笔记「建议收藏」

    知识图谱构建技术综述-2.3知识推理-学习笔记「建议收藏」文章信息:文章末尾目录2.3节知识推理2.3.1基于规则的推理2.3.2基于分布式特征表示推理(1)基于翻译模型的知识推理(2)基于张量分解的知识推理(3)基于语义匹配模型的知识推理2.3.3基于深度学习的推理2.3节知识推理知识推理:根据已有的实体关系来推断出新的事实结论。知识推理研究分析分为3种:2.3.1基于规则的推理包含:谓词逻辑推理、本体推理和随机推理。【63】等提出一阶归纳学习就是谓词逻辑推理,可以自动提取高质量的事实并去噪

    2022年5月30日
    31

发表回复

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

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