<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      bzoj 4195

      并查集水題

      離散化之后直接并查集合并,在不等時判斷兩者是否在同一個集合內即可

      注意排序

      貼代碼:

      #include <cstdio>
      #include <cmath>
      #include <cstring>
      #include <cstdlib>
      #include <iostream>
      #include <algorithm>
      #include <queue>
      #include <stack>
      #include <map>
      using namespace std;
      map <int,int> M1,M2;
      int tot=0;
      int T,n;
      struct Ques
      {
          int l,r,typ;
          friend bool operator < (Ques a,Ques b)
          {
              return a.typ>b.typ;
          }
      }q[100005];
      int f[200005];
      int siz[200005];
      int findf(int x)
      {
          return x==f[x]?x:f[x]=findf(f[x]);
      }
      void init()
      {
          M1.clear(),M2.clear(),tot=0;
          for(int i=1;i<=2*n;i++)f[i]=i,siz[i]=1;
      }
      inline int read()
      {
          int f=1,x=0;char ch=getchar();
          while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}
          while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();}
          return x*f;
      }
      int main()
      {
          T=read();
          while(T--)
          {
              n=read();init();
              for(int i=1;i<=n;i++)
              {
                  q[i].l=read(),q[i].r=read(),q[i].typ=read();
                  M1[q[i].l]=M1[q[i].r]=1;
              }
              sort(q+1,q+n+1);
              map <int,int>::iterator it;
              for(it=M1.begin();it!=M1.end();it++)M2[it->first]=++tot;
              for(int i=1;i<=n;i++)q[i].l=M2[q[i].l],q[i].r=M2[q[i].r];
              bool fl=0;
              for(int i=1;i<=n;i++)
              {
                  int f1=findf(q[i].l),f2=findf(q[i].r);
                  if(q[i].typ==1&&f1!=f2)
                  {
                      if(siz[f1]>siz[f2])f[f2]=f1,siz[f1]+=siz[f2];
                      else f[f1]=f2,siz[f2]+=siz[f1];
                  }
                  else if(q[i].typ==0&&f1==f2){fl=1;break;}
              }
              if(fl)printf("NO\n");
              else printf("YES\n");
          }
          return 0;
      }

       

      posted @ 2019-07-12 09:26  lleozhang  Views(273)  Comments(0)    收藏  舉報
      levels of contents
      主站蜘蛛池模板: 亚洲乱理伦片在线观看中字| 国产又色又爽又黄的视频在线 | 丰满高跟丝袜老熟女久久| 97欧美精品系列一区二区| 狠狠躁夜夜躁人人爽天天| 老色鬼永久精品网站| 久热这里只有精品在线观看| 国产精品久久久久精品日日| 国产欧美日韩精品丝袜高跟鞋| 麻豆国产va免费精品高清在线| 噜噜综合亚洲av中文无码| 性色欲情网站| 九九热久久只有精品2| 成人激情视频一区二区三区 | 污污网站18禁在线永久免费观看| 国产一区二区四区不卡| 国产男女猛烈无遮挡免费视频网站| 欧美日韩中文字幕视频不卡一二区| 综合偷自拍亚洲乱中文字幕| 中国极品少妇xxxxx| 久99久热免费视频播放| 国产中文字幕精品喷潮| 璧山县| 免费无码午夜理论电影| 一本一道av中文字幕无码| 青青草无码免费一二三区| 亚洲中文字幕第二十三页| 91精品国产综合蜜臀蜜臀| 一个人免费观看WWW在线视频| 国产最新AV在线播放不卡| 91偷自国产一区二区三区| 亚洲熟妇自偷自拍另欧美| 成全我在线观看免费第二季| 国产精品福利一区二区久久| 亚洲国产成人久久77| 国产中文字幕在线一区| 国产成人高清亚洲综合| 欧美国产激情18| 九九热在线观看精品视频| 亚洲欧洲精品日韩av| 渝北区|