先离散一下,然后并查集就好了。

(一开始作大死,没全离散,WA一片)

 #include<bits/stdc++.h>
#define INF 0x7fffffff
#define LL long long
#define N 1000005
using namespace std;
inline int ra()
{
int x=,f=; char ch=getchar();
while (ch<'' || ch>'') {if (ch=='-') f=-; ch=getchar();}
while (ch>='' && ch<='') {x=x*+ch-''; ch=getchar();}
return x*f;
}
int fa[N],b[N],n,m,cnt,tot,sum;
bool flag;
struct node{
int x,y;
}ask[N],a[N];
int find(int x)
{
return fa[x]==x?x:fa[x]=find(fa[x]);
}
int main()
{
int T=ra();
while (T--)
{
map<int ,int > mp; sum=;
n=ra(); cnt=; tot=; flag=;
for (int i=; i<=n; i++)
{
int x=ra(),y=ra(),z=ra();
if (z==)
{
b[++sum]=x; b[++sum]=y;
ask[++cnt].x=x,ask[cnt].y=y;
}
else {
a[++tot].x=x; a[tot].y=y;
b[++sum]=x; b[++sum]=y;
}
}
sort(b+,b+sum+);
int len=unique(b+,b+sum+)-b;
unique(b+,b+sum+);
for (int i=; i<len; i++)
mp[b[i]]=i;
for (int i=; i<=sum; i++) fa[i]=i;
for (int i=; i<=tot; i++)
{
int q=find(mp[a[i].x]),p=find(mp[a[i].y]);
if (q!=p)
fa[p]=q;
}
for (int i=; i<=cnt; i++)
{
int q=find(mp[ask[i].x]),p=find(mp[ask[i].y]);
if (p==q)
{
cout<<"NO"<<endl;
flag=;
break;
}
}
if (!flag) cout<<"YES"<<endl;
}
return ;
}

bzoj 4195程序自动分析的更多相关文章

  1. BZOJ 4195 程序自动分析

    4195: [Noi2015]程序自动分析 Description 在实现程序自动分析的过程中,常常需要判定一些约束条件是否能被同时满足. 考虑一个约束满足问题的简化版本:假设x1,x2,x3,-代表 ...

  2. BZOJ 4195: [Noi2015]程序自动分析 并查集+离散化

    LUOGU 1955BZOJ 4195 题目描述 在实现程序自动分析的过程中,常常需要判定一些约束条件是否能被同时满足. 考虑一个约束满足问题的简化版本:假设x1,x2,x3...代表程序中出现的变量 ...

  3. bzoj 4195: [Noi2015]程序自动分析

    4195: [Noi2015]程序自动分析 Description 在实现程序自动分析的过程中,常常需要判定一些约束条件是否能被同时满足. 考虑一个约束满足问题的简化版本:假设x1,x2,x3,…代表 ...

  4. BZOJ——4195: [Noi2015]程序自动分析

    http://www.lydsy.com/JudgeOnline/problem.php?id=4195 Time Limit: 10 Sec  Memory Limit: 512 MBSubmit: ...

  5. 【刷题】BZOJ 4195 [Noi2015]程序自动分析

    Description 在实现程序自动分析的过程中,常常需要判定一些约束条件是否能被同时满足. 考虑一个约束满足问题的简化版本:假设x1,x2,x3,-代表程序中出现的变量,给定n个形如xi=xj或x ...

  6. BZOJ 4195: [Noi2015]程序自动分析 并查集 + 离散化 + 水题

    TM 读错题了...... 我还以为是要动态询问呢,结果是统一处理完了再询问...... 幼儿园题,不解释. Code: #include<bits/stdc++.h> #define m ...

  7. BZOJ-4195 NOI2015Day1T1 程序自动分析 并查集+离散化

    总的来说,这道题水的有点莫名奇妙,不过还好一次轻松A 4195: [Noi2015]程序自动分析 Time Limit: 10 Sec Memory Limit: 512 MB Submit: 836 ...

  8. BZOJ4195 程序自动分析

    Description 在实现程序自动分析的过程中,常常需要判定一些约束条件是否能被同时满足. 考虑一个约束满足问题的简化版本:假设x1,x2,x3,…代表程序中出现的变量,给定n个形如xi=xj或x ...

  9. BZOJ4195 [Noi2015]程序自动分析(离散化+并查集)

    4195: [Noi2015]程序自动分析 Time Limit: 10 Sec  Memory Limit: 512 MB Submit: 689  Solved: 296 [Submit][Sta ...

随机推荐

  1. Hibernate一对多(多对一)外键设置汇总

    我打算在角色表(role)中添加一个帐号表(account)的外键(accountId),步骤如下: 1.首先在角色表(role)中添加列. 添加语句:alter table role add(acc ...

  2. java中二进制反码补码的理解

    7句真言 1,二进制最高位是符号位 0正数 1负数 2,正数的原码,反码,补码都一样 3负数的原码反码 补码 (符号位不变,其他的位数取反 0->1 1->0) 4 0的反码补码都是0 5 ...

  3. MongoDB分片技术原理和高可用集群配置方案

    一.Sharding分片技术 1.分片概述 当数据量比较大的时候,我们需要把数分片运行在不同的机器中,以降低CPU.内存和Io的压力,Sharding就是数据库分片技术. MongoDB分片技术类似M ...

  4. 图片转换到指定大小PDF

    1.首先转换为eps jpeg2ps compile to exec file ./jpeg2ps  -p a4  a.jpg -o x.eps2.从eps转换到pdf ps2pdf -dDownsa ...

  5. python2学习------基础语法2(函数)

    1.函数 # 无参数函数 def loopTest2(): a=1; while a<40: print a; a=a+1; if a==35: continue; else: print 'o ...

  6. 用 Weave Scope 监控集群【转】

    创建 Kubernetes 集群并部署容器化应用只是第一步.一旦集群运行起来,我们需要确保一起正常,所有必要组件就位并各司其职,有足够的资源满足应用的需求.Kubernetes 是一个复杂系统,运维团 ...

  7. 图片索引 lire

    1:定义  LIRE( Lucene Image Retrieval)相似图像索引和搜索机制 2:资料来源     LIRE官网:http://www.semanticmetadata.net/lir ...

  8. 【Winform】ProgressBar

    var progressBar1 = new System.Windows.Forms.ProgressBar(); ; progressBar1.Maximum = ; progressBar1.V ...

  9. C++编程学习(十二) STL

    一.简介 标准模板库STL,是一组模板类和函数.提供了: 1.容器.用于存储信息. 2.迭代器.用于访问容器中的信息. 3.算法.操作容器内容. 1.容器 STL有两种类型的容器类: (1)顺序容器 ...

  10. html5,css3炫酷实例-元素

    自动完成输入框下拉列表 使用的插件:jquery-ui 使用数据源实现文本框的自动完成功能 <link href="https://cdn.bootcss.com/jqueryui/1 ...