hdu 1558:Segment set
来源:互联网 发布:淘宝运营常用软件 编辑:程序博客网 时间:2024/06/06 00:41
简单的并查集的题目
最好自己写
看题解没意思
#include<stdio.h>#include<string.h>#include<algorithm>#include<map>#define maxn 1111using namespace std;float line[maxn][5];int l;int fa[maxn];int big[maxn];int seek(int x){ return fa[x]==x?x:fa[x]=seek(fa[x]);}void Merge(int u ,int v){ int fu = seek(u); int fv = seek(v); if(fu != fv) { fa[fv] = fu ; big[fu] += big[fv]; big[fv] = 0 ; }}float pos(float x1,float y1,float x2,float y2,float x,float y){ return y-(y2-y1)/(x2-x1)*(x-x1)-y1;}void cross(float x1,float y1,float x2,float y2){ int i; for(i=1;i<l;i++) if(pos(line[i][0],line[i][1],line[i][2],line[i][3],x1,y1)*pos(line[i][0],line[i][1],line[i][2],line[i][3],x2,y2)<=0) if(pos(x1,y1,x2,y2,line[i][0],line[i][1])*pos(x1,y1,x2,y2,line[i][2],line[i][3])<=0) { Merge(l,i); } // return -1;}void init(){ int i; for(i=0;i<maxn;i++) fa[i]=i;}int main(){ int t,n,i; char com; int num; scanf("%d",&t); while(t--) { scanf("%d",&n); l=1; for(i=0;i<maxn;i++) big[i]=1; init(); i=0; while(i<n) { scanf("%c",&com); if(com=='Q') { scanf("%d",&num); int nn=seek(num); printf("%d\n",big[nn]); //printf("--------------\n"); i++; } else if (com=='P') { scanf("%f%f%f%f",&line[l][0],&line[l][1],&line[l][2],&line[l][3]); cross(line[l][0],line[l][1],line[l][2],line[l][3]); l++; i++; } // printf("--------------\n"); } // system("pause"); if(t!=0)printf("\n"); } return 0;}
0 0
- HDU 1558 Segment Set
- hdu 1558 Segment set
- hdu 1558 Segment set
- hdu 1558 Segment set
- HDU 1558 Segment set
- HDU 1558 Segment set
- hdu 1558 Segment set
- HDU-1558-Segment set
- hdu 1558:Segment set
- HDU 1558 Segment set
- HDU 1558 Segment set
- HDU-1558-Segment set
- hdu 1558 Segment set 5.1.4
- hdu 1558 Segment set (并查集)
- HDU 1558 Segment set 并查集
- 并查集 HDU 1558 Segment set
- HDU Segment set
- HDU 1558 Segment set, 计算几何+并查集
- The constructor SimpleAdapter(new View.OnClickListener(){},...)is undefined的问题及解决
- HDOJ 1222 Wolf and Rabbit(数学解题技巧)
- hdu 1372 Knight Moves(经典BFS)
- 简易相册
- [HDU 2196] Computer 树形dp
- hdu 1558:Segment set
- makefile
- 三目运算符的简单介绍
- 最小生成树 prim算法和kruskal
- STP 根桥、根端口、指定端口是如何选举的
- MIT6.828 JOS系统 lab2
- 湖南多校对抗赛(A - A)
- SQLServer 常用命令
- 【C】使用指针对数组中的元素换位问题