2018.08.02 hdu1558 Segment set(并查集+计算几何)

传送门
这个直接用并查集维护。
每加入一条线段就将它与其他能相交的集合合并,维护一个sizesize域表示每个集合的大小。
代码:

#include<bits/stdc++.h>
#define eps 1e-15
using namespace std;
int t,fa[1005],n,siz[1005],cnt;
struct pot{double x,y;};
struct line{pot a,b;}l[1005];
inline int find(int x){return x==fa[x]?fa[x]:fa[x]=find(fa[x]);}
inline pot operator-(pot a,pot b){return (pot){a.x-b.x,a.y-b.y};}
inline double cross(pot a,pot b){return a.x*b.y-a.y*b.x;}
inline bool check(line a,line b){return (cross(a.a-b.a,a.b-b.a)*cross(a.a-b.b,a.b-b.b)<=eps)&&(cross(b.a-a.a,b.b-a.a)*cross(b.a-a.b,b.b-a.b)<=eps);}
int main(){scanf("%d",&t);while(t--){scanf("%d",&n),cnt=0;while(n--){char op[3];scanf("%s",op);if(op[0]=='P'){++cnt,fa[cnt]=cnt,siz[cnt]=1;scanf("%lf%lf%lf%lf",&l[cnt].a.x,&l[cnt].a.y,&l[cnt].b.x,&l[cnt].b.y);for(int i=1;i<cnt;++i)if(check(l[i],l[cnt])){int fx=find(i);if(fx==cnt)continue;fa[fx]=cnt,siz[cnt]+=siz[fx];}}else{int k,fx;scanf("%d",&k),printf("%d\n",siz[find(k)]);}}if(t)puts("");}return 0;
}

转载于:https://www.cnblogs.com/ldxcaicai/p/9738401.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/266412.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

全国计算机等级考试题库二级C操作题100套(第45套)

第45套&#xff1a; 函数fun的功能是&#xff1a;把形参a所指数组中的偶数按原顺序依次存放到a[0]、 a[1]、a[2]、……中&#xff0c;把奇数从数组中删除&#xff0c;偶数个数通过函数值返回。例如&#xff1a; 若a所指数组中的数据最初排列为&#xff1a;9、1、4、2、3、6、5…

java singleton inner class_关于java:Singleton设计模式实现

我看到了不同种类的singleton类实现。然而&#xff0c;这个特定的实现&#xff1a;https://sourcemaking.com/design_patterns/singleton/java/1不在私有构造函数中创建对象。有人能解释一下&#xff0c;这两种实现之间的优缺点是什么吗&#xff1f;给出的描述是最小的&#xf…

python中import os_python import osgeo.gdal出错

用anaconda安装的python和各种包&#xff0c;linux和windows下都有&#xff0c;其中前者是2.7版本&#xff0c;而后者是3.x&#xff0c;用conda install gdal安装gdal包之后&#xff0c;当运行from osgeo import gdal​时出现了各种问题。 windows下的问题​ ​ImportError Tra…

全国计算机等级考试题库二级C操作题100套(第46套)

第46套&#xff1a; 给定程序中&#xff0c;函数fun的功能是&#xff1a;利用指针数组对形参ss所指字符串数组中的字符串按由长到短的顺序排序&#xff0c;并输出排序结果。ss所指字符串数组中共有N个字符串&#xff0c;且串长小于M。 请在程序的下划线处填入正确的内容并把下…

java删除一级域名下cookie_java操作cookie示例(删除cookie)

1.设置Cookie代码如下:Cookie cookie new Cookie("key", "value");cookie.setMaxAge(60);设置60秒生存期&#xff0c;如果设置为负值的话&#xff0c;则为浏览器进程Cookie(内存中保存)&#xff0c;关闭浏览器就失效。代码如下:cookie.setPath("/tes…

[工具库]JOJSONBuilder工具类——一键把多个bean对象数据转换为JSON格式数据

本人大四即将毕业的准程序员&#xff08;JavaSE、JavaEE、android等&#xff09;一枚&#xff0c;小项目也做过一点&#xff0c;于是乎一时兴起就写了一些工具。 我会在本博客中陆续发布一些平时可能会用到的工具。 代码质量可能不是很好&#xff0c;大家多担待&#xff01; 代…

mysql long类型_怒肝两个月MySQL源码,我总结出这篇2W字的MySQL协议详解(超硬核干货)!!...

点击上方蓝色“冰河技术”&#xff0c;关注并选择“设为星标”持之以恒&#xff0c;贵在坚持&#xff0c;每天进步一点点&#xff01;作者个人研发的在高并发场景下&#xff0c;提供的简单、稳定、可扩展的延迟消息队列框架&#xff0c;具有精准的定时任务和延迟队列处理功能。…

状压dp之二之三 炮兵阵地/玉米田 By cellur925

