好久沒有話多了,是覺得有點浪費時間,今天考試和一中用的一樣的題,結果反而考得不好,不過Jackpei一句知恥而後勇點醒夢中人偷偷@Jackpei

就是這樣吧

還有我極度懷疑我的鍵帽打油了......我買了假的PBT還是我的手實在是太油了......


強制在線,因為不等關係沒有傳遞性,於是用set維護不等關係,并查集維護相等關係,

合併時把set也合併掉,具體就是直接複製合併,複雜度可以接受,雖然並不會算

於是大力瞎搞,我調了半天錯在了合併set搞錯了,it本來就是s[xx]的迭代器,怎麼能和自己互相插入呢......

#include<bits/stdc++.h>
using namespace std;
const int maxn=;//開兩倍
int n,cnt=;
int fa[maxn];
set<int>s[maxn];
map<int,int>m;
int find(int x)
{
while(x!=fa[x])x=fa[x]=fa[fa[x]];
return x;
}
int main()
{
scanf("%d",&n);
for(int i=;i<=n*;i++)fa[i]=i;
for(int i=,x,y,p;i<=n;i++){
scanf("%d%d%d",&x,&y,&p);
if(m[x])x=m[x];
else x=m[x]=++cnt;
if(m[y])y=m[y];
else y=m[y]=++cnt;
int xx=find(x),yy=find(y);
if(p==){
if(s[xx].count(yy))puts("NO");
else if(xx!=yy){
puts("YES");
if(s[xx].size()>s[yy].size())swap(xx,yy);
fa[xx]=yy;
for(set<int>::iterator it=s[xx].begin();it!=s[xx].end();it++)
s[*it].insert(yy),s[yy].insert(*it);
}
else puts("YES");
}
else{
if(xx==yy)puts("NO");
else{
s[xx].insert(yy);s[yy].insert(xx);
puts("YES");
}
}
}
}

最新文章

  1. 严重: Null component localEngine:type=JspMonitor,name=jsp,WebModule=//localhost/SpringMVC01,J2EEApplication=none,J2EEServer=none
  2. Atitit &#160;自动化gui 与 发帖机 技术
  3. OAF_开发系列21_实现OAF事物控制TransactionUnitHelper(案例)
  4. 【分享】学长的安利来了~~O(∩_∩)O
  5. Asp.Net保存session的三种方法
  6. [RMQ] [线段树] POJ 3368 Frequent Values
  7. C++ STL 算法精选之查找篇
  8. bzoj1115: [POI2009]石子游戏Kam
  9. 2016届百度实习生前端笔试题上海卷a
  10. 复习day12-23
  11. c语言:union,大小端
  12. HDU 1176 免费馅饼(DP)
  13. JavaScript的作用;JS常见的三种对话框;==和===的区别;函数内部参数数组arguments在函数内部打印实参;JS的误区:没有块级作用域
  14. Android打包遇到的那些坑
  15. linux批量压缩当前目录中文件后,删除原文件
  16. 关于linux - Centos 7 系统下使用PXE网络的方式(pxe+dhcpd+tftp+httpd)安装操作系统
  17. linux 软件安装篇
  18. Vue之组件
  19. [原]IOS 设备基本信息
  20. linux交叉编译gcc4.8.3

热门文章

  1. emWin 移植 - 基于红牛开发板
  2. LinuxMail发送邮件
  3. codeforces 715c
  4. user版本如何永久性开启adb 的root权限【转】
  5. Nginx中的惊群现象解决方法
  6. 纯属娱乐,对入门Android有一定的帮助
  7. 【转载】Android进程保活招式大全
  8. hdu-4990 Reading comprehension(快速幂+乘法逆元)
  9. 如何配置xmanager
  10. codevs 4768跳石头