bnuoj 49100超级线段树并查集
来源:互联网 发布:高级数据安全工程师 编辑:程序博客网 时间:2024/05/18 01:10
题目链接点这里
并查集的神奇应用,,,,
#include<cstdio>#include<cstring>#include<set>#include<stack>#include<stdlib.h>#include<time.h>#include<iostream>#include<math.h>#include<math.h>#include<algorithm>#include<queue>using namespace std;#define MX 1111111#define INF 0x3f3f3f3f#define mem(x,y) memset(x,y,sizeof(x))#define fuck(x) cout<<x<<endltypedef long long LL;typedef pair<int,int > PII;int n,m;int E[MX][3];inline int read(){ int ret=0,c,f=1; for(c=getchar(); !(isdigit(c)||c=='-'); c=getchar()); if(c=='-') f=-1,c=getchar(); for(; isdigit(c); c=getchar()) ret=ret*10+c-'0'; if(f<0) ret=-ret; return ret;}int bin[MX];int col[MX];int _find(int x){ int t=x; while(t!=bin[t]) { t=bin[t]; } while(x!=bin[x]) { x=bin[x]; bin[x]=t; } return t;}int main(){ int _; _=read(); while(_--) { mem(col,0); n=read(); m=read(); for(int i=1; i<=n+1; i++) bin[i]=i; for(int i=1; i<=m; i++) { int l,r,type; E[i][0]=read(); E[i][1]=read(); E[i][2]=read(); } for(int i=m; i>=1; i--) { for(int j=_find(E[i][0]); j<=E[i][1]; j=_find(j)) { col[j]=E[i][2]; bin[j]=j+1; } } for(int i=1; i<=n; i++)printf("%d\n",col[i]); } return 0;}
0 0
- bnuoj 49100超级线段树并查集
- bnuoj 17184 代数 (带权并查集 )
- bnuoj 17184 代数 && POJ 1733 (带权并查集 )
- BNUOJ 51275 道路修建 Large(并查集)
- BNUOJ 51275 道路修建(并查集)
- POJ 2985 线段树+并查集
- poj 2985 并查集 + 线段树
- pku1456贪心+并查集/线段树
- LA4730,Kingdom 线段树+并查集
- poj1456 并查集or线段树
- uva1455 - Kingdom 线段树+并查集
- 线段树+并查集uva1455Kingdom
- UVA1455 - Kingdom(并查集 + 线段树)
- POJ2985 (线段树+并查集)
- UVALive 4730 线段树+并查集
- BZOJ 3211 线段树+并查集
- Uva4730 Kingdom (并查集+线段树)
- CF811E(线段树+并查集)
- 坚持#第148天~请遵守每天作息规律养成良好习惯
- 鸟哥的linux私房菜学习笔记《三十二》RAID软件磁盘阵列
- 1094
- 线程基础总结
- 进程控制编程
- bnuoj 49100超级线段树并查集
- 【MyBatis学习05】传入参数parameterType
- 1095
- 移植Linux-3.0.8到s5pv210
- Java中的类的关系
- Android 关于arm64-v8a、armeabi-v7a、armeabi、x86下的so文件兼容问题
- 封装,面向对象设计编程思想
- I
- 兄弟选择器和相邻选择器按正序控制兄弟元素和相邻元素的样式