一、简单的状压dp 玉米田 题目描述 Farmer John has purchased a lush new rectangular pasture composed of M by N (1 ≤ M ≤ 12; 1 ≤ N ≤ 12) square parcels. He wants to grow some yummy corn for the cows on a number of squares. Regrettably, some of the squares…

服务器php 启动命令_服务端的cli方式运行

既然是结合tp5&#xff0c;咱当然要借鉴tp5的优势# tp5自定义命令行这个需要自己看tp5的官方文档&#xff0c;直接搜索就能找到&#xff0c;自己添加command.php文件&#xff0c;我的如下~~~/*** Time: 13:55*/return [iss\crontab\command\IssServer,iss\crontab\command\IssC…

全国计算机等级考试题库二级C操作题100套(第47套)

第47套&#xff1a; 给定程序中&#xff0c;函数fun的功能是&#xff1a;找出形参s所指字符串中出现频率最高的字母&#xff08;不区分大小写&#xff09;&#xff0c;并统计出其出现的次数。 例如&#xff0c;形参s所指的字符串为&#xff1a;abcAbsmaxless&#xff0c;程序执…

android调用照相机拍照获取照片并做简单剪裁

1.调用系统的照相机程序 Intent intent new Intent(MediaStore.ACTION_IMAGE_CAPTURE); startActivityForResult(intent, TAKE_PHOTO_WITH_DATA); 2.在onActivityResult中处理返回的data final Bitmap photo data.getParcelableExtra("data"); 如果不需要做剪切处…

用户id可以出现在url中吗_下载Google Drive中的文件

通过Python下载Google Drive中的文件的代码如下&#xff1a;download_googledrive.pyimport

LockSupport的源码实现原理以及应用

一、为什么使用LockSupport类 如果只是LockSupport在使用起来比Object的wait/notify简单&#xff0c; 那还真没必要专门讲解下LockSupport。最主要的是灵活性。 上边的例子代码中&#xff0c;主线程调用了Thread.sleep(1000)方法来等待线程A计算完成进入wait状态。如果去掉Thr…

php网址变量怎么输出,【PHP网站】如何使用dedecms v5.7前台模版里输出变量

dedecmsv5.7是PHP网站内容管理系统&#xff0c;本篇文章将介绍如何使用dedecmsv5.7 前台模版来输出变量&#xff0c;具有一定参考意义&#xff0c;感兴趣的朋友了解一下吧。如何在PHP文件查询出来的数据赋值给前端页面展示出来&#xff1f;例如&#xff1a;PHP文件&#xff1a;…

全国计算机等级考试题库二级C操作题100套(第48套)

第48套&#xff1a; 给定程序中&#xff0c;函数fun的功能是&#xff1a;将形参s所指字符串中的数字字符转换成对 应的数值&#xff0c;计算出这些数值的累加和作为函数值返回。 例如&#xff0c;形参s所指的字符串为&#xff1a;abs5def126jkm8&#xff0c;程序执行后的输出结…

Nginx内核参数相关的优化设定

Nginx内核参数在使用的时候有不少问题需要我们解决&#xff0c;其中在优化方面就需要我们格外的注意。在下面就是对Nginx内核参数优化的详细介绍&#xff0c;希望大家有所收获。 关于Nginx内核参数的优化&#xff1a; net.ipv4.tcp_max_tw_buckets 6000 timewait的数量&#x…

python3 爬虫 requests安装_BOSS直聘招聘信息获取之爬虫工具分析

点击蓝色“不太灵光的程序员”关注我哟加个“星标”&#xff0c;每天上午 09:30&#xff0c;干货推送&#xff01;文中使用的组件库仅限于Python语言&#xff0c;由于最近收到一些同学的留言说&#xff0c;按照网上的教程一步一步的学习&#xff0c;却频繁的出现报错&#xff0…

假期周进度总计(四)

本周学习利用OEM工具创建删除表以及对表内数据进行增删改查的操作 一切均通过此工具进行&#xff0c;然后还学到了用SQL *Plus进行相应操作 本周每天4.5个小时&#xff0c;出现的错误就是点击的误操作&#xff0c;可以改正&#xff0c;下周进一步学习Oracle基本操作转载于:http…

Java集合框架(3)

Map(和Collection<E>一样都是集合框架的顶层接口) |--Hashtable:底层是哈希表数据结构&#xff0c;不可以用null对象作为键或值。它是线程同步的。 |--HashMap&#xff1a;底层是哈希表。允许使用null键null值&#xff0c;该集合是不同步的&#xff0c;效率高&#xff0c…

php函数从数组中取出指定的数目,PHP数组函数

1.array_rand()从数组中随机取出一个或多个元素(返回值是&#xff1a;随机元素的键)$arr[js,css,25,php,30];printf(%s,print_r($arr,true));//随机去2个元素$resarray_rand($arr,2);printf(%s,print_r($res,true));2.array_replace()使用后面数组元素相同 key 的值替换 array1…