# BZOJ4195_程序自动分析

题意:


给定 n 个约束,每个约束形如:xi=xjxixj

询问是否存在对于 {x} 的一组赋值满足所有约束条件

解:


解法①【并查集】:

考虑用并查集把所有值相等的 xk 扔进同一个集合

枚举每个相等关系 xi=xj ,合并 xi 所在的集合和 xj 所在的集合

然后枚举每个不等关系 xixj ,若发现 xixj 已经同属一个集合则无解,反之则有解


解法②【dfs分连通块】:

考虑抽象每个 xk 为一个节点

枚举每个相等关系 xi=xj ,在节点 i 和节点 j 之间连无向边

一遍dfs划分连通块

再枚举每个不等关系 xixj ,若发现 xixj 已经同属一个连通块则无解,反之则有解


两种解法本质思想一致


__EOF__

本文作者熹圜
本文链接https://www.cnblogs.com/Xiwon/p/13379294.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   熹圜  阅读(76)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示