【BZOJ4195】【NOI2015】程序自动分析(并查集)
来源:互联网 发布:mac word 迅雷下载 编辑:程序博客网 时间:2024/04/30 04:39
题面
Description
在实现程序自动分析的过程中,常常需要判定一些约束条件是否能被同时满足。
考虑一个约束满足问题的简化版本:假设x1,x2,x3,…xn代表程序中出现的变量,给定n个形如xi=xj或者xi!=xj的变量相等/不等的约束条件,请判定是否可以分别为每一个变量赋予恰当的值,使得上述条件同时被满足。
Input
第一行包含一个正整数t,表示需要判定的问题个数。注意这些问题之间相互独立。
对于每个问题,包含若干行:
第一行一个正整数n,表示约束条件个数。
接下来n行,每行三个正整数i,j,e,描述一个相等/不等的约束条件。若e=1,则约束条件为xi=xj,若e=0,则约束条件为xi!=xj
Output
输出包括T行。
输出的第k行输出一个字符串”YES”或者”NO”(不包含引号,字母全部大写).
Sample Input
输入样例1:
2
2
1 2 1
1 2 0
2
1 2 1
2 1 1
输入样例2:
2
3
1 2 1
2 3 1
3 1 1
4
1 2 1
2 3 1
3 4 1
1 4 0
Sample Output
输出样例1:
NO
YES
输出样例2:
YES
NO
题解
并查集傻逼题
至于编号怎么搞
离散一下就行了
离散怎么搞?
开个
#include<iostream>#include<cstdio>#include<cstdlib>#include<cstring>#include<cmath>#include<algorithm>#include<set>#include<map>#include<vector>#include<queue>using namespace std;#define MAX 110000inline int read(){ int x=0,t=1;char ch=getchar(); while((ch<'0'||ch>'9')&&ch!='-')ch=getchar(); if(ch=='-')t=-1,ch=getchar(); while(ch<='9'&&ch>='0')x=x*10+ch-48,ch=getchar(); return x*t;}int f[MAX<<4],n,tot;map<int,int> M;int Ret(int x){ if(M.find(x)!=M.end())return M[x]; M[x]=++tot; return tot;}int getf(int x){ return x==f[x]?x:f[x]=getf(f[x]);}struct Ask{ int u,v,e;}a[MAX];int main(){ int T=read(); while(T--) { bool fl=true; n=read();M.clear();tot=0; for(int i=1;i<=n*2;++i)f[i]=i; for(int i=1;i<=n;++i) { int u,v; u=a[i].u=read(); v=a[i].v=read(); a[i].e=read(); u=Ret(u);v=Ret(v); if(a[i].e)//xi=xj { u=getf(u);v=getf(v); f[u]=v; } } for(int i=1;i<=n;++i) { if(!a[i].e) { int u=Ret(a[i].u),v=Ret(a[i].v); if(getf(u)==getf(v)) { fl=false; break; } } } fl?puts("YES"):puts("NO"); } return 0;}
阅读全文
1 0
- 【BZOJ4195】【NOI2015】程序自动分析(并查集)
- [BZOJ4195] [NOI2015] 程序自动分析 - 并查集 + 离散化
- [NOI2015] BZOJ4195 程序自动分析-离散化-并查集
- [bzoj4195][NOI2015]程序自动分析 离散化 并查集
- 【NOI2015】BZOJ4195程序自动分析(并查集+离散化)
- BZOJ4195 [Noi2015]程序自动分析(离散化+并查集)
- [BZOJ4195][NOI2015]程序自动分析(离散化+并查集)
- [BZOJ4195][NOI2015][并查集][离散化][水题]程序自动分析
- 并查集+map——BZOJ4195/Luogu1955 [Noi2015]程序自动分析
- [BZOJ4195][Noi2015]程序自动分析
- [BZOJ4195] [Noi2015]程序自动分析
- 【NOI2015】【BZOJ4195】程序自动分析
- 【NOI2015】bzoj4195程序自动分析
- bzoj4195: [Noi2015]程序自动分析
- 【bzoj4195】[Noi2015]程序自动分析
- bzoj4195 [Noi2015]程序自动分析
- [BZOJ4195][Noi2015]程序自动分析(离散化+ufs)
- NOI2015 day1 prog 程序自动分析(并查集)
- Keepalived+Lvs+Ftp
- Linux下搭建SVN服务器
- NPM 方法安装vue.js,初始化项目并启动
- NTP设置时间同步
- 搭建nginx反向代理用做内网域名转发
- 【BZOJ4195】【NOI2015】程序自动分析(并查集)
- 炫酷车网双十一大动作,宇宙汽车综合服务第一网红横空出世
- 这个双十一,你想要的我给你
- 1005. 继续(3n+1)猜想 (25)
- vue unit及e2e问题记录
- 初探Raspbian
- 能免费能发新闻软文外链的网站部分汇总
- javaScript数组中的栈和队列
- JAVA容器类与布局类