NOI 2015 程序自动分析
来源:互联网 发布:echarts java 类库 编辑:程序博客网 时间:2024/05/02 05:42
//要先处理=再判断!= //离散化后并的是地址而非数值 //low_bound可查询特定数值所在的地址,和map差不多?//思考查找其他离散化的方法 #include<bits/stdc++.h>using namespace std;const int maxn = 100010;int n, t, tot;int f[2*maxn], e[2*maxn];struct node{ int x, y, flg;} a[maxn];inline void getInit(){ int nn = 2*n; for(int i = 0; i <= nn; i++) f[i] = i; tot = 0;}inline int find(int x){ if(x == f[x]) return x; return f[x] = find(f[x]);}inline void merge(int x, int y){ f[find(x)] = f[find(y)];}inline bool ask(int x, int y){ return find(x) == find(y);}int main(){ scanf("%d", &t); while(t--){ bool flag = 0; scanf("%d", &n); getInit(); for(int i = 1; i <= n; i++){ scanf("%d%d%d", &a[i].x, &a[i].y, &a[i].flg); e[++tot] = a[i].x; e[++tot] = a[i].y; //if(a[i].flg) merge(a[i].x, a[i].y); } sort(e+1, e+tot+1); for(int i = 1; i <= n; i++) if(a[i].flg) merge(lower_bound(e+1, e+tot+1, a[i].x)-e, lower_bound(e+1, e+tot+1, a[i].y)-e); for(int i = 1; i <= n; i++) if(!a[i].flg) if(ask(lower_bound(e+1, e+tot+1, a[i].x)-e, lower_bound(e+1, e+tot+1, a[i].y)-e)){ printf("NO\n"); flag = 1; break; } if(!flag) printf("YES\n"); } return 0;}
阅读全文
0 0
- NOI 2015 程序自动分析
- NOI 2015 程序自动分析
- noi 2015 程序自动分析
- NOI 2015 程序自动分析
- NOI 2015 程序自动分析
- 程序自动分析 [Bzoj 4195,Noi 2015]
- BZOJ 4195 -- NOI(P?) 2015 程序自动分析
- 【并查集】【NOI 2015】【bzoj 4195】程序自动分析
- NOI 2015 DAY1 T1 程序自动分析 并查集+离散化
- NOI2015 程序自动分析
- noi2015程序自动分析
- 【Bzoj4195】程序自动分析
- Noi2015 程序自动分析
- NOI 2015
- [BZOJ4195][Noi2015]程序自动分析
- [BZOJ4195] [Noi2015]程序自动分析
- 【NOI2015】【BZOJ4195】程序自动分析
- 程序自动分析(prog)
- POJ 3253 Fence Repair(STL之优先队列)
- ImageLorder的基本使用
- CodeForces
- F
- 重装系统后安装驱动的一点小技巧
- NOI 2015 程序自动分析
- LCD(二):LCD常用接口原理篇
- leetcode 480. Sliding Window Median
- flask网站加入验证码功能的几个问题
- 天天学Linux命令2--ls命令
- 通过广播进行网络状态监听
- NS2:802.11代码整个流程—packet传输的流程
- java提高篇(一)-----理解java的三大特性之封装
- 算法提高 ADV-72 一元一次方程