HDU 2150 Pipe( 判断线段相交水 )
**链接:****传送门 **
题意:略
思路:数据量很小,直接暴力所有线段
/*************************************************************************
> File Name: hdu2150.cpp
> Author: WArobot
> Blog: http://www.cnblogs.com/WArobot/
> Created Time: 2017年05月07日 星期日 23时09分58秒
************************************************************************/
#include<bits/stdc++.h>
using namespace std;
#define eps 1e-10
struct point{ double x,y; };
bool inter(point a,point b,point c,point d){
if( min(a.x,b.x) > max(c.x,d.x) ||
min(a.y,b.y) > max(c.y,d.y) ||
min(c.x,d.x) > max(a.x,b.x) ||
min(c.y,d.y) > max(a.y,b.y) ) return 0;
double h , i , j , k;
h = (b.x - a.x)*(c.y - a.y) - (b.y - a.y)*(c.x - a.x);
i = (b.x - a.x)*(d.y - a.y) - (b.y - a.y)*(d.x - a.x);
j = (d.x - c.x)*(a.y - c.y) - (d.y - c.y)*(a.x - c.x);
k = (d.x - c.x)*(b.y - c.y) - (d.y - c.y)*(b.x - c.x);
return h*i<=eps && j*k<=eps;
}
int main(){
int N,num[31];
point pi[31][101];
while(~scanf("%d",&N)){
for(int i=0;i<N;i++){
scanf("%d",&num[i]);
for(int j=0;j<num[i];j++){
scanf("%lf%lf",&pi[i][j].x,&pi[i][j].y);
}
}
bool ok = false;
for(int i=0;i<N;i++){
for(int j=i+1;j<N;j++){
for(int k=0;k<num[i]-1;k++){
for(int s=0;s<num[j]-1;s++){
if( inter(pi[i][k],pi[i][k+1],pi[j][s],pi[j][s+1])){
ok = true; break;
}
}
}
}
}
if(ok) printf("Yes\n");
else printf("No\n");
}
return 0;
}
HDU 2150 Pipe( 判断线段相交水 )的更多相关文章
- hdu 1086(判断线段相交)
传送门:You can Solve a Geometry Problem too 题意:给n条线段,判断相交的点数. 分析:判断线段相交模板题,快速排斥实验原理就是每条线段代表的向量和该线段的一个端点 ...
- HDU 6590 Code (判断凸包相交)
2019 杭电多校 1 1013 题目链接:HDU 6590 比赛链接:2019 Multi-University Training Contest 1 Problem Description Aft ...
- 还记得高中的向量吗?leetcode 335. Self Crossing(判断线段相交)
传统解法 题目来自 leetcode 335. Self Crossing. 题意非常简单,有一个点,一开始位于 (0, 0) 位置,然后有规律地往上,左,下,右方向移动一定的距离,判断是否会相交(s ...
- 【POJ 2653】Pick-up sticks 判断线段相交
一定要注意位运算的优先级!!!我被这个卡了好久 判断线段相交模板题. 叉积,点积,规范相交,非规范相交的简单模板 用了“链表”优化之后还是$O(n^2)$的暴力,可是为什么能过$10^5$的数据? # ...
- HDU 4606 Occupy Cities ★(线段相交+二分+Floyd+最小路径覆盖)
题意 有n个城市,m个边界线,p名士兵.现在士兵要按一定顺序攻占城市,但从一个城市到另一个城市的过程中不能穿过边界线.士兵有一个容量为K的背包装粮食,士兵到达一个城市可以选择攻占城市或者只是路过,如果 ...
- POJ 2653 Pick-up sticks(判断线段相交)
Pick-up sticks Time Limit: 3000MS Memory Limit: 65536K Total Submissions: 7699 Accepted: 2843 De ...
- 判断线段相交(hdu1558 Segment set 线段相交+并查集)
先说一下题目大意:给定一些线段,这些线段顺序编号,这时候如果两条线段相交,则把他们加入到一个集合中,问给定一个线段序号,求在此集合中有多少条线段. 这个题的难度在于怎么判断线段相交,判断玩相交之后就是 ...
- POJ_1066_Treasure Hunt_判断线段相交
POJ_1066_Treasure Hunt_判断线段相交 Description Archeologists from the Antiquities and Curios Museum (ACM) ...
- POJ_2653_Pick-up sticks_判断线段相交
POJ_2653_Pick-up sticks_判断线段相交 Description Stan has n sticks of various length. He throws them one a ...
随机推荐
- 使用javadoc 报错:编码GBK的不可映射字符
运行命令:javadoc Test1.java 报错:编码GBK的不可映射字符 问题原因:类文件中带有非GBK字符 解决办法:javadoc -encoding utf-8 Test1.java
- redis 五大数据类型
一.String set : 添加数据 get : 获得指定 key 的 value del : 删除指定 key append : 往字符串后面添加 append k1 12345 ...
- asp.net-EF事物与存储过程
FK_Equipment_EquipmentClass 这个是sql中的命名规范,外键名称在前面,主键名称在后面 EF事务的代码 DbTransaction tran = null; try { ne ...
- linux下添加自定义脚本到开机自启动的方法
原文链接:http://www.jb51.net/LINUXjishu/183462.html 我的机器有个coreseek服务,但是没加到开启启动中去,导致机房一旦重启了机器,我的服务便不能使用了. ...
- 工具类Util类的注释书写规范
package com.paic.pacz.core.salesmanage.util; import java.util.List; import org.apache.commons.beanut ...
- [笔记][Java7并发编程实战手冊]系列文件夹
推荐学习多线程之前要看的书. [笔记][思维导图]读深入理解JAVA内存模型整理的思维导图文章里面的思维导图或则相应的书籍.去看一遍. 能理解为什么并发编程就会出现故障. Java7并发编程实战手冊 ...
- HDU 4394 BFS
M2%10x=N (x=0,1,2,3....) 给出N.找到最小的满足条件的M 因为:N的个位仅仅由M的个位决定.N十位由M的个位和十位决定,N的百位由M的个位十位百位决定.以此类推 全部从个位開始 ...
- 有关计数问题的DP 划分数
有n个无差别的物品,将它们划分成不超过m组.求出划分方法数模M的余数. 输入: 3 4 10000 输出: 4(1+1+2=1+3=2+2=4) 定义:dp[i][j] = j的i划分的总数 #inc ...
- UESTC--1263--The Desire of Asuna(贪心)
The Desire of Asuna Time Limit: 1000MS Memory Limit: 65535KB 64bit IO Format: %lld & %llu Su ...
- 【转】iOS 设置APP的名称(浅述APP版本国际化与本地化)
原文网址:http://www.jianshu.com/p/a3a70f0398c4 前言 App的名字设置方式有很多种,如果在App打包上线时不做修改,最终App的名字就是Xcode在建立工程时的名 ...