HDU-1147-Pick-up sticks
来源:互联网 发布:java中webservice实例 编辑:程序博客网 时间:2024/05/16 10:42
#include<iostream>#include<string>#include<queue>#include<map>#include<set>#include<vector>#include<algorithm>#include<cstdio>#include<cstring>using namespace std;/* 这道题其实和1086是一样的题目,都是判断线段是否相交; 但是这道题换了一个问你的方式;他告诉你他依次放木棍的次序; 并且告诉你木棍的坐标,问你没有被压着的木棍有哪几个,并且按先放的先输出; 思路: 因为告诉了你木棍摆放的次序,所以先放的只要和后面的有相交,就说明这根木棍被压着了; 那么我们就可以转换成判断是否相交来判断是否是Top了;*/typedef struct{ double x,y;}Point;// 判断直线AB是否与线段CD相交;bool Intersect(Point A,Point B,Point C,Point D){ // 直线方程F(x,y)为:(y-y1)*(x1-x2)-(x-x2)*(y1-y2)=0; double FC=(C.y-A.y)*(A.x-B.x)-(C.x-A.x)*(A.y-B.y); double FD=(D.y-A.y)*(A.x-B.x)-(D.x-A.x)*(A.y-B.y); if(FC*FD<=0) return true; else return false;}Point a[100005],b[100005];int main(){ int n; while(~scanf("%d",&n)){ if(!n) break; int TopSticks[1005]; // 存放没有被压着的木棍; int c=0; for(int i=0;i<n;i++) scanf("%lf%lf%lf%lf",&a[i].x,&a[i].y,&b[i].x,&b[i].y); for(int i=0;i<n-1;i++){ int flag=1; for(int j=i+1;j<n;j++){ // 如果有相交,那么标记为0,直接查找下一个, if(Intersect(a[i],b[i],a[j],b[j])&&Intersect(a[j],b[j],a[i],b[i])){ flag=0; break; } } if(flag) TopSticks[c++]=i+1; } printf("Top sticks: "); for(int i=0;i<c;i++){ printf("%d, ",TopSticks[i]); } // 因为最后一根木棍肯定是没有被压着的,所以我们在第40行就没有考虑最后一根木棍; printf("%d.\n",n); } return 0;}
0 0
- hdu 1147 Pick-up sticks
- HDU-1147-Pick-up sticks
- HDU 1147 Pick-up sticks
- hdu 1147 Pick-up sticks
- hdu 2497 Pick up sticks
- HDU 1147 Pick-up sticks(计算几何 判断直线相交)
- hdu 1147 Pick-up sticks 向量积求线段相交
- HDU 1147 Pick-up sticks(简单的线段相交)
- HDU 1147 Pick-up sticks(线段是否相交)
- hdu 1147 Pick-up sticks(线段相交+枚举)
- POJ 2653 && HDU 1147 Pick-up sticks(计算几何)
- hdu 1147 Pick-up sticks(求是否有交点)
- hdu acm 1147 Pick-up sticks(判断线段相交)
- hdu-1147 Pick-up sticks(判断线段相交)
- HDU 1147 Pick-up sticks(线段相交)
- hdu 1147 pick up sticks 几何问题线段相交
- hdu Pick-up sticks 线段相交问题
- hdoj 1147 Pick-up sticks 计算几何
- hdu 1284 钱币兑换问题
- 浅析MVC和说媒的过程
- 一个点的经度和纬度,以这个点为圆心,1000米为半径,最大的经度和纬度,最小的经度和纬度
- 解读AFNetworking中Demo的MVC
- 根据一段代码理清一些变量,常量,数组,指针的关系及理解
- HDU-1147-Pick-up sticks
- 谷歌官方建议笔记——内存
- 中文 iOS/Mac 开发博客列表
- 虚幻4创建自己的UMG类别
- Java面试题全集(上)
- 两种无线接入技术综合介绍
- Eclipse光标变成黑色方块解决方法
- 有序数组合并
- 登录tomcat 时出现错误:tomcat You are not authorized to view this page