[NOI2015] BZOJ4195 程序自动分析-离散化-并查集
来源:互联网 发布:淘宝发展史宣传片 编辑:程序博客网 时间:2024/05/17 09:20
传送门:右转进入题目
题目大意:给定n个式子形如xi=xj或者xi!=xj。问是否可能?
首先这个题数据范围大,先离散化一下。
然后发现输入顺序不影响答案,所以先考虑等号,就是并查集维护一下即可。
对于不等号,如果find出来是在同一个集合里就是NO并退出。
最后输出YES。
水题……QwQ
//NOI 2015//BZOJ 4195#include<iostream>#include<cstdio>#include<cstring>#include<vector>#include<algorithm>#define MAXN 2000010using namespace std;int fa[MAXN],qu[MAXN],qv[MAXN],qopt[MAXN];vector<int> v;inline int getid(int x){return lower_bound(v.begin(),v.end(),x)-v.begin()+1;}inline int findf(int x){int fx=x,y;while(fx!=fa[fx]) fx=fa[fx];while(x!=fx) y=fa[x],fa[x]=fx,x=y;return fx;}inline int merge_union(int x,int y){fa[x]=y;return 0;}int main(){int t;scanf("%d",&t);while(t--){int n;scanf("%d",&n);for(int i=1;i<=n;i++){scanf("%d%d%d",&qu[i],&qv[i],&qopt[i]);v.push_back(qu[i]);v.push_back(qv[i]);}sort(v.begin(),v.end());v.erase(unique(v.begin(),v.end()),v.end());for(int i=1;i<=n;i++)qu[i]=getid(qu[i]),qv[i]=getid(qv[i]);for(int i=1;i<=v.size();i++) fa[i]=i;for(int i=1;i<=n;i++)if(qopt[i]){int fu=findf(qu[i]),fv=findf(qv[i]);if(fu!=fv) merge_union(fu,fv);}bool f=false;for(int i=1;i<=n;i++)if(!qopt[i]){int fu=findf(qu[i]),fv=findf(qv[i]);if(fu==fv){printf("NO\n");f=true;break;}}if(f) continue;printf("YES\n");}return 0;}
0 0
- [BZOJ4195] [NOI2015] 程序自动分析 - 并查集 + 离散化
- [NOI2015] BZOJ4195 程序自动分析-离散化-并查集
- [bzoj4195][NOI2015]程序自动分析 离散化 并查集
- 【NOI2015】BZOJ4195程序自动分析(并查集+离散化)
- BZOJ4195 [Noi2015]程序自动分析(离散化+并查集)
- [BZOJ4195][NOI2015][并查集][离散化][水题]程序自动分析
- [BZOJ4195][NOI2015]程序自动分析(离散化+并查集)
- 【BZOJ4195】【NOI2015】程序自动分析(并查集)
- 【NOI2015】【程序自动分析】【并查集+离散化】
- [BZOJ4195][Noi2015]程序自动分析(离散化+ufs)
- 并查集+map——BZOJ4195/Luogu1955 [Noi2015]程序自动分析
- [BZOJ4195][Noi2015]程序自动分析
- [BZOJ4195] [Noi2015]程序自动分析
- 【NOI2015】【BZOJ4195】程序自动分析
- 【NOI2015】bzoj4195程序自动分析
- bzoj4195: [Noi2015]程序自动分析
- 【bzoj4195】[Noi2015]程序自动分析
- bzoj4195 [Noi2015]程序自动分析
- [人工智能]机器学习实践中数据和模型的选择
- api文档生成器apidoc的安装和使用
- 【智库2861】大数据制造失业or创造就业?
- poj2155二维线段树
- Github上十大C#开源项目排行榜
- [NOI2015] BZOJ4195 程序自动分析-离散化-并查集
- C/C++:二分法查找近似根
- 【智库2861】大数据就是占有数据?错,如何使用更重要!
- C919简介
- 创意视觉应用︱基于深度学习的CVaaS计算机视觉即服务案例(Computer Vision as a Service)
- 抽象类
- 三个博弈-巴什博奕、威佐夫博弈、尼姆博弈。acm博弈算法笔记HDU 2149,1850,1527
- 【错误日志/debug】二叉树remove函数指针delete后赋NULL
- logstash5.x output 顺序问题