• NOI2015 程序自动分析 prog


    何等水题

    某神犇仿关押罪犯的写法 却写挂了  然而实际上并不需要补集之类的

     1 #include<iostream>
     2 #include<cstring>
     3 #include<cstdlib>
     4 #include<cstdio>
     5 #include<algorithm>
     6 
     7 using namespace std; 
     8 
     9 const int Maxn=100010;
    10 int n;
    11 struct Data{
    12     int x,y;
    13     Data(int x=0,int y=0):x(x),y(y) {}
    14 }q[Maxn][2];
    15 int tot[2];
    16 int seq[Maxn*2];
    17 int hash(int x) {
    18     return lower_bound(seq+1,seq+n*2+1,x) - seq;
    19 }
    20 int fa[Maxn*2];
    21 int find(int x) {
    22     return fa[x]==x?x:fa[x]=find(fa[x]);
    23 }
    24 bool merge(int x,int y) {
    25     x=find(x);
    26     y=find(y);
    27     if(x==y) return 0;
    28     return fa[x]=y,1;
    29 }
    30 
    31 void init() {
    32     tot[0]=tot[1]=0;
    33     scanf("%d",&n);
    34     for(int i=1;i<=n*2;i++) fa[i]=i;
    35     int x,y,e;
    36     for(int i=1;i<=n;i++) {
    37         scanf("%d%d%d",&x,&y,&e);
    38         seq[i*2-1]=x;
    39         seq[i*2]=y;
    40         q[++tot[e]][e] = Data(x,y);
    41     }
    42     sort(seq+1,seq+n*2+1);
    43 }
    44 
    45 bool check() {
    46     for(int i=1;i<=tot[1];i++) {
    47         merge(hash(q[i][1].x),hash(q[i][1].y));
    48     }
    49     for(int i=1;i<=tot[0];i++) {
    50         int x=hash(q[i][0].x),y=hash(q[i][0].y);
    51         if(find(x)==find(y)) return 0;
    52     }
    53     return 1;
    54 }
    55 
    56 int main() {
    57     freopen("prog.in","r",stdin);
    58     freopen("prog.out","w",stdout);
    59 
    60     int T;
    61     for(scanf("%d",&T);T--;) {
    62         init();
    63         if(check())puts("YES");
    64         else puts("NO");
    65     }
    66     
    67     return 0;
    68 }
  • 相关阅读:
    Fetch的使用
    if判断中的true和false
    分布式、微服务和集群的初步了解
    关于视频的知识点
    ajax请求
    jq的遍历关系元素方法集合
    docker安装Mysql
    设计模式系列之七大原则之——开闭原则
    设计模式系列之七大原则之——里式替换原则
    设计模式系列之七大原则之——依赖倒转原则
  • 原文地址:https://www.cnblogs.com/showson/p/4656201.html
Copyright © 2020-2023  润新知