zoukankan      html  css  js  c++  java
  • Codevs 4600 [NOI2015]程序自动分析

    点的序号很大,存不过来,但点数较少,因此用离散化,然后再用并查集。

    用map进行离散化,过8个点,2个超时

    代码:

    #include<iostream>
    #include<cstring>
    #include<algorithm>
    #include<map> 
    #define Size 1000005*2
    using namespace std;
    
    map<int,int> dic;
    struct IN{
        int x,y,e;
    }data[Size];
    int f[Size*2];
    int en[Size][2]; 
    int cnt=0;
    int n; bool flag;
    int pa[Size];
    void init(){
        for(int i=1;i<Size;i++)pa[i]=i;
        memset(en,0,sizeof(en));
    }
    int find(int x){
        if(x!=pa[x])pa[x]=find(pa[x]);
        return pa[x];
    }
    bool query(int x,int y){
        return find(x)==find(y);
    }
    void un(int x,int y){
        if(query(x,y))return;
        pa[find(x)]=find(y);    
    }
    
    
    int main(){
        int T;cin>>T;
        while(T--){
            flag=true; cnt=0;
            init();
            
            cin>>n;
            for(int i=1;i<=n;i++){
                cin>>data[i].x>>data[i].y>>data[i].e;
                f[2*i-1]=data[i].x; f[2*i]=data[i].y;
            }
            sort(f+1,f+1+n*2);
            for(int i=1;i<=n*2;i++){
                if(f[i]!=f[i-1]){
                    cnt++;
                    dic[f[i]]=cnt;
                }
            }
            
            int e,x,y;
            int num=0;
            for(int i=1;i<=n;i++){
                x=dic[data[i].x]; y=dic[data[i].y]; e=data[i].e;
                if(e==1)un(x,y);
                else{
                    num++; en[num][0]=x; en[num][1]=y;
                }
            }
            for(int i=1;i<=num;i++){
                x=en[i][0]; y=en[i][1];
                if(query(x,y)){
                    flag=false;
                    break;
                }
            }
            if(flag)cout<<"YES"<<endl;
            else cout<<"NO"<<endl;
        }
    } 
  • 相关阅读:
    实现随机颜色
    为网站实现一个验证码
    vue.js帐号,密码,邮箱和移动手机号码正则验证
    从网址中截去主机名和参数
    vue.js判断网址参数是否有效
    创建windows service
    vue.js axios call api example
    vue.js mouse over change the image
    jQuery接收url的参数
    ms sql server排序
  • 原文地址:https://www.cnblogs.com/FuTaimeng/p/5606109.html
Copyright © 2011-2022 走看看