﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-A code a day, keeps the girls away!-随笔分类-计算几何</title><link>http://www.cppblog.com/AmazingCaddy/category/13468.html</link><description /><language>zh-cn</language><lastBuildDate>Mon, 15 Aug 2011 08:16:48 GMT</lastBuildDate><pubDate>Mon, 15 Aug 2011 08:16:48 GMT</pubDate><ttl>60</ttl><item><title>hdu 3918 Beiju</title><link>http://www.cppblog.com/AmazingCaddy/archive/2011/08/13/153283.html</link><dc:creator>AmazingCaddy</dc:creator><author>AmazingCaddy</author><pubDate>Sat, 13 Aug 2011 08:25:00 GMT</pubDate><guid>http://www.cppblog.com/AmazingCaddy/archive/2011/08/13/153283.html</guid><wfw:comment>http://www.cppblog.com/AmazingCaddy/comments/153283.html</wfw:comment><comments>http://www.cppblog.com/AmazingCaddy/archive/2011/08/13/153283.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/AmazingCaddy/comments/commentRss/153283.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/AmazingCaddy/services/trackbacks/153283.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: http://acm.hdu.edu.cn/showproblem.php?pid=3918一个如上图所示的杯子，一开始为空，且杯子的重量不计，沿着杯壁往里面慢慢地倒水，直到杯子倒了为止，最高能往里面倒多少水，求最后水的高度。做法：将杯身分割成梯形，每个梯形中，重心是在x轴的分量，是往一个方向偏移，也就是有单调性。求出从下往上枚举每个梯形，求出第一个使得杯子倒掉的梯形，然后在这个梯形内部二分，求出...&nbsp;&nbsp;<a href='http://www.cppblog.com/AmazingCaddy/archive/2011/08/13/153283.html'>阅读全文</a><img src ="http://www.cppblog.com/AmazingCaddy/aggbug/153283.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/AmazingCaddy/" target="_blank">AmazingCaddy</a> 2011-08-13 16:25 <a href="http://www.cppblog.com/AmazingCaddy/archive/2011/08/13/153283.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>sgu 435 UFO Circles</title><link>http://www.cppblog.com/AmazingCaddy/archive/2010/10/05/128636.html</link><dc:creator>AmazingCaddy</dc:creator><author>AmazingCaddy</author><pubDate>Mon, 04 Oct 2010 18:08:00 GMT</pubDate><guid>http://www.cppblog.com/AmazingCaddy/archive/2010/10/05/128636.html</guid><wfw:comment>http://www.cppblog.com/AmazingCaddy/comments/128636.html</wfw:comment><comments>http://www.cppblog.com/AmazingCaddy/archive/2010/10/05/128636.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.cppblog.com/AmazingCaddy/comments/commentRss/128636.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/AmazingCaddy/services/trackbacks/128636.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: http://acm.sgu.ru/problem.php?contest=0&amp;problem=435题目大意，每个UFO会使长草的地面变成荒地，使荒地长出草来，作用范围是一个圆，求最后荒地和草地面积各为多少。圆的离散化，比赛的时候没有想仔细，没有做出来，赛后经haozi一点拨，发现可以做，就拿以前写的一个圆离散化的代码改了改，结果精度不够。重新写了一个，结果打错了一个变量，一直没有发现，...&nbsp;&nbsp;<a href='http://www.cppblog.com/AmazingCaddy/archive/2010/10/05/128636.html'>阅读全文</a><img src ="http://www.cppblog.com/AmazingCaddy/aggbug/128636.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/AmazingCaddy/" target="_blank">AmazingCaddy</a> 2010-10-05 02:08 <a href="http://www.cppblog.com/AmazingCaddy/archive/2010/10/05/128636.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>eoj 2830 Hamster 2</title><link>http://www.cppblog.com/AmazingCaddy/archive/2010/09/29/128002.html</link><dc:creator>AmazingCaddy</dc:creator><author>AmazingCaddy</author><pubDate>Tue, 28 Sep 2010 16:27:00 GMT</pubDate><guid>http://www.cppblog.com/AmazingCaddy/archive/2010/09/29/128002.html</guid><wfw:comment>http://www.cppblog.com/AmazingCaddy/comments/128002.html</wfw:comment><comments>http://www.cppblog.com/AmazingCaddy/archive/2010/09/29/128002.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/AmazingCaddy/comments/commentRss/128002.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/AmazingCaddy/services/trackbacks/128002.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: http://www.acm.cs.ecnu.edu.cn/problem.php?problemid=2830题目大意：空中有很多竖直的门，一个点以V0的初速度抛出，忽略空气阻力，重力加速度为10m/s2,求此点最多能穿过几个门。解法：对于每个门，根据斜抛运动，解出初速度与x轴的夹角范围，然后求出重叠次数最大的区域，输出该次数。eoj 2830Code highlighting produc...&nbsp;&nbsp;<a href='http://www.cppblog.com/AmazingCaddy/archive/2010/09/29/128002.html'>阅读全文</a><img src ="http://www.cppblog.com/AmazingCaddy/aggbug/128002.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/AmazingCaddy/" target="_blank">AmazingCaddy</a> 2010-09-29 00:27 <a href="http://www.cppblog.com/AmazingCaddy/archive/2010/09/29/128002.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>hdu 2966 In case of failure</title><link>http://www.cppblog.com/AmazingCaddy/archive/2010/09/07/126077.html</link><dc:creator>AmazingCaddy</dc:creator><author>AmazingCaddy</author><pubDate>Tue, 07 Sep 2010 03:26:00 GMT</pubDate><guid>http://www.cppblog.com/AmazingCaddy/archive/2010/09/07/126077.html</guid><wfw:comment>http://www.cppblog.com/AmazingCaddy/comments/126077.html</wfw:comment><comments>http://www.cppblog.com/AmazingCaddy/archive/2010/09/07/126077.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/AmazingCaddy/comments/commentRss/126077.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/AmazingCaddy/services/trackbacks/126077.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: http://acm.hdu.edu.cn/showproblem.php?pid=2966题目的意思是：平面上有n个点（n&lt;100000），求每个点的最近点到该点的平方距离。KD_Tree可以解决此题。详细资料可以参看此链接 http://en.wikipedia.org/wiki/Kd-tree，上面给出了算法。PS: 这道题时限开了恐怖的30秒。 hdu_2966Code high...&nbsp;&nbsp;<a href='http://www.cppblog.com/AmazingCaddy/archive/2010/09/07/126077.html'>阅读全文</a><img src ="http://www.cppblog.com/AmazingCaddy/aggbug/126077.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/AmazingCaddy/" target="_blank">AmazingCaddy</a> 2010-09-07 11:26 <a href="http://www.cppblog.com/AmazingCaddy/archive/2010/09/07/126077.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>hdu 3492 Segment</title><link>http://www.cppblog.com/AmazingCaddy/archive/2010/08/06/122473.html</link><dc:creator>AmazingCaddy</dc:creator><author>AmazingCaddy</author><pubDate>Fri, 06 Aug 2010 10:26:00 GMT</pubDate><guid>http://www.cppblog.com/AmazingCaddy/archive/2010/08/06/122473.html</guid><wfw:comment>http://www.cppblog.com/AmazingCaddy/comments/122473.html</wfw:comment><comments>http://www.cppblog.com/AmazingCaddy/archive/2010/08/06/122473.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/AmazingCaddy/comments/commentRss/122473.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/AmazingCaddy/services/trackbacks/122473.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 很郁闷的一题，第一次碰到使用不同的编译器，一个超时（C++），一个AC的情况（G++）。。。首先题中的要求等价于：存在一条直线l和所有的线段都相交。证明：若存在一条直线l和所有线段相交，作一条直线m和l垂直，则m就是题中要求的直线所有线段投影的一个公共点即为垂足。（l和每条线段的交点沿l投影到m上的垂足处）反过来，若存在m，所有线段在m上的投影有公共点，则过这点垂直于m作直线l，&nbsp...&nbsp;&nbsp;<a href='http://www.cppblog.com/AmazingCaddy/archive/2010/08/06/122473.html'>阅读全文</a><img src ="http://www.cppblog.com/AmazingCaddy/aggbug/122473.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/AmazingCaddy/" target="_blank">AmazingCaddy</a> 2010-08-06 18:26 <a href="http://www.cppblog.com/AmazingCaddy/archive/2010/08/06/122473.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>pku 1418 Viva Confetti</title><link>http://www.cppblog.com/AmazingCaddy/archive/2010/07/25/121256.html</link><dc:creator>AmazingCaddy</dc:creator><author>AmazingCaddy</author><pubDate>Sun, 25 Jul 2010 11:14:00 GMT</pubDate><guid>http://www.cppblog.com/AmazingCaddy/archive/2010/07/25/121256.html</guid><wfw:comment>http://www.cppblog.com/AmazingCaddy/comments/121256.html</wfw:comment><comments>http://www.cppblog.com/AmazingCaddy/archive/2010/07/25/121256.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/AmazingCaddy/comments/commentRss/121256.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/AmazingCaddy/services/trackbacks/121256.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: http://124.205.79.250/JudgeOnline/problem?id=1418&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 最近跟着haozi大牛学习计算几何，第一道圆的离散化的题目。&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 题目的大致意思是按照时间顺序把许多圆放在平面上，后放的圆可能将先放的圆...&nbsp;&nbsp;<a href='http://www.cppblog.com/AmazingCaddy/archive/2010/07/25/121256.html'>阅读全文</a><img src ="http://www.cppblog.com/AmazingCaddy/aggbug/121256.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/AmazingCaddy/" target="_blank">AmazingCaddy</a> 2010-07-25 19:14 <a href="http://www.cppblog.com/AmazingCaddy/archive/2010/07/25/121256.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>hdu 3471 England vs Germany</title><link>http://www.cppblog.com/AmazingCaddy/archive/2010/07/25/121234.html</link><dc:creator>AmazingCaddy</dc:creator><author>AmazingCaddy</author><pubDate>Sun, 25 Jul 2010 04:21:00 GMT</pubDate><guid>http://www.cppblog.com/AmazingCaddy/archive/2010/07/25/121234.html</guid><wfw:comment>http://www.cppblog.com/AmazingCaddy/comments/121234.html</wfw:comment><comments>http://www.cppblog.com/AmazingCaddy/archive/2010/07/25/121234.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/AmazingCaddy/comments/commentRss/121234.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/AmazingCaddy/services/trackbacks/121234.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: http://acm.hdu.edu.cn/showproblem.php?pid=3471此题主要有两个问题：直线与面的交点，点是否在多边形内对于速度V的方向有三种情况，可用V与ABCD面法向量的点积判断：1 V指向ABCD面外侧，不可能进球；2 V与ABCD面平行，不可能进球；3 V指向ABCD面内侧，可能进球，分三种情况:&nbsp;&nbsp; 3.1 P在ABCD面内侧，不可能进球；...&nbsp;&nbsp;<a href='http://www.cppblog.com/AmazingCaddy/archive/2010/07/25/121234.html'>阅读全文</a><img src ="http://www.cppblog.com/AmazingCaddy/aggbug/121234.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/AmazingCaddy/" target="_blank">AmazingCaddy</a> 2010-07-25 12:21 <a href="http://www.cppblog.com/AmazingCaddy/archive/2010/07/25/121234.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>hdu 3437 Garden</title><link>http://www.cppblog.com/AmazingCaddy/archive/2010/07/25/121232.html</link><dc:creator>AmazingCaddy</dc:creator><author>AmazingCaddy</author><pubDate>Sun, 25 Jul 2010 04:14:00 GMT</pubDate><guid>http://www.cppblog.com/AmazingCaddy/archive/2010/07/25/121232.html</guid><wfw:comment>http://www.cppblog.com/AmazingCaddy/comments/121232.html</wfw:comment><comments>http://www.cppblog.com/AmazingCaddy/archive/2010/07/25/121232.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/AmazingCaddy/comments/commentRss/121232.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/AmazingCaddy/services/trackbacks/121232.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: http://acm.hdu.edu.cn/showproblem.php?pid=3437AC牛的题目，精度比较恶心，最后一组数据一个误差是0.00006 我精度用了1e-8，而标程是1e-4，卡死在最后一组数据上了。。。这题看起来是三维的几何，其实完全可以压缩到二维来做。&nbsp;&nbsp;1//&nbsp;Author&nbsp;:&nbsp;AmazingCaddy&nbsp;&n...&nbsp;&nbsp;<a href='http://www.cppblog.com/AmazingCaddy/archive/2010/07/25/121232.html'>阅读全文</a><img src ="http://www.cppblog.com/AmazingCaddy/aggbug/121232.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/AmazingCaddy/" target="_blank">AmazingCaddy</a> 2010-07-25 12:14 <a href="http://www.cppblog.com/AmazingCaddy/archive/2010/07/25/121232.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>pku 3608 Bridge Across Islands</title><link>http://www.cppblog.com/AmazingCaddy/archive/2010/07/12/120158.html</link><dc:creator>AmazingCaddy</dc:creator><author>AmazingCaddy</author><pubDate>Mon, 12 Jul 2010 14:42:00 GMT</pubDate><guid>http://www.cppblog.com/AmazingCaddy/archive/2010/07/12/120158.html</guid><wfw:comment>http://www.cppblog.com/AmazingCaddy/comments/120158.html</wfw:comment><comments>http://www.cppblog.com/AmazingCaddy/archive/2010/07/12/120158.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/AmazingCaddy/comments/commentRss/120158.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/AmazingCaddy/services/trackbacks/120158.html</trackback:ping><description><![CDATA[
<a href="http://124.205.79.250/JudgeOnline/problem?id=3608"><u><font color="#0066cc">http://124.205.79.250/JudgeOnline/problem?id=3608</font></u></a><br><br>旋转卡壳的经典题目，看着网上某篇论文写的，写了一个下午还是WA，最后参考了了haozi的代码，还是WA，原来haozi的代码中将平行跟其中一种情况合并在一起写了，精度调得很高，但是我的精度太低了，调整精度之后过了。但是我觉得这题的精度是不用那么高的，原因应该是出在了，两种情况的合并上面，后来我改成三种情况，精度就1e-8过了，看来是那哥问题。代码如下：<div><div style="background-color: rgb(238, 238, 238); font-size: 13px; border-left-color: rgb(204, 204, 204); padding-right: 5px; padding-bottom: 4px; padding-left: 4px; padding-top: 4px; width: 98%; word-break: break-all; "><img id="Code_Closed_Image_171006" onclick="this.style.display='none'; Code_Closed_Text_171006.style.display='none'; Code_Open_Image_171006.style.display='inline'; Code_Open_Text_171006.style.display='inline';" height="16" src="http://www.cppblog.com/images/OutliningIndicators/ContractedBlock.gif" width="11" align="top" style="display: inline; "><img id="Code_Open_Image_171006" style="display: none; " onclick="this.style.display='none'; Code_Open_Text_171006.style.display='none'; Code_Closed_Image_171006.style.display='inline'; Code_Closed_Text_171006.style.display='inline';" height="16" src="http://www.cppblog.com/images/OutliningIndicators/ExpandedBlockStart.gif" width="11" align="top"><span id="Code_Closed_Text_171006" style="border-right-color: rgb(128, 128, 128); border-right-width: 1px; border-right-style: solid; border-top-color: rgb(128, 128, 128); border-top-width: 1px; border-top-style: solid; border-left-color: rgb(128, 128, 128); border-left-width: 1px; border-left-style: solid; border-bottom-color: rgb(128, 128, 128); border-bottom-width: 1px; border-bottom-style: solid; background-color: rgb(255, 255, 255); display: inline; ">pku 3608</span><span id="Code_Open_Text_171006" style="display: none; "><br><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: #008080; ">&nbsp;&nbsp;1</span>&nbsp;<span style="color: #000000; ">#include</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">iostream</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; "><br></span><span style="color: #008080; ">&nbsp;&nbsp;2</span>&nbsp;<span style="color: #000000; ">#include</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">cstdio</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; "><br></span><span style="color: #008080; ">&nbsp;&nbsp;3</span>&nbsp;<span style="color: #000000; ">#include</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">cmath</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; "><br></span><span style="color: #008080; ">&nbsp;&nbsp;4</span>&nbsp;<span style="color: #000000; ">#include</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">vector</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; "><br></span><span style="color: #008080; ">&nbsp;&nbsp;5</span>&nbsp;<span style="color: #000000; ">#include</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">cstring</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; "><br></span><span style="color: #008080; ">&nbsp;&nbsp;6</span>&nbsp;<span style="color: #000000; ">#include</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">complex</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; "><br></span><span style="color: #008080; ">&nbsp;&nbsp;7</span>&nbsp;<span style="color: #000000; "></span><span style="color: #0000FF; ">using</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">namespace</span><span style="color: #000000; ">&nbsp;std;<br></span><span style="color: #008080; ">&nbsp;&nbsp;8</span>&nbsp;<span style="color: #000000; ">typedef&nbsp;complex</span><span style="color: #000000; ">&lt;</span><span style="color: #0000FF; ">double</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; ">&nbsp;point;<br></span><span style="color: #008080; ">&nbsp;&nbsp;9</span>&nbsp;<span style="color: #000000; "></span><span style="color: #0000FF; ">const</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">double</span><span style="color: #000000; ">&nbsp;eps&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;1e</span><span style="color: #000000; ">-</span><span style="color: #000000; ">8</span><span style="color: #000000; ">;<br></span><span style="color: #008080; ">&nbsp;10</span>&nbsp;<span style="color: #000000; "></span><span style="color: #0000FF; ">const</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">double</span><span style="color: #000000; ">&nbsp;pi&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;acos(&nbsp;</span><span style="color: #000000; ">-</span><span style="color: #000000; ">1.0</span><span style="color: #000000; ">&nbsp;);<br></span><span style="color: #008080; ">&nbsp;11</span>&nbsp;<span style="color: #000000; "></span><span style="color: #0000FF; ">const</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">double</span><span style="color: #000000; ">&nbsp;inf&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;1e100;<br></span><span style="color: #008080; ">&nbsp;12</span>&nbsp;<span style="color: #000000; ">vector</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">point</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; ">&nbsp;P,&nbsp;Q;<br></span><span style="color: #008080; ">&nbsp;13</span>&nbsp;<span style="color: #000000; "><br></span><span style="color: #008080; ">&nbsp;14</span>&nbsp;<span style="color: #000000; "></span><span style="color: #0000FF; ">double</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">operator</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">^</span><span style="color: #000000; ">(&nbsp;</span><span style="color: #0000FF; ">const</span><span style="color: #000000; ">&nbsp;point&nbsp;p1,&nbsp;</span><span style="color: #0000FF; ">const</span><span style="color: #000000; ">&nbsp;point&nbsp;p2&nbsp;)&nbsp;{&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;imag(&nbsp;conj(&nbsp;p1&nbsp;)&nbsp;</span><span style="color: #000000; ">*</span><span style="color: #000000; ">&nbsp;p2&nbsp;);&nbsp;}<br></span><span style="color: #008080; ">&nbsp;15</span>&nbsp;<span style="color: #000000; "></span><span style="color: #0000FF; ">double</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">operator</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">&amp;</span><span style="color: #000000; ">(&nbsp;</span><span style="color: #0000FF; ">const</span><span style="color: #000000; ">&nbsp;point&nbsp;p1,&nbsp;</span><span style="color: #0000FF; ">const</span><span style="color: #000000; ">&nbsp;point&nbsp;p2&nbsp;)&nbsp;{&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;real(&nbsp;conj(&nbsp;p1&nbsp;)&nbsp;</span><span style="color: #000000; ">*</span><span style="color: #000000; ">&nbsp;p2&nbsp;);&nbsp;}<br></span><span style="color: #008080; ">&nbsp;16</span>&nbsp;<span style="color: #000000; "></span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;dblcmp(&nbsp;</span><span style="color: #0000FF; ">double</span><span style="color: #000000; ">&nbsp;x&nbsp;)&nbsp;{&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;(&nbsp;x&nbsp;</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">-</span><span style="color: #000000; ">eps&nbsp;</span><span style="color: #000000; ">?</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">-</span><span style="color: #000000; ">1</span><span style="color: #000000; ">&nbsp;:&nbsp;x&nbsp;</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; ">&nbsp;eps&nbsp;);&nbsp;}<br></span><span style="color: #008080; ">&nbsp;17</span>&nbsp;<span style="color: #000000; "></span><span style="color: #0000FF; ">double</span><span style="color: #000000; ">&nbsp;min(&nbsp;</span><span style="color: #0000FF; ">double</span><span style="color: #000000; ">&nbsp;x,&nbsp;</span><span style="color: #0000FF; ">double</span><span style="color: #000000; ">&nbsp;y&nbsp;)&nbsp;{&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;(&nbsp;x&nbsp;</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">&nbsp;y&nbsp;</span><span style="color: #000000; ">?</span><span style="color: #000000; ">&nbsp;x&nbsp;:&nbsp;y&nbsp;);&nbsp;}<br></span><span style="color: #008080; ">&nbsp;18</span>&nbsp;<span style="color: #000000; "><br></span><span style="color: #008080; ">&nbsp;19</span>&nbsp;<span style="color: #000000; "></span><span style="color: #0000FF; ">double</span><span style="color: #000000; ">&nbsp;DisPointToSeg(&nbsp;</span><span style="color: #0000FF; ">const</span><span style="color: #000000; ">&nbsp;point&nbsp;</span><span style="color: #000000; ">&amp;</span><span style="color: #000000; ">&nbsp;p,&nbsp;</span><span style="color: #0000FF; ">const</span><span style="color: #000000; ">&nbsp;point&nbsp;</span><span style="color: #000000; ">&amp;</span><span style="color: #000000; ">&nbsp;p1,&nbsp;</span><span style="color: #0000FF; ">const</span><span style="color: #000000; ">&nbsp;point&nbsp;</span><span style="color: #000000; ">&amp;</span><span style="color: #000000; ">&nbsp;p2&nbsp;)<br></span><span style="color: #008080; ">&nbsp;20</span>&nbsp;<span style="color: #000000; ">{<br></span><span style="color: #008080; ">&nbsp;21</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">(&nbsp;dblcmp(&nbsp;p&nbsp;</span><span style="color: #000000; ">-</span><span style="color: #000000; ">&nbsp;p1&nbsp;</span><span style="color: #000000; ">&amp;</span><span style="color: #000000; ">&nbsp;p2&nbsp;</span><span style="color: #000000; ">-</span><span style="color: #000000; ">&nbsp;p1&nbsp;)&nbsp;</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">0</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">||</span><span style="color: #000000; ">&nbsp;dblcmp(&nbsp;p&nbsp;</span><span style="color: #000000; ">-</span><span style="color: #000000; ">&nbsp;p2&nbsp;</span><span style="color: #000000; ">&amp;</span><span style="color: #000000; ">&nbsp;p1&nbsp;</span><span style="color: #000000; ">-</span><span style="color: #000000; ">&nbsp;p2&nbsp;)&nbsp;</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">0</span><span style="color: #000000; ">&nbsp;)<br></span><span style="color: #008080; ">&nbsp;22</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;min(&nbsp;abs(&nbsp;p1&nbsp;</span><span style="color: #000000; ">-</span><span style="color: #000000; ">&nbsp;p&nbsp;),&nbsp;abs(&nbsp;p2&nbsp;</span><span style="color: #000000; ">-</span><span style="color: #000000; ">&nbsp;p&nbsp;)&nbsp;);<br></span><span style="color: #008080; ">&nbsp;23</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;fabs(&nbsp;p1&nbsp;</span><span style="color: #000000; ">-</span><span style="color: #000000; ">&nbsp;p&nbsp;</span><span style="color: #000000; ">^</span><span style="color: #000000; ">&nbsp;p2&nbsp;</span><span style="color: #000000; ">-</span><span style="color: #000000; ">&nbsp;p&nbsp;)&nbsp;</span><span style="color: #000000; ">/</span><span style="color: #000000; ">&nbsp;abs(&nbsp;p1&nbsp;</span><span style="color: #000000; ">-</span><span style="color: #000000; ">&nbsp;p2&nbsp;);<br></span><span style="color: #008080; ">&nbsp;24</span>&nbsp;<span style="color: #000000; ">}<br></span><span style="color: #008080; ">&nbsp;25</span>&nbsp;<span style="color: #000000; "><br></span><span style="color: #008080; ">&nbsp;26</span>&nbsp;<span style="color: #000000; "></span><span style="color: #0000FF; ">double</span><span style="color: #000000; ">&nbsp;DisPallSeg(&nbsp;point&nbsp;p1,&nbsp;point&nbsp;p2,&nbsp;point&nbsp;p3,&nbsp;point&nbsp;p4&nbsp;)<br></span><span style="color: #008080; ">&nbsp;27</span>&nbsp;<span style="color: #000000; ">{<br></span><span style="color: #008080; ">&nbsp;28</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;min(&nbsp;min(&nbsp;DisPointToSeg(&nbsp;p1,&nbsp;p3,&nbsp;p4&nbsp;),&nbsp;DisPointToSeg(&nbsp;p2,&nbsp;p3,&nbsp;p4&nbsp;)&nbsp;),<br></span><span style="color: #008080; ">&nbsp;29</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;min(&nbsp;DisPointToSeg(&nbsp;p3,&nbsp;p1,&nbsp;p2&nbsp;),&nbsp;DisPointToSeg(&nbsp;p4,&nbsp;p1,&nbsp;p2&nbsp;)&nbsp;)&nbsp;);<br></span><span style="color: #008080; ">&nbsp;30</span>&nbsp;<span style="color: #000000; ">}<br></span><span style="color: #008080; ">&nbsp;31</span>&nbsp;<span style="color: #000000; "><br></span><span style="color: #008080; ">&nbsp;32</span>&nbsp;<span style="color: #000000; "></span><span style="color: #0000FF; ">void</span><span style="color: #000000; ">&nbsp;changeclockwise(&nbsp;vector</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">point</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">&amp;</span><span style="color: #000000; ">&nbsp;g&nbsp;)<br></span><span style="color: #008080; ">&nbsp;33</span>&nbsp;<span style="color: #000000; ">{<br></span><span style="color: #008080; ">&nbsp;34</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;n&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;g.size(&nbsp;);<br></span><span style="color: #008080; ">&nbsp;35</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">(&nbsp;(&nbsp;g[</span><span style="color: #000000; ">1</span><span style="color: #000000; ">]&nbsp;</span><span style="color: #000000; ">-</span><span style="color: #000000; ">&nbsp;g[</span><span style="color: #000000; ">0</span><span style="color: #000000; ">]&nbsp;</span><span style="color: #000000; ">^</span><span style="color: #000000; ">&nbsp;g[</span><span style="color: #000000; ">2</span><span style="color: #000000; ">]&nbsp;</span><span style="color: #000000; ">-</span><span style="color: #000000; ">&nbsp;g[</span><span style="color: #000000; ">0</span><span style="color: #000000; ">]&nbsp;)&nbsp;</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">0</span><span style="color: #000000; ">&nbsp;)&nbsp;<br></span><span style="color: #008080; ">&nbsp;36</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">for</span><span style="color: #000000; ">(&nbsp;</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;i&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">0</span><span style="color: #000000; ">;&nbsp;i&nbsp;</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">&nbsp;n&nbsp;</span><span style="color: #000000; ">/</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">2</span><span style="color: #000000; ">;&nbsp;i</span><span style="color: #000000; ">++</span><span style="color: #000000; ">&nbsp;)<br></span><span style="color: #008080; ">&nbsp;37</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;swap(&nbsp;g[i],&nbsp;g[n</span><span style="color: #000000; ">-</span><span style="color: #000000; ">1</span><span style="color: #000000; ">-</span><span style="color: #000000; ">i]&nbsp;);<br></span><span style="color: #008080; ">&nbsp;38</span>&nbsp;<span style="color: #000000; ">}<br></span><span style="color: #008080; ">&nbsp;39</span>&nbsp;<span style="color: #000000; "><br></span><span style="color: #008080; ">&nbsp;40</span>&nbsp;<span style="color: #000000; "></span><span style="color: #0000FF; ">double</span><span style="color: #000000; ">&nbsp;RC(&nbsp;)<br></span><span style="color: #008080; ">&nbsp;41</span>&nbsp;<span style="color: #000000; ">{<br></span><span style="color: #008080; ">&nbsp;42</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;point&nbsp;f0(&nbsp;</span><span style="color: #000000; ">1.0</span><span style="color: #000000; ">,&nbsp;</span><span style="color: #000000; ">0</span><span style="color: #000000; ">&nbsp;),&nbsp;f1(&nbsp;</span><span style="color: #000000; ">-</span><span style="color: #000000; ">1.0</span><span style="color: #000000; ">,&nbsp;</span><span style="color: #000000; ">0</span><span style="color: #000000; ">&nbsp;);<br></span><span style="color: #008080; ">&nbsp;43</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;point&nbsp;p0,&nbsp;p1,&nbsp;p2,&nbsp;p3;<br></span><span style="color: #008080; ">&nbsp;44</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;pn&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;P.size(&nbsp;),&nbsp;qn&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;Q.size(&nbsp;),&nbsp;k1&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">-</span><span style="color: #000000; ">1</span><span style="color: #000000; ">,&nbsp;k2&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">-</span><span style="color: #000000; ">1</span><span style="color: #000000; ">;<br></span><span style="color: #008080; ">&nbsp;45</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">double</span><span style="color: #000000; ">&nbsp;ymin&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;inf,&nbsp;&nbsp;ymax&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">-</span><span style="color: #000000; ">inf,&nbsp;angle,&nbsp;ang,&nbsp;ans;<br></span><span style="color: #008080; ">&nbsp;46</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;<br></span><span style="color: #008080; ">&nbsp;47</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;changeclockwise(&nbsp;P&nbsp;);<br></span><span style="color: #008080; ">&nbsp;48</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;changeclockwise(&nbsp;Q&nbsp;);<br></span><span style="color: #008080; ">&nbsp;49</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;<br></span><span style="color: #008080; ">&nbsp;50</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">for</span><span style="color: #000000; ">(&nbsp;</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;i&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">0</span><span style="color: #000000; ">;&nbsp;i&nbsp;</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">&nbsp;pn;&nbsp;i</span><span style="color: #000000; ">++</span><span style="color: #000000; ">&nbsp;)<br></span><span style="color: #008080; ">&nbsp;51</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">(&nbsp;ymin&nbsp;</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; ">&nbsp;imag(&nbsp;P[i]&nbsp;)&nbsp;)&nbsp;ymin&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;imag(&nbsp;P[i]&nbsp;),&nbsp;k1&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;i;<br></span><span style="color: #008080; ">&nbsp;52</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">for</span><span style="color: #000000; ">(&nbsp;</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;i&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">0</span><span style="color: #000000; ">;&nbsp;i&nbsp;</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">&nbsp;qn;&nbsp;i</span><span style="color: #000000; ">++</span><span style="color: #000000; ">&nbsp;)<br></span><span style="color: #008080; ">&nbsp;53</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">(&nbsp;ymax&nbsp;</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">&nbsp;imag(&nbsp;Q[i]&nbsp;)&nbsp;)&nbsp;ymax&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;imag(&nbsp;Q[i]&nbsp;),&nbsp;k2&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;i;<br></span><span style="color: #008080; ">&nbsp;54</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;<br></span><span style="color: #008080; ">&nbsp;55</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;angle&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">0.0</span><span style="color: #000000; ">;<br></span><span style="color: #008080; ">&nbsp;56</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;ans&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;inf;<br></span><span style="color: #008080; ">&nbsp;57</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;<br></span><span style="color: #008080; ">&nbsp;58</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">while</span><span style="color: #000000; ">(&nbsp;angle&nbsp;</span><span style="color: #000000; ">&lt;=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">140</span><span style="color: #000000; ">&nbsp;)<br></span><span style="color: #008080; ">&nbsp;59</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;{<br></span><span style="color: #008080; ">&nbsp;60</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;p0&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;P[k1];&nbsp;p1&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;P[(k1</span><span style="color: #000000; ">+</span><span style="color: #000000; ">1</span><span style="color: #000000; ">)</span><span style="color: #000000; ">%</span><span style="color: #000000; ">pn];<br></span><span style="color: #008080; ">&nbsp;61</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;p2&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;Q[k2];&nbsp;p3&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;Q[(k2</span><span style="color: #000000; ">+</span><span style="color: #000000; ">1</span><span style="color: #000000; ">)</span><span style="color: #000000; ">%</span><span style="color: #000000; ">qn];<br></span><span style="color: #008080; ">&nbsp;62</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;t&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;dblcmp(&nbsp;p1&nbsp;</span><span style="color: #000000; ">-</span><span style="color: #000000; ">&nbsp;p0&nbsp;</span><span style="color: #000000; ">^</span><span style="color: #000000; ">&nbsp;p3&nbsp;</span><span style="color: #000000; ">-</span><span style="color: #000000; ">&nbsp;p2&nbsp;);<br></span><span style="color: #008080; ">&nbsp;63</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">(&nbsp;t&nbsp;</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">0</span><span style="color: #000000; ">&nbsp;)&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;旋转&nbsp;p2p3</span><span style="color: #008000; "><br></span><span style="color: #008080; ">&nbsp;64</span>&nbsp;<span style="color: #008000; "></span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br></span><span style="color: #008080; ">&nbsp;65</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ang&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;arg(&nbsp;(&nbsp;p3&nbsp;</span><span style="color: #000000; ">-</span><span style="color: #000000; ">&nbsp;p2&nbsp;)&nbsp;</span><span style="color: #000000; ">/</span><span style="color: #000000; ">&nbsp;f1&nbsp;);<br></span><span style="color: #008080; ">&nbsp;66</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;f1&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;p3&nbsp;</span><span style="color: #000000; ">-</span><span style="color: #000000; ">&nbsp;p2;<br></span><span style="color: #008080; ">&nbsp;67</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;f0&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">-</span><span style="color: #000000; ">f1;<br></span><span style="color: #008080; ">&nbsp;68</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;k2&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;(&nbsp;k2&nbsp;</span><span style="color: #000000; ">+</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">1</span><span style="color: #000000; ">&nbsp;)&nbsp;</span><span style="color: #000000; ">%</span><span style="color: #000000; ">&nbsp;qn;<br></span><span style="color: #008080; ">&nbsp;69</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ans&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;min(&nbsp;ans,&nbsp;DisPointToSeg(&nbsp;p0,&nbsp;p2,&nbsp;p3&nbsp;)&nbsp;);<br></span><span style="color: #008080; ">&nbsp;70</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br></span><span style="color: #008080; ">&nbsp;71</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">else</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">(&nbsp;t&nbsp;</span><span style="color: #000000; ">==</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">0</span><span style="color: #000000; ">&nbsp;)<br></span><span style="color: #008080; ">&nbsp;72</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br></span><span style="color: #008080; ">&nbsp;73</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ang&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;arg(&nbsp;(&nbsp;p1&nbsp;</span><span style="color: #000000; ">-</span><span style="color: #000000; ">&nbsp;p0&nbsp;)&nbsp;</span><span style="color: #000000; ">/</span><span style="color: #000000; ">&nbsp;f0&nbsp;);<br></span><span style="color: #008080; ">&nbsp;74</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;f0&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;p1&nbsp;</span><span style="color: #000000; ">-</span><span style="color: #000000; ">&nbsp;p0;<br></span><span style="color: #008080; ">&nbsp;75</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;f1&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">-</span><span style="color: #000000; ">f0;<br></span><span style="color: #008080; ">&nbsp;76</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;k1&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;(&nbsp;k1&nbsp;</span><span style="color: #000000; ">+</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">1</span><span style="color: #000000; ">&nbsp;)&nbsp;</span><span style="color: #000000; ">%</span><span style="color: #000000; ">&nbsp;pn;<br></span><span style="color: #008080; ">&nbsp;77</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;k2&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;(&nbsp;k2&nbsp;</span><span style="color: #000000; ">+</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">1</span><span style="color: #000000; ">&nbsp;)&nbsp;</span><span style="color: #000000; ">%</span><span style="color: #000000; ">&nbsp;qn;<br></span><span style="color: #008080; ">&nbsp;78</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ans&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;min(&nbsp;ans,&nbsp;DisPallSeg(&nbsp;p0,&nbsp;p1,&nbsp;p2,&nbsp;p3&nbsp;)&nbsp;);&nbsp;&nbsp;&nbsp;<br></span><span style="color: #008080; ">&nbsp;79</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br></span><span style="color: #008080; ">&nbsp;80</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">else</span><span style="color: #000000; ">&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;平行&nbsp;&amp;&amp;&nbsp;旋转&nbsp;p0p1，&nbsp;两种情况可以合并</span><span style="color: #008000; "><br></span><span style="color: #008080; ">&nbsp;81</span>&nbsp;<span style="color: #008000; "></span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br></span><span style="color: #008080; ">&nbsp;82</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ang&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;arg(&nbsp;(&nbsp;p1&nbsp;</span><span style="color: #000000; ">-</span><span style="color: #000000; ">&nbsp;p0&nbsp;)&nbsp;</span><span style="color: #000000; ">/</span><span style="color: #000000; ">&nbsp;f0&nbsp;);<br></span><span style="color: #008080; ">&nbsp;83</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;f0&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;p1&nbsp;</span><span style="color: #000000; ">-</span><span style="color: #000000; ">&nbsp;p0;<br></span><span style="color: #008080; ">&nbsp;84</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;f1&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">-</span><span style="color: #000000; ">f0;<br></span><span style="color: #008080; ">&nbsp;85</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;k1&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;(&nbsp;k1&nbsp;</span><span style="color: #000000; ">+</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">1</span><span style="color: #000000; ">&nbsp;)&nbsp;</span><span style="color: #000000; ">%</span><span style="color: #000000; ">&nbsp;pn;<br></span><span style="color: #008080; ">&nbsp;86</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ans&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;min(&nbsp;ans,&nbsp;DisPointToSeg(&nbsp;p2,&nbsp;p0,&nbsp;p1&nbsp;)&nbsp;);<br></span><span style="color: #008080; ">&nbsp;87</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br></span><span style="color: #008080; ">&nbsp;88</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;angle&nbsp;</span><span style="color: #000000; ">+=</span><span style="color: #000000; ">&nbsp;(&nbsp;ang&nbsp;</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">0</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">?</span><span style="color: #000000; ">&nbsp;ang&nbsp;</span><span style="color: #000000; ">+</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">2</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">*</span><span style="color: #000000; ">&nbsp;pi&nbsp;:&nbsp;ang&nbsp;);<br></span><span style="color: #008080; ">&nbsp;89</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;}<br></span><span style="color: #008080; ">&nbsp;90</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;ans;<br></span><span style="color: #008080; ">&nbsp;91</span>&nbsp;<span style="color: #000000; ">}<br></span><span style="color: #008080; ">&nbsp;92</span>&nbsp;<span style="color: #000000; "><br></span><span style="color: #008080; ">&nbsp;93</span>&nbsp;<span style="color: #000000; "></span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;main(&nbsp;)<br></span><span style="color: #008080; ">&nbsp;94</span>&nbsp;<span style="color: #000000; ">{<br></span><span style="color: #008080; ">&nbsp;95</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;n,&nbsp;m;<br></span><span style="color: #008080; ">&nbsp;96</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">double</span><span style="color: #000000; ">&nbsp;x,&nbsp;y,&nbsp;ans;<br></span><span style="color: #008080; ">&nbsp;97</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">while</span><span style="color: #000000; ">(&nbsp;scanf(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">%d%d</span><span style="color: #000000; ">"</span><span style="color: #000000; ">,</span><span style="color: #000000; ">&amp;</span><span style="color: #000000; ">n,</span><span style="color: #000000; ">&amp;</span><span style="color: #000000; ">m)&nbsp;</span><span style="color: #000000; ">&amp;&amp;</span><span style="color: #000000; ">&nbsp;(&nbsp;n&nbsp;</span><span style="color: #000000; ">+</span><span style="color: #000000; ">&nbsp;m&nbsp;)&nbsp;)<br></span><span style="color: #008080; ">&nbsp;98</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;{<br></span><span style="color: #008080; ">&nbsp;99</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;P.clear(&nbsp;);<br></span><span style="color: #008080; ">100</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Q.clear(&nbsp;);<br></span><span style="color: #008080; ">101</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">for</span><span style="color: #000000; ">(&nbsp;</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;i&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">0</span><span style="color: #000000; ">;&nbsp;i&nbsp;</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">&nbsp;n;&nbsp;i</span><span style="color: #000000; ">++</span><span style="color: #000000; ">&nbsp;)<br></span><span style="color: #008080; ">102</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br></span><span style="color: #008080; ">103</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;scanf(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">%lf%lf</span><span style="color: #000000; ">"</span><span style="color: #000000; ">,</span><span style="color: #000000; ">&amp;</span><span style="color: #000000; ">x,</span><span style="color: #000000; ">&amp;</span><span style="color: #000000; ">y);<br></span><span style="color: #008080; ">104</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;P.push_back(&nbsp;point(&nbsp;x,&nbsp;y&nbsp;)&nbsp;);<br></span><span style="color: #008080; ">105</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br></span><span style="color: #008080; ">106</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">for</span><span style="color: #000000; ">(&nbsp;</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;i&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">0</span><span style="color: #000000; ">;&nbsp;i&nbsp;</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">&nbsp;m;&nbsp;i</span><span style="color: #000000; ">++</span><span style="color: #000000; ">&nbsp;)<br></span><span style="color: #008080; ">107</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br></span><span style="color: #008080; ">108</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;scanf(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">%lf%lf</span><span style="color: #000000; ">"</span><span style="color: #000000; ">,</span><span style="color: #000000; ">&amp;</span><span style="color: #000000; ">x,</span><span style="color: #000000; ">&amp;</span><span style="color: #000000; ">y);<br></span><span style="color: #008080; ">109</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Q.push_back(&nbsp;point(&nbsp;x,&nbsp;y&nbsp;)&nbsp;);<br></span><span style="color: #008080; ">110</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br></span><span style="color: #008080; ">111</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ans&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;RC(&nbsp;);<br></span><span style="color: #008080; ">112</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">%.5lf\n</span><span style="color: #000000; ">"</span><span style="color: #000000; ">,ans);<br></span><span style="color: #008080; ">113</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;}<br></span><span style="color: #008080; ">114</span>&nbsp;<span style="color: #000000; ">}</span></span></div><br></div><img src ="http://www.cppblog.com/AmazingCaddy/aggbug/120158.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/AmazingCaddy/" target="_blank">AmazingCaddy</a> 2010-07-12 22:42 <a href="http://www.cppblog.com/AmazingCaddy/archive/2010/07/12/120158.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>2008-2009 world final F题 Deer-Proof Fence</title><link>http://www.cppblog.com/AmazingCaddy/archive/2010/06/03/117137.html</link><dc:creator>AmazingCaddy</dc:creator><author>AmazingCaddy</author><pubDate>Thu, 03 Jun 2010 12:47:00 GMT</pubDate><guid>http://www.cppblog.com/AmazingCaddy/archive/2010/06/03/117137.html</guid><wfw:comment>http://www.cppblog.com/AmazingCaddy/comments/117137.html</wfw:comment><comments>http://www.cppblog.com/AmazingCaddy/archive/2010/06/03/117137.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/AmazingCaddy/comments/commentRss/117137.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/AmazingCaddy/services/trackbacks/117137.html</trackback:ping><description><![CDATA[<a href="http://acmicpc-live-archive.uva.es/nuevoportal/"><u><font color=#0066cc>http://acmicpc-live-archive.uva.es/nuevoportal/</font></u></a><br><br>先预处理所有凸包，然后dp。<br><br>
<div style="BORDER-BOTTOM: #cccccc 1px solid; BORDER-LEFT: #cccccc 1px solid; PADDING-BOTTOM: 4px; BACKGROUND-COLOR: #eeeeee; PADDING-LEFT: 4px; WIDTH: 98%; PADDING-RIGHT: 5px; FONT-SIZE: 13px; WORD-BREAK: break-all; BORDER-TOP: #cccccc 1px solid; BORDER-RIGHT: #cccccc 1px solid; PADDING-TOP: 4px"><span style="COLOR: #008080">&nbsp;1</span><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/None.gif"><span style="COLOR: #000000">#include</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">iostream</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">&nbsp;2</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/None.gif">#include</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">cmath</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">&nbsp;3</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/None.gif">#include</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">algorithm</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">&nbsp;4</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/None.gif">#include</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">complex</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">&nbsp;5</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/None.gif">#include</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">vector</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">&nbsp;6</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/None.gif">#include</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">stdio.h</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">&nbsp;7</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/None.gif"></span><span style="COLOR: #0000ff">using</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">namespace</span><span style="COLOR: #000000">&nbsp;std;<br></span><span style="COLOR: #008080">&nbsp;8</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/None.gif">typedef&nbsp;complex</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #0000ff">double</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000">&nbsp;point;<br></span><span style="COLOR: #008080">&nbsp;9</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/None.gif"></span><span style="COLOR: #0000ff">const</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;maxn&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">530</span><span style="COLOR: #000000">;<br></span><span style="COLOR: #008080">10</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/None.gif"></span><span style="COLOR: #0000ff">const</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">double</span><span style="COLOR: #000000">&nbsp;eps&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;1e</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">8</span><span style="COLOR: #000000">;<br></span><span style="COLOR: #008080">11</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/None.gif"></span><span style="COLOR: #0000ff">const</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">double</span><span style="COLOR: #000000">&nbsp;inf&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;1e10;<br></span><span style="COLOR: #008080">12</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/None.gif"></span><span style="COLOR: #0000ff">const</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">double</span><span style="COLOR: #000000">&nbsp;pi&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;acos(&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1.0</span><span style="COLOR: #000000">&nbsp;);<br></span><span style="COLOR: #008080">13</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/None.gif"></span><span style="COLOR: #0000ff">double</span><span style="COLOR: #000000">&nbsp;dp[maxn];<br></span><span style="COLOR: #008080">14</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/None.gif"></span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;c[</span><span style="COLOR: #000000">10</span><span style="COLOR: #000000">];<br></span><span style="COLOR: #008080">15</span><span style="COLOR: #000000"><img id=Codehighlighter1_322_399_Open_Image onclick="this.style.display='none'; Codehighlighter1_322_399_Open_Text.style.display='none'; Codehighlighter1_322_399_Closed_Image.style.display='inline'; Codehighlighter1_322_399_Closed_Text.style.display='inline';" align=top src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif"><img style="DISPLAY: none" id=Codehighlighter1_322_399_Closed_Image onclick="this.style.display='none'; Codehighlighter1_322_399_Closed_Text.style.display='none'; Codehighlighter1_322_399_Open_Image.style.display='inline'; Codehighlighter1_322_399_Open_Text.style.display='inline';" align=top src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif"></span><span style="COLOR: #0000ff">bool</span><span style="COLOR: #000000">&nbsp;cmp(&nbsp;point&nbsp;p1,&nbsp;point&nbsp;p2&nbsp;)</span><span style="BORDER-BOTTOM: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BACKGROUND-COLOR: #ffffff; DISPLAY: none; BORDER-TOP: #808080 1px solid; BORDER-RIGHT: #808080 1px solid" id=Codehighlighter1_322_399_Closed_Text><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_322_399_Open_Text><span style="COLOR: #000000">{&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;real(p1)&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">&nbsp;real(p2)&nbsp;</span><span style="COLOR: #000000">||</span><span style="COLOR: #000000">&nbsp;real(p1)&nbsp;</span><span style="COLOR: #000000">==</span><span style="COLOR: #000000">&nbsp;real(p2)&nbsp;</span><span style="COLOR: #000000">&amp;&amp;</span><span style="COLOR: #000000">&nbsp;imag(p1)&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">&nbsp;imag(p2);&nbsp;}</span></span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">16</span><span style="COLOR: #000000"><img id=Codehighlighter1_439_473_Open_Image onclick="this.style.display='none'; Codehighlighter1_439_473_Open_Text.style.display='none'; Codehighlighter1_439_473_Closed_Image.style.display='inline'; Codehighlighter1_439_473_Closed_Text.style.display='inline';" align=top src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif"><img style="DISPLAY: none" id=Codehighlighter1_439_473_Closed_Image onclick="this.style.display='none'; Codehighlighter1_439_473_Closed_Text.style.display='none'; Codehighlighter1_439_473_Open_Image.style.display='inline'; Codehighlighter1_439_473_Open_Text.style.display='inline';" align=top src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif"></span><span style="COLOR: #0000ff">double</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">operator</span><span style="COLOR: #000000">^</span><span style="COLOR: #000000">(&nbsp;point&nbsp;p1,&nbsp;point&nbsp;p2&nbsp;)</span><span style="BORDER-BOTTOM: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BACKGROUND-COLOR: #ffffff; DISPLAY: none; BORDER-TOP: #808080 1px solid; BORDER-RIGHT: #808080 1px solid" id=Codehighlighter1_439_473_Closed_Text><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_439_473_Open_Text><span style="COLOR: #000000">{&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;imag(&nbsp;conj(&nbsp;p1&nbsp;)&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;p2&nbsp;);&nbsp;}</span></span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">17</span><span style="COLOR: #000000"><img id=Codehighlighter1_497_532_Open_Image onclick="this.style.display='none'; Codehighlighter1_497_532_Open_Text.style.display='none'; Codehighlighter1_497_532_Closed_Image.style.display='inline'; Codehighlighter1_497_532_Closed_Text.style.display='inline';" align=top src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif"><img style="DISPLAY: none" id=Codehighlighter1_497_532_Closed_Image onclick="this.style.display='none'; Codehighlighter1_497_532_Closed_Text.style.display='none'; Codehighlighter1_497_532_Open_Image.style.display='inline'; Codehighlighter1_497_532_Open_Text.style.display='inline';" align=top src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif"></span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;dblcmp(&nbsp;</span><span style="COLOR: #0000ff">double</span><span style="COLOR: #000000">&nbsp;x&nbsp;)</span><span style="BORDER-BOTTOM: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BACKGROUND-COLOR: #ffffff; DISPLAY: none; BORDER-TOP: #808080 1px solid; BORDER-RIGHT: #808080 1px solid" id=Codehighlighter1_497_532_Closed_Text><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_497_532_Open_Text><span style="COLOR: #000000">{&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;x&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">eps&nbsp;</span><span style="COLOR: #000000">?</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">&nbsp;:&nbsp;x&nbsp;</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000">&nbsp;eps&nbsp;;&nbsp;}</span></span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">18</span><span style="COLOR: #000000"><img id=Codehighlighter1_567_591_Open_Image onclick="this.style.display='none'; Codehighlighter1_567_591_Open_Text.style.display='none'; Codehighlighter1_567_591_Closed_Image.style.display='inline'; Codehighlighter1_567_591_Closed_Text.style.display='inline';" align=top src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif"><img style="DISPLAY: none" id=Codehighlighter1_567_591_Closed_Image onclick="this.style.display='none'; Codehighlighter1_567_591_Closed_Text.style.display='none'; Codehighlighter1_567_591_Open_Image.style.display='inline'; Codehighlighter1_567_591_Open_Text.style.display='inline';" align=top src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif"></span><span style="COLOR: #0000ff">double</span><span style="COLOR: #000000">&nbsp;minn(&nbsp;</span><span style="COLOR: #0000ff">double</span><span style="COLOR: #000000">&nbsp;x,&nbsp;</span><span style="COLOR: #0000ff">double</span><span style="COLOR: #000000">&nbsp;y&nbsp;)</span><span style="BORDER-BOTTOM: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BACKGROUND-COLOR: #ffffff; DISPLAY: none; BORDER-TOP: #808080 1px solid; BORDER-RIGHT: #808080 1px solid" id=Codehighlighter1_567_591_Closed_Text><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_567_591_Open_Text><span style="COLOR: #000000">{&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;x&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">&nbsp;y&nbsp;</span><span style="COLOR: #000000">?</span><span style="COLOR: #000000">&nbsp;x&nbsp;:&nbsp;y;&nbsp;}</span></span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">19</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/None.gif"></span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;convex_hull(&nbsp;vector</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">point</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">p,&nbsp;vector</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">point</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">poly&nbsp;)<br></span><span style="COLOR: #008080">20</span><span style="COLOR: #000000"><img id=Codehighlighter1_651_1114_Open_Image onclick="this.style.display='none'; Codehighlighter1_651_1114_Open_Text.style.display='none'; Codehighlighter1_651_1114_Closed_Image.style.display='inline'; Codehighlighter1_651_1114_Closed_Text.style.display='inline';" align=top src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif"><img style="DISPLAY: none" id=Codehighlighter1_651_1114_Closed_Image onclick="this.style.display='none'; Codehighlighter1_651_1114_Closed_Text.style.display='none'; Codehighlighter1_651_1114_Open_Image.style.display='inline'; Codehighlighter1_651_1114_Open_Text.style.display='inline';" align=top src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif"></span><span style="BORDER-BOTTOM: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BACKGROUND-COLOR: #ffffff; DISPLAY: none; BORDER-TOP: #808080 1px solid; BORDER-RIGHT: #808080 1px solid" id=Codehighlighter1_651_1114_Closed_Text><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_651_1114_Open_Text><span style="COLOR: #000000">{<br></span><span style="COLOR: #008080">21</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;sz&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">,&nbsp;i,&nbsp;k;<br></span><span style="COLOR: #008080">22</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;poly.clear(&nbsp;);<br></span><span style="COLOR: #008080">23</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;sort(&nbsp;p.begin(&nbsp;),&nbsp;p.end(&nbsp;),&nbsp;cmp&nbsp;);<br></span><span style="COLOR: #008080">24</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">(&nbsp;i&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;&nbsp;i&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">&nbsp;p.size(&nbsp;);&nbsp;</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">i&nbsp;)<br></span><span style="COLOR: #008080">25</span><span style="COLOR: #000000"><img id=Codehighlighter1_759_901_Open_Image onclick="this.style.display='none'; Codehighlighter1_759_901_Open_Text.style.display='none'; Codehighlighter1_759_901_Closed_Image.style.display='inline'; Codehighlighter1_759_901_Closed_Text.style.display='inline';" align=top src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="DISPLAY: none" id=Codehighlighter1_759_901_Closed_Image onclick="this.style.display='none'; Codehighlighter1_759_901_Closed_Text.style.display='none'; Codehighlighter1_759_901_Open_Image.style.display='inline'; Codehighlighter1_759_901_Open_Text.style.display='inline';" align=top src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="BORDER-BOTTOM: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BACKGROUND-COLOR: #ffffff; DISPLAY: none; BORDER-TOP: #808080 1px solid; BORDER-RIGHT: #808080 1px solid" id=Codehighlighter1_759_901_Closed_Text><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_759_901_Open_Text><span style="COLOR: #000000">{<br></span><span style="COLOR: #008080">26</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">while</span><span style="COLOR: #000000">(&nbsp;sz&nbsp;</span><span style="COLOR: #000000">&gt;=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">&amp;&amp;</span><span style="COLOR: #000000">&nbsp;dblcmp(&nbsp;poly[sz</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">]&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;p[i]&nbsp;</span><span style="COLOR: #000000">^</span><span style="COLOR: #000000">&nbsp;poly[sz</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">]&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;p[i]&nbsp;)&nbsp;</span><span style="COLOR: #000000">&lt;=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">&nbsp;)<br></span><span style="COLOR: #008080">27</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;poly.pop_back(&nbsp;),&nbsp;sz</span><span style="COLOR: #000000">--</span><span style="COLOR: #000000">;<br></span><span style="COLOR: #008080">28</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;poly.push_back(&nbsp;p[i]&nbsp;);<br></span><span style="COLOR: #008080">29</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sz</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">;<br></span><span style="COLOR: #008080">30</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif">&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">31</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;k&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;sz;<br></span><span style="COLOR: #008080">32</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">(&nbsp;i&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;p.size(&nbsp;)&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">;&nbsp;i&nbsp;</span><span style="COLOR: #000000">&gt;=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;&nbsp;i</span><span style="COLOR: #000000">--</span><span style="COLOR: #000000">&nbsp;)<br></span><span style="COLOR: #008080">33</span><span style="COLOR: #000000"><img id=Codehighlighter1_952_1093_Open_Image onclick="this.style.display='none'; Codehighlighter1_952_1093_Open_Text.style.display='none'; Codehighlighter1_952_1093_Closed_Image.style.display='inline'; Codehighlighter1_952_1093_Closed_Text.style.display='inline';" align=top src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="DISPLAY: none" id=Codehighlighter1_952_1093_Closed_Image onclick="this.style.display='none'; Codehighlighter1_952_1093_Closed_Text.style.display='none'; Codehighlighter1_952_1093_Open_Image.style.display='inline'; Codehighlighter1_952_1093_Open_Text.style.display='inline';" align=top src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="BORDER-BOTTOM: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BACKGROUND-COLOR: #ffffff; DISPLAY: none; BORDER-TOP: #808080 1px solid; BORDER-RIGHT: #808080 1px solid" id=Codehighlighter1_952_1093_Closed_Text><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_952_1093_Open_Text><span style="COLOR: #000000">{<br></span><span style="COLOR: #008080">34</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">while</span><span style="COLOR: #000000">(&nbsp;sz&nbsp;</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000">&nbsp;k&nbsp;</span><span style="COLOR: #000000">&amp;&amp;</span><span style="COLOR: #000000">&nbsp;dblcmp(&nbsp;poly[sz</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">]&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;p[i]&nbsp;</span><span style="COLOR: #000000">^</span><span style="COLOR: #000000">&nbsp;poly[sz</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">]&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;p[i]&nbsp;)&nbsp;</span><span style="COLOR: #000000">&lt;=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">&nbsp;)<br></span><span style="COLOR: #008080">35</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;poly.pop_back(&nbsp;),&nbsp;sz</span><span style="COLOR: #000000">--</span><span style="COLOR: #000000">;<br></span><span style="COLOR: #008080">36</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;poly.push_back(&nbsp;p[i]&nbsp;);<br></span><span style="COLOR: #008080">37</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sz</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">;<br></span><span style="COLOR: #008080">38</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif">&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">39</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;poly.pop_back(&nbsp;);<br></span><span style="COLOR: #008080">40</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif">}</span></span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">41</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/None.gif"><br></span><span style="COLOR: #008080">42</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/None.gif"></span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;main(&nbsp;)<br></span><span style="COLOR: #008080">43</span><span style="COLOR: #000000"><img id=Codehighlighter1_1129_1998_Open_Image onclick="this.style.display='none'; Codehighlighter1_1129_1998_Open_Text.style.display='none'; Codehighlighter1_1129_1998_Closed_Image.style.display='inline'; Codehighlighter1_1129_1998_Closed_Text.style.display='inline';" align=top src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif"><img style="DISPLAY: none" id=Codehighlighter1_1129_1998_Closed_Image onclick="this.style.display='none'; Codehighlighter1_1129_1998_Closed_Text.style.display='none'; Codehighlighter1_1129_1998_Open_Image.style.display='inline'; Codehighlighter1_1129_1998_Open_Text.style.display='inline';" align=top src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif"></span><span style="BORDER-BOTTOM: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BACKGROUND-COLOR: #ffffff; DISPLAY: none; BORDER-TOP: #808080 1px solid; BORDER-RIGHT: #808080 1px solid" id=Codehighlighter1_1129_1998_Closed_Text><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_1129_1998_Open_Text><span style="COLOR: #000000">{<br></span><span style="COLOR: #008080">44</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">double</span><span style="COLOR: #000000">&nbsp;a[maxn],&nbsp;x,&nbsp;y;<br></span><span style="COLOR: #008080">45</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;i,&nbsp;j,&nbsp;q,&nbsp;n,&nbsp;m,&nbsp;len,&nbsp;k&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">,&nbsp;sz;<br></span><span style="COLOR: #008080">46</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;vector</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">point</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000">&nbsp;p,&nbsp;poly,&nbsp;poly1;<br></span><span style="COLOR: #008080">47</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">while</span><span style="COLOR: #000000">(&nbsp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">&nbsp;)<br></span><span style="COLOR: #008080">48</span><span style="COLOR: #000000"><img id=Codehighlighter1_1234_1985_Open_Image onclick="this.style.display='none'; Codehighlighter1_1234_1985_Open_Text.style.display='none'; Codehighlighter1_1234_1985_Closed_Image.style.display='inline'; Codehighlighter1_1234_1985_Closed_Text.style.display='inline';" align=top src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="DISPLAY: none" id=Codehighlighter1_1234_1985_Closed_Image onclick="this.style.display='none'; Codehighlighter1_1234_1985_Closed_Text.style.display='none'; Codehighlighter1_1234_1985_Open_Image.style.display='inline'; Codehighlighter1_1234_1985_Open_Text.style.display='inline';" align=top src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="BORDER-BOTTOM: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BACKGROUND-COLOR: #ffffff; DISPLAY: none; BORDER-TOP: #808080 1px solid; BORDER-RIGHT: #808080 1px solid" id=Codehighlighter1_1234_1985_Closed_Text><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_1234_1985_Open_Text><span style="COLOR: #000000">{<br></span><span style="COLOR: #008080">49</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;p.clear(&nbsp;);<br></span><span style="COLOR: #008080">50</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;scanf(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">%d%d</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">n,</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">m);<br></span><span style="COLOR: #008080">51</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(&nbsp;n&nbsp;</span><span style="COLOR: #000000">==</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">&amp;&amp;</span><span style="COLOR: #000000">&nbsp;m&nbsp;</span><span style="COLOR: #000000">==</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">&nbsp;)</span><span style="COLOR: #0000ff">break</span><span style="COLOR: #000000">;<br></span><span style="COLOR: #008080">52</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">(&nbsp;i&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;&nbsp;i&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">&nbsp;n;&nbsp;i</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">&nbsp;)<br></span><span style="COLOR: #008080">53</span><span style="COLOR: #000000"><img id=Codehighlighter1_1333_1396_Open_Image onclick="this.style.display='none'; Codehighlighter1_1333_1396_Open_Text.style.display='none'; Codehighlighter1_1333_1396_Closed_Image.style.display='inline'; Codehighlighter1_1333_1396_Closed_Text.style.display='inline';" align=top src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="DISPLAY: none" id=Codehighlighter1_1333_1396_Closed_Image onclick="this.style.display='none'; Codehighlighter1_1333_1396_Closed_Text.style.display='none'; Codehighlighter1_1333_1396_Open_Image.style.display='inline'; Codehighlighter1_1333_1396_Open_Text.style.display='inline';" align=top src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="BORDER-BOTTOM: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BACKGROUND-COLOR: #ffffff; DISPLAY: none; BORDER-TOP: #808080 1px solid; BORDER-RIGHT: #808080 1px solid" id=Codehighlighter1_1333_1396_Closed_Text><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_1333_1396_Open_Text><span style="COLOR: #000000">{<br></span><span style="COLOR: #008080">54</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;scanf(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">%lf%lf</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">x,</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">y);<br></span><span style="COLOR: #008080">55</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;p.push_back(&nbsp;point(&nbsp;x,&nbsp;y&nbsp;)&nbsp;);<br></span><span style="COLOR: #008080">56</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">57</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;len&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">&lt;&lt;</span><span style="COLOR: #000000">&nbsp;n;<br></span><span style="COLOR: #008080">58</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">(&nbsp;i&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">;&nbsp;i&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">&nbsp;len;&nbsp;i</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">&nbsp;)<br></span><span style="COLOR: #008080">59</span><span style="COLOR: #000000"><img id=Codehighlighter1_1445_1740_Open_Image onclick="this.style.display='none'; Codehighlighter1_1445_1740_Open_Text.style.display='none'; Codehighlighter1_1445_1740_Closed_Image.style.display='inline'; Codehighlighter1_1445_1740_Closed_Text.style.display='inline';" align=top src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="DISPLAY: none" id=Codehighlighter1_1445_1740_Closed_Image onclick="this.style.display='none'; Codehighlighter1_1445_1740_Closed_Text.style.display='none'; Codehighlighter1_1445_1740_Open_Image.style.display='inline'; Codehighlighter1_1445_1740_Open_Text.style.display='inline';" align=top src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="BORDER-BOTTOM: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BACKGROUND-COLOR: #ffffff; DISPLAY: none; BORDER-TOP: #808080 1px solid; BORDER-RIGHT: #808080 1px solid" id=Codehighlighter1_1445_1740_Closed_Text><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_1445_1740_Open_Text><span style="COLOR: #000000">{<br></span><span style="COLOR: #008080">60</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;poly.clear(&nbsp;);<br></span><span style="COLOR: #008080">61</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;poly1.clear(&nbsp;);<br></span><span style="COLOR: #008080">62</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;j&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;i;&nbsp;q&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;<br></span><span style="COLOR: #008080">63</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">while</span><span style="COLOR: #000000">(&nbsp;j&nbsp;)<br></span><span style="COLOR: #008080">64</span><span style="COLOR: #000000"><img id=Codehighlighter1_1518_1586_Open_Image onclick="this.style.display='none'; Codehighlighter1_1518_1586_Open_Text.style.display='none'; Codehighlighter1_1518_1586_Closed_Image.style.display='inline'; Codehighlighter1_1518_1586_Closed_Text.style.display='inline';" align=top src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="DISPLAY: none" id=Codehighlighter1_1518_1586_Closed_Image onclick="this.style.display='none'; Codehighlighter1_1518_1586_Closed_Text.style.display='none'; Codehighlighter1_1518_1586_Open_Image.style.display='inline'; Codehighlighter1_1518_1586_Open_Text.style.display='inline';" align=top src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="BORDER-BOTTOM: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BACKGROUND-COLOR: #ffffff; DISPLAY: none; BORDER-TOP: #808080 1px solid; BORDER-RIGHT: #808080 1px solid" id=Codehighlighter1_1518_1586_Closed_Text><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_1518_1586_Open_Text><span style="COLOR: #000000">{<br></span><span style="COLOR: #008080">65</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(&nbsp;j&nbsp;</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">&nbsp;)&nbsp;poly.push_back(&nbsp;p[q]&nbsp;);<br></span><span style="COLOR: #008080">66</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;q</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">;&nbsp;<br></span><span style="COLOR: #008080">67</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;j&nbsp;</span><span style="COLOR: #000000">&gt;&gt;=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">;<br></span><span style="COLOR: #008080">68</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">69</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;convex_hull(&nbsp;poly,&nbsp;poly1&nbsp;);<br></span><span style="COLOR: #008080">70</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sz&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;poly1.size(&nbsp;);<br></span><span style="COLOR: #008080">71</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">(&nbsp;a[i]&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;pi&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;m,&nbsp;j&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;&nbsp;j&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">&nbsp;sz;&nbsp;j</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">&nbsp;)<br></span><span style="COLOR: #008080">72</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a[i]&nbsp;</span><span style="COLOR: #000000">+=</span><span style="COLOR: #000000">&nbsp;abs(&nbsp;poly1[j]&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;poly1[(j</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">)</span><span style="COLOR: #000000">%</span><span style="COLOR: #000000">sz]&nbsp;);<br></span><span style="COLOR: #008080">73</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">74</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">(&nbsp;dp[</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">]&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0.0</span><span style="COLOR: #000000">,&nbsp;i&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">;&nbsp;i&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">&nbsp;len;&nbsp;i</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">&nbsp;)<br></span><span style="COLOR: #008080">75</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dp[i]&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;inf;<br></span><span style="COLOR: #008080">76</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">(&nbsp;i&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;&nbsp;i&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">&nbsp;len;&nbsp;i</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">&nbsp;)<br></span><span style="COLOR: #008080">77</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">(&nbsp;j&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">;&nbsp;j&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">&nbsp;len;&nbsp;j</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">&nbsp;)<br></span><span style="COLOR: #008080">78</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(&nbsp;(&nbsp;j&nbsp;</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">&nbsp;i&nbsp;)&nbsp;</span><span style="COLOR: #000000">==</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">&nbsp;)<br></span><span style="COLOR: #008080">79</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dp[i</span><span style="COLOR: #000000">|</span><span style="COLOR: #000000">j]&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;minn(&nbsp;dp[i]&nbsp;</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">&nbsp;a[j],&nbsp;dp[i</span><span style="COLOR: #000000">|</span><span style="COLOR: #000000">j]&nbsp;);<br></span><span style="COLOR: #008080">80</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Case&nbsp;%d:&nbsp;length&nbsp;=&nbsp;%.2lf\n</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,k</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">,dp[len</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">]);<br></span><span style="COLOR: #008080">81</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif">&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">82</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;<br></span><span style="COLOR: #008080">83</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif">}</span></span><span style="COLOR: #000000">&nbsp;<br></span><span style="COLOR: #008080">84</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/None.gif"></span></div>
<img src ="http://www.cppblog.com/AmazingCaddy/aggbug/117137.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/AmazingCaddy/" target="_blank">AmazingCaddy</a> 2010-06-03 20:47 <a href="http://www.cppblog.com/AmazingCaddy/archive/2010/06/03/117137.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>fzu 1918 John’s Direction</title><link>http://www.cppblog.com/AmazingCaddy/archive/2010/06/01/116851.html</link><dc:creator>AmazingCaddy</dc:creator><author>AmazingCaddy</author><pubDate>Mon, 31 May 2010 17:27:00 GMT</pubDate><guid>http://www.cppblog.com/AmazingCaddy/archive/2010/06/01/116851.html</guid><wfw:comment>http://www.cppblog.com/AmazingCaddy/comments/116851.html</wfw:comment><comments>http://www.cppblog.com/AmazingCaddy/archive/2010/06/01/116851.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/AmazingCaddy/comments/commentRss/116851.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/AmazingCaddy/services/trackbacks/116851.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: http://acm.fzu.edu.cn/problem.php?pid=19182010福州邀请赛 J 题#include&lt;iostream&gt;#include&lt;stdio.h&gt;#include&lt;algorithm&gt;#include&lt;cmath&gt;#include&lt;complex&gt;using&nbsp;namespace&nbsp;s...&nbsp;&nbsp;<a href='http://www.cppblog.com/AmazingCaddy/archive/2010/06/01/116851.html'>阅读全文</a><img src ="http://www.cppblog.com/AmazingCaddy/aggbug/116851.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/AmazingCaddy/" target="_blank">AmazingCaddy</a> 2010-06-01 01:27 <a href="http://www.cppblog.com/AmazingCaddy/archive/2010/06/01/116851.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>eoj 1990 Find the Point</title><link>http://www.cppblog.com/AmazingCaddy/archive/2010/05/14/115412.html</link><dc:creator>AmazingCaddy</dc:creator><author>AmazingCaddy</author><pubDate>Fri, 14 May 2010 15:11:00 GMT</pubDate><guid>http://www.cppblog.com/AmazingCaddy/archive/2010/05/14/115412.html</guid><wfw:comment>http://www.cppblog.com/AmazingCaddy/comments/115412.html</wfw:comment><comments>http://www.cppblog.com/AmazingCaddy/archive/2010/05/14/115412.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/AmazingCaddy/comments/commentRss/115412.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/AmazingCaddy/services/trackbacks/115412.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: http://www.acm.cs.ecnu.edu.cn/problem.php?problemid=1990&nbsp;&nbsp; 题目的意思是求出一些点，使得这些点到给定的一些直线的距离相等，只有一个点的时候输出该点，多个点那么输出"Many"，没有符合的点那么输出"None"，大致的做法是：先用角平分线求出一定量的点（最多4个），然后枚举检查这些点，精度有点搞！！！#include&...&nbsp;&nbsp;<a href='http://www.cppblog.com/AmazingCaddy/archive/2010/05/14/115412.html'>阅读全文</a><img src ="http://www.cppblog.com/AmazingCaddy/aggbug/115412.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/AmazingCaddy/" target="_blank">AmazingCaddy</a> 2010-05-14 23:11 <a href="http://www.cppblog.com/AmazingCaddy/archive/2010/05/14/115412.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>hdu 3408 Elune’s Arrow</title><link>http://www.cppblog.com/AmazingCaddy/archive/2010/05/13/115244.html</link><dc:creator>AmazingCaddy</dc:creator><author>AmazingCaddy</author><pubDate>Wed, 12 May 2010 16:06:00 GMT</pubDate><guid>http://www.cppblog.com/AmazingCaddy/archive/2010/05/13/115244.html</guid><wfw:comment>http://www.cppblog.com/AmazingCaddy/comments/115244.html</wfw:comment><comments>http://www.cppblog.com/AmazingCaddy/archive/2010/05/13/115244.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/AmazingCaddy/comments/commentRss/115244.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/AmazingCaddy/services/trackbacks/115244.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: http://acm.hdu.edu.cn/showproblem.php?pid=3408浙江理工邀请赛D题，比赛的时候没有搞出来，赛后终于一次AC了，题目其实还是比较简单的，模拟一下就可以了。#include&lt;iostream&gt;#include&lt;cmath&gt;#include&lt;complex&gt;#include&lt;algorithm&gt;using&n...&nbsp;&nbsp;<a href='http://www.cppblog.com/AmazingCaddy/archive/2010/05/13/115244.html'>阅读全文</a><img src ="http://www.cppblog.com/AmazingCaddy/aggbug/115244.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/AmazingCaddy/" target="_blank">AmazingCaddy</a> 2010-05-13 00:06 <a href="http://www.cppblog.com/AmazingCaddy/archive/2010/05/13/115244.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>poj 3525 Most Distant Point from the Sea</title><link>http://www.cppblog.com/AmazingCaddy/archive/2010/05/03/114218.html</link><dc:creator>AmazingCaddy</dc:creator><author>AmazingCaddy</author><pubDate>Sun, 02 May 2010 16:41:00 GMT</pubDate><guid>http://www.cppblog.com/AmazingCaddy/archive/2010/05/03/114218.html</guid><wfw:comment>http://www.cppblog.com/AmazingCaddy/comments/114218.html</wfw:comment><comments>http://www.cppblog.com/AmazingCaddy/archive/2010/05/03/114218.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/AmazingCaddy/comments/commentRss/114218.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/AmazingCaddy/services/trackbacks/114218.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: http://acm.pku.edu.cn/JudgeOnline/problem?id=3525半平面交#include&lt;iostream&gt;#include&lt;deque&gt;#include&lt;algorithm&gt;#include&lt;cmath&gt;#include&lt;complex&gt;#include&lt;cstdio&gt;#include&...&nbsp;&nbsp;<a href='http://www.cppblog.com/AmazingCaddy/archive/2010/05/03/114218.html'>阅读全文</a><img src ="http://www.cppblog.com/AmazingCaddy/aggbug/114218.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/AmazingCaddy/" target="_blank">AmazingCaddy</a> 2010-05-03 00:41 <a href="http://www.cppblog.com/AmazingCaddy/archive/2010/05/03/114218.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>hdu_3372 Build Fences</title><link>http://www.cppblog.com/AmazingCaddy/archive/2010/04/08/111912.html</link><dc:creator>AmazingCaddy</dc:creator><author>AmazingCaddy</author><pubDate>Wed, 07 Apr 2010 17:04:00 GMT</pubDate><guid>http://www.cppblog.com/AmazingCaddy/archive/2010/04/08/111912.html</guid><wfw:comment>http://www.cppblog.com/AmazingCaddy/comments/111912.html</wfw:comment><comments>http://www.cppblog.com/AmazingCaddy/archive/2010/04/08/111912.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/AmazingCaddy/comments/commentRss/111912.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/AmazingCaddy/services/trackbacks/111912.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: http://acm.hdu.edu.cn/showproblem.php?pid=3372太晚了，先贴代码。。。&nbsp;&nbsp;1#include&lt;iostream&gt;&nbsp;&nbsp;2#include&lt;cmath&gt;&nbsp;&nbsp;3#include&lt;complex&gt;&nbsp;&nbsp;4#include&lt;algorit...&nbsp;&nbsp;<a href='http://www.cppblog.com/AmazingCaddy/archive/2010/04/08/111912.html'>阅读全文</a><img src ="http://www.cppblog.com/AmazingCaddy/aggbug/111912.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/AmazingCaddy/" target="_blank">AmazingCaddy</a> 2010-04-08 01:04 <a href="http://www.cppblog.com/AmazingCaddy/archive/2010/04/08/111912.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>