codeforces 687D Dividing Kingdom II 并查集
来源:互联网 发布:同意网络直播合同范本 编辑:程序博客网 时间:2024/06/10 19:24
题意:n个点m条边的图,q次询问只保留
只是想吐槽一下,这题10^9乘并查集log竟然能过!竟然能过!!竟然能过!!!
枚举每个询问,从大到小加入所有
因为二分图两点间的任意路径长度奇偶性一定相同。
#include <bits/stdc++.h>using namespace std;#define N 1100int n,m,q,l,r;int fa[N],dis[N];struct edge{ int x,y,v,pos; friend bool operator < (const edge &r1,const edge &r2) {return r1.v<r2.v;};}a[N*N];int find(int x){ if(fa[x]==x)return x; int t=find(fa[x]); dis[x]+=dis[fa[x]]; return fa[x]=t;}int check(int x,int y){ if(find(x)==find(y)) return (dis[x]+dis[y])&1; int t=find(x); fa[t]=find(y); dis[t]=1-(dis[x]+dis[y])%2; return 1;}int main(){ //freopen("tt.in","r",stdin); scanf("%d%d%d",&n,&m,&q); for(int i=1;i<=m;i++) { scanf("%d%d%d",&a[i].x,&a[i].y,&a[i].v); a[i].pos=i; } sort(a+1,a+1+m); while(q--) { scanf("%d%d",&l,&r); int flag=0; for(int i=1;i<=n;i++)fa[i]=i; memset(dis,0,sizeof(dis)); for(int i=m;i;i--) if(a[i].pos>=l&&a[i].pos<=r) { if(!check(a[i].x,a[i].y)) { printf("%d\n",a[i].v); flag=1;break; } } if(!flag)puts("-1"); } return 0;}
0 0
- codeforces 687D Dividing Kingdom II 并查集
- Codeforces 687D Dividing Kingdom II (图论+并查集)
- Codeforces Round #360 (Div. 1) D Dividing Kingdom II(并查集+暴力)
- Codeforces Round #360 (Div. 1) D Dividing Kingdom II(并查集+暴力) ★ ★
- Codeforces Round #360 (Div. 1) D. Dividing Kingdom II 暴力,二分图,并查集
- 687D: Dividing Kingdom II
- 687D Dividing Kingdom II(二分图,并茶几)
- Cf Round #360 (Div. 1) 687D Dividing Kingdom II
- Codeforces 366D 贪心+并查集
- Codeforces 371D. Vessels【并查集】
- codeforces 366D 并查集
- codeforces 593D(并查集 + LCA)
- codeforces 691D 并查集
- [Codeforces 325 D. Reclamation]并查集
- Codeforces 766D 并查集
- codeforces 766D 并查集进阶
- Codeforces 776D 并查集
- CodeForces 25D(并查集)
- history.back()和history.go()的区别
- c++ map的详细用法
- excel
- 《Java》----详解用apache的commons-fileupload组件实现文件上传
- Android的IPC机制(五)—— ContentProvider的使用
- codeforces 687D Dividing Kingdom II 并查集
- css强制文本在一行,超出省略
- Codeforces 679C Bear and Square Grid(枚举 标记)
- RGB简述以及Android中设置透明、半透明等效果
- java中如何读取properties文件
- 架构
- ios编译报错之提示arm64
- android群英传笔记——重写View来实现全新的控件(弧线展示图)
- 建议138:事件和委托变量使用动词或形容词短语命名