zoukankan      html  css  js  c++  java
  • BZOJ 4195【程序自动分析】 (并查集)

    题目 程序自动分析

    刚学并查集做的第一题,数的范围比较大,离散一下

    #include <bits/stdc++.h>
    #include <unordered_map>
    using namespace std;
    typedef pair<int, int> P;
    const int N = 2e5 + 5;
    vector<P> v1, v2;
    unordered_map<int, int> mp;
    int fa[N], n, t, tot;
    int get_map(int x)
    {
    	if (mp.count(x)) return mp[x];
    	return mp[x] = tot++;
    }
    int get(int x)
    {
    	if (fa[x] == x) return x;
    	return fa[x] = get(fa[x]);
    }
    void merge(int x, int y)
    {
    	fa[get(x)] = get(y);
    }
    void init()
    {
    	for (int i = 0; i<tot; i++)
    		fa[i] = i;
    }
    
    int main()
    {
    	cin>>t;
    	while (t--)
    	{
    		cin>>n;
    		tot = 0;
    		mp.clear();
    		v1.clear(), v2.clear();
    		for (int i = 1; i <= n; i++)
    		{
    			int x, y, e;
    			cin>>x>>y>>e;
    			x = get_map(x), y = get_map(y);
    			if (e) v1.push_back(P(x, y));
    			else v2.push_back(P(x, y));
    		}
    		init();
    		for (auto x : v1)
    		{
    			merge(x.first, x.second);
    		}
    		bool flag = true;
    		for (auto x : v2)
    		{
    			if (get(x.first) == get(x.second))
    			{
    				flag = false;
    				break;
    			}
    		}
    		puts(flag ? "YES" : "NO");
    	}
    	return 0;
    }
    
  • 相关阅读:
    浅谈模块化开发
    用gulp搭建并发布自己的cli脚手架
    取值运算符新用法
    vue双向绑定之简易版
    获取对象属性之括号方式
    前端格式化工具之Prettier
    git操作之摘樱桃
    Sort
    MongoDB
    项目使用本地的包
  • 原文地址:https://www.cnblogs.com/xiaoguapi/p/10415705.html
Copyright © 2011-2022 走看看