题目链接 题目描述 在一个长宽均为10,入口出口分别为(0,5).(10,5)的房间里,有几堵墙,每堵墙上有两个缺口,求入口到出口的最短路经. 输入输出格式 输入格式: 第一排为n(n<=20),墙的数目. 接下来n排,每排5个实数x,a1,b1,a2,b2. x表示墙的横坐标(所有墙都是竖直的),a1-b1和a2-b2之间为空缺. a1.b1.a2.b2保持递增,x1-xn也是递增的. 输出格式: 输出最短距离,保留2位小数. 输入输出样例 输入样例#1: 2 4 2 7 8 9 7 3 4.…
// 判断线段和直线相交 POJ 3304 // 思路: // 如果存在一条直线和所有线段相交,那么平移该直线一定可以经过线段上任意两个点,并且和所有线段相交. #include <cstdio> #include <cstring> #include <iostream> #include <algorithm> #include <map> #include <set> #include <queue> #includ…
链接: http://poj.org/problem?id=1039 http://acm.hust.edu.cn/vjudge/contest/view.action?cid=22013#problem/B Pipe Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 8350   Accepted: 2501 Description The GX Light Pipeline Company started to prep…
http://poj.org/problem?id=3304 Segments Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 9449   Accepted: 2902 Description Given n segments in the two dimensional space, write a program, which determines if there exists a line such that a…
Segments Time Limit: 1000MS   Memory Limit: 65536K       Description Given n segments in the two dimensional space, write a program, which determines if there exists a line such that after projecting these segments on it, all projected segments have…
第一次写计算几何,还是很开心的吧(虽然题目好水qaq) 暴力枚举端点,暴力连边即可 用线段交判一下是否可行. Code: #include <cstdio> #include <algorithm> #include <cmath> #include <cstring> #define setIO(s) freopen(s".in","r",stdin) #define maxn 100008 const double…
这是一道紫题,然而实际上我觉得也就蓝题难度甚至不到. and,这道题就是一道数学题,代码模拟计算过程. 求最短路嘛,肯定要考虑建图,只需要把中间的墙上每个口的边缘处的点作为图中的点就行.至于为什么,显然如果我们取中间任何一个点连边,到下一面墙时路径之和总是比连其中一个边缘的点要大,直观感(gán觉(juě)一下就行.连边我们一定会遇到一个问题,就是会被墙挡住.解决办法就是一次函数.我们求出要连这条边的直线解析式(直接模拟计算过程就行),然后求出在中间的墙上的函数值,如果这个函数值正好在缺口处就可…
Segments Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 14178   Accepted: 4521 Description Given n segments in the two dimensional space, write a program, which determines if there exists a line such that after projecting these segments…
Aircraft Time Limit: 10000/3000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 980    Accepted Submission(s): 228 Problem Description You are playing a flying game. In the game, player controls an aircraft in a 2D-…
题意: 给出n条线段两个端点的坐标,问所有线段投影到一条直线上,如果这些所有投影至少相交于一点就输出Yes!,否则输出No!. 思路: 计算几何.这道题要思考到两点: 1:把问题转化为是否存在一条直线与每条线段都有交点.证明:若存在一条直线l和所有线段相交,作一条直线m和l垂直,则m就是题中要求的直线,所有线段投影的一个公共点即为垂足. 2:枚举两两线段的各一个端点,连一条直线,再判断剩下的线段是否都和这条直线有交点.证明:若有l和所有线段相交,则可保持l和所有线段相交,左右平移l到和某一线段交…