﻿<?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++博客-岁月的童话</title><link>http://www.cppblog.com/Wangzhihao/</link><description>在乎当前这一秒，不要遗忘自己的幸运</description><language>zh-cn</language><lastBuildDate>Wed, 08 Apr 2026 23:29:27 GMT</lastBuildDate><pubDate>Wed, 08 Apr 2026 23:29:27 GMT</pubDate><ttl>60</ttl><item><title>求两个正规式之间的编辑距离</title><link>http://www.cppblog.com/Wangzhihao/archive/2011/01/11/138338.html</link><dc:creator>王之昊</dc:creator><author>王之昊</author><pubDate>Tue, 11 Jan 2011 08:21:00 GMT</pubDate><guid>http://www.cppblog.com/Wangzhihao/archive/2011/01/11/138338.html</guid><wfw:comment>http://www.cppblog.com/Wangzhihao/comments/138338.html</wfw:comment><comments>http://www.cppblog.com/Wangzhihao/archive/2011/01/11/138338.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/Wangzhihao/comments/commentRss/138338.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/Wangzhihao/services/trackbacks/138338.html</trackback:ping><description><![CDATA[
<h1 align="center" style="text-align:center"><span lang="ZH-CN" style="font-family:
&quot;微软雅黑&quot;,&quot;sans-serif&quot;;color:windowtext">求两个正规式之间的编辑距离</span><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;;color:windowtext"><o:p></o:p></span></h1>

<h1 align="right" style="text-align:right"><span lang="ZH-CN" style="font-size:
10.0pt;line-height:115%;font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;;color:windowtext;
font-weight:normal;mso-bidi-font-weight:bold">正规式与编辑距离都是常见知识，如果不熟悉请见原题</span><sup><span style="font-size:10.0pt;line-height:115%;font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;;
color:windowtext;font-weight:normal;mso-bidi-font-weight:bold">[1]</span></sup><span style="font-size:10.0pt;line-height:115%;font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;;
color:windowtext;font-weight:normal;mso-bidi-font-weight:bold"><o:p></o:p></span></h1>

<p class="MsoNormal" style="text-indent:.3in"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;"><o:p>&nbsp;</o:p></span></p>

<p class="MsoNormal" style="text-indent:.3in"><span lang="ZH-CN" style="font-family:
&quot;微软雅黑&quot;,&quot;sans-serif&quot;">两个字符串之间的编辑距离的经典解法是动态规划。然而正规式可能包含无穷多个字符串。 不好将它转化到两字符串的编辑距离上。另外一个问题，首先要有一种能够识别正规式的方法，就像进行表达式计算时，用递归下降方法来识别就很顺手。</span><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;"><o:p></o:p></span></p>

<p class="MsoNormal" style="text-indent:.3in"><span lang="ZH-CN" style="font-family:
&quot;微软雅黑&quot;,&quot;sans-serif&quot;">一时之间想不起用什么来表示正规式，后来看到解题报告<sup> </sup></span><sup><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">[2] </span></sup><span lang="ZH-CN" style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">才有恍然大悟的感觉，用一个</span><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">NFA<sup>[3]</sup><span lang="ZH-CN">来表示正规式（编译原理课上学过的，还是重点）。这样状态非常的清晰。</span><o:p></o:p></span></p>

<p class="MsoNormal" style="text-indent:.3in"><span lang="ZH-CN" style="font-family:
&quot;微软雅黑&quot;,&quot;sans-serif&quot;">首先将正规式转换成</span><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">NFA<span lang="ZH-CN">的形式，这样两个正规式，就变成了两个</span>NFA<span lang="ZH-CN">。设</span>&lt;x , y&gt;<span lang="ZH-CN">表示当前匹配到第一个</span>NFA<span lang="ZH-CN">的</span>x<span lang="ZH-CN">状态，第二个</span>NFA<span lang="ZH-CN">的</span>y<span lang="ZH-CN">状态所消耗的当前最少代价。对于当前的状态</span>&lt;s1, s2&gt;<span lang="ZH-CN">寻找他所有的后继</span>&lt;t1, t2&gt;<span lang="ZH-CN">，如果发现能够更新后继</span>&lt;t1,
t2&gt;,<span lang="ZH-CN">那么更新它，并且将它入队，用于更新其他的状态。当队列里空了时候，那么就求到了最小编辑距离。</span><o:p></o:p></span></p>

<p class="MsoNormal" style="text-indent:.3in"><span lang="ZH-CN" style="font-family:
&quot;微软雅黑&quot;,&quot;sans-serif&quot;">这里有个小技巧，就是标记当前状态是否已经在队列中，防止队列中出现重复状态。具体实现可以参考</span><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">UESTC_Melody<span lang="ZH-CN">的代码</span><sup>[4]</sup><span lang="ZH-CN">，写的非常优美。</span><o:p></o:p></span></p>

<p class="MsoNormal"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;"><o:p>&nbsp;</o:p></span></p>

<p class="MsoNormal" style="text-indent:.3in"><span lang="ZH-CN" style="font-family:
&quot;微软雅黑&quot;,&quot;sans-serif&quot;">引用</span><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;"><o:p></o:p></span></p>

<p class="MsoNormal" style="text-indent:.3in"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">[1]<a href="http://acmicpc-live-archive.uva.es/nuevoportal/data/problem.php?p=5109"><span style="color:windowtext;text-decoration:none;text-underline:none">http://acmicpc-live-archive.uva.es/nuevoportal/data/problem.php?p=5109</span></a><o:p></o:p></span></p>

<p class="MsoNormal" style="text-indent:.3in"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">[2]
<a href="http://icpc.amrita.ac.in/2010/images/solution_logic.pdf"><span style="color:windowtext;text-decoration:none;text-underline:none">http://icpc.amrita.ac.in/2010/images/solution_logic.pdf</span></a><o:p></o:p></span></p>

<p class="MsoNormal" style="text-indent:.3in"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">[3]
<a href="http://en.wikipedia.org/wiki/Nondeterministic_finite_state_machine"><span style="color:windowtext;text-decoration:none;text-underline:none">http://en.wikipedia.org/wiki/Nondeterministic_finite_state_machine</span></a><o:p></o:p></span></p>

<p class="MsoNormal" style="text-indent:.3in"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;">[4]
<a href="http://acm.hust.edu.cn:8080/judge/problem/viewSource.action?id=56951"><span style="color:windowtext;text-decoration:none;text-underline:none">http://acm.hust.edu.cn:8080/judge/problem/viewSource.action?id=56951</span></a><o:p></o:p></span></p>
<img src ="http://www.cppblog.com/Wangzhihao/aggbug/138338.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/Wangzhihao/" target="_blank">王之昊</a> 2011-01-11 16:21 <a href="http://www.cppblog.com/Wangzhihao/archive/2011/01/11/138338.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>开始阅读 using OpenMP </title><link>http://www.cppblog.com/Wangzhihao/archive/2010/12/27/137572.html</link><dc:creator>王之昊</dc:creator><author>王之昊</author><pubDate>Mon, 27 Dec 2010 10:27:00 GMT</pubDate><guid>http://www.cppblog.com/Wangzhihao/archive/2010/12/27/137572.html</guid><wfw:comment>http://www.cppblog.com/Wangzhihao/comments/137572.html</wfw:comment><comments>http://www.cppblog.com/Wangzhihao/archive/2010/12/27/137572.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/Wangzhihao/comments/commentRss/137572.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/Wangzhihao/services/trackbacks/137572.html</trackback:ping><description><![CDATA[<span style="WIDOWS: 2; TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: medium 微软雅黑; WHITE-SPACE: normal; ORPHANS: 2; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" class=Apple-style-span>OpenMP官方推荐的一本教程。<br>下载地址为<a href="http://www.ppurl.com/2008/12/using-openmp-portable-shared-memory-parallel-programming.html"><u><font color=#0000ff size=3 face="Times New Roman">http://www.ppurl.com/2008/12/using-openmp-portable-shared-memory-parallel-programming.html</font></u></a><br><br>看这本书的目的是想了解如何写一个并行程序。只有300来页，给自己一个星期大概浏览一遍，对于这种语言类的书一个星期就够了。一天50页。</span>
<img src ="http://www.cppblog.com/Wangzhihao/aggbug/137572.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/Wangzhihao/" target="_blank">王之昊</a> 2010-12-27 18:27 <a href="http://www.cppblog.com/Wangzhihao/archive/2010/12/27/137572.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>最后的区域赛</title><link>http://www.cppblog.com/Wangzhihao/archive/2010/11/24/134495.html</link><dc:creator>王之昊</dc:creator><author>王之昊</author><pubDate>Wed, 24 Nov 2010 05:16:00 GMT</pubDate><guid>http://www.cppblog.com/Wangzhihao/archive/2010/11/24/134495.html</guid><wfw:comment>http://www.cppblog.com/Wangzhihao/comments/134495.html</wfw:comment><comments>http://www.cppblog.com/Wangzhihao/archive/2010/11/24/134495.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cppblog.com/Wangzhihao/comments/commentRss/134495.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/Wangzhihao/services/trackbacks/134495.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 福州赛区总结&nbsp;&nbsp;<a href='http://www.cppblog.com/Wangzhihao/archive/2010/11/24/134495.html'>阅读全文</a><img src ="http://www.cppblog.com/Wangzhihao/aggbug/134495.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/Wangzhihao/" target="_blank">王之昊</a> 2010-11-24 13:16 <a href="http://www.cppblog.com/Wangzhihao/archive/2010/11/24/134495.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>精度小技巧</title><link>http://www.cppblog.com/Wangzhihao/archive/2010/08/20/124105.html</link><dc:creator>王之昊</dc:creator><author>王之昊</author><pubDate>Fri, 20 Aug 2010 08:25:00 GMT</pubDate><guid>http://www.cppblog.com/Wangzhihao/archive/2010/08/20/124105.html</guid><wfw:comment>http://www.cppblog.com/Wangzhihao/comments/124105.html</wfw:comment><comments>http://www.cppblog.com/Wangzhihao/archive/2010/08/20/124105.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/Wangzhihao/comments/commentRss/124105.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/Wangzhihao/services/trackbacks/124105.html</trackback:ping><description><![CDATA[1.在做多边形切割时，常常先加一个框，框不宜加的过大，比如eps=1e-8，那么框最大不要超过1e7，保证他们的精度之和能够保证在15位之内。这样可以防止在运算过程中出现舍入误差。<br><br>2 double的范围是 -1.7*10^(-308) ~ 1.7 * 10^308。超过此范围，可以通过储存他们的指数来保证精度。<br><br><img src ="http://www.cppblog.com/Wangzhihao/aggbug/124105.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/Wangzhihao/" target="_blank">王之昊</a> 2010-08-20 16:25 <a href="http://www.cppblog.com/Wangzhihao/archive/2010/08/20/124105.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>旋转</title><link>http://www.cppblog.com/Wangzhihao/archive/2010/07/25/121236.html</link><dc:creator>王之昊</dc:creator><author>王之昊</author><pubDate>Sun, 25 Jul 2010 04:42:00 GMT</pubDate><guid>http://www.cppblog.com/Wangzhihao/archive/2010/07/25/121236.html</guid><wfw:comment>http://www.cppblog.com/Wangzhihao/comments/121236.html</wfw:comment><comments>http://www.cppblog.com/Wangzhihao/archive/2010/07/25/121236.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/Wangzhihao/comments/commentRss/121236.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/Wangzhihao/services/trackbacks/121236.html</trackback:ping><description><![CDATA[旋转<br><img src ="http://www.cppblog.com/Wangzhihao/aggbug/121236.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/Wangzhihao/" target="_blank">王之昊</a> 2010-07-25 12:42 <a href="http://www.cppblog.com/Wangzhihao/archive/2010/07/25/121236.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>单调性</title><link>http://www.cppblog.com/Wangzhihao/archive/2010/07/04/119318.html</link><dc:creator>王之昊</dc:creator><author>王之昊</author><pubDate>Sun, 04 Jul 2010 14:33:00 GMT</pubDate><guid>http://www.cppblog.com/Wangzhihao/archive/2010/07/04/119318.html</guid><wfw:comment>http://www.cppblog.com/Wangzhihao/comments/119318.html</wfw:comment><comments>http://www.cppblog.com/Wangzhihao/archive/2010/07/04/119318.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/Wangzhihao/comments/commentRss/119318.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/Wangzhihao/services/trackbacks/119318.html</trackback:ping><description><![CDATA[http://acm.pku.edu.cn/JudgeOnline/problem?id=1259 <br>
the picnic<br>
<br><span style="font-family: '宋体'; font-size: 10.5pt;"><font face="Calibri">POJ2823<br><br>hdu3401<br><br>http://202.120.80.191/state.php?problemid=1016<br>best cow fence<br></font></span> <img src ="http://www.cppblog.com/Wangzhihao/aggbug/119318.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/Wangzhihao/" target="_blank">王之昊</a> 2010-07-04 22:33 <a href="http://www.cppblog.com/Wangzhihao/archive/2010/07/04/119318.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Stars 坐标旋转</title><link>http://www.cppblog.com/Wangzhihao/archive/2010/07/03/119236.html</link><dc:creator>王之昊</dc:creator><author>王之昊</author><pubDate>Sat, 03 Jul 2010 03:00:00 GMT</pubDate><guid>http://www.cppblog.com/Wangzhihao/archive/2010/07/03/119236.html</guid><wfw:comment>http://www.cppblog.com/Wangzhihao/comments/119236.html</wfw:comment><comments>http://www.cppblog.com/Wangzhihao/archive/2010/07/03/119236.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/Wangzhihao/comments/commentRss/119236.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/Wangzhihao/services/trackbacks/119236.html</trackback:ping><description><![CDATA[<pre><br></pre>
<div style="text-align: center; font-size: 24pt;"><a href="http://acm.pku.edu.cn/JudgeOnline/problem?id=1133">Stars</a><br><span style="font-size: 18pt;">
<div style="text-align: left;"><span style="font-family: 微软雅黑; font-size: 12pt;"><br><br>题意：</span><span style="font-size: 12pt; font-family: 微软雅黑;">给你一副星座地图，还有若干星座，对于每个星座，寻找他在地图中出现的次数。其中允许旋转和缩放，若某个星座在地图上的两个映射A，B所包含的点集是一样的，则A，B算一次。<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 大致思路是取出星座的第一，第二点，然后枚举这两个点在地图中的位置，将其他的点旋转过去检查是否合法。计算出次数S。<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 然后在类似的计算出星座在自身中重复出现的次数B，最后答案为S / B<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>在具体实现上有几个问题：<br><br></span>
<ul style="font-family: 微软雅黑;">
    <li><span style="font-size: 12pt;">取整函数的写法：</span></li>
</ul>
<span style="font-size: 12pt; font-family: 微软雅黑;">double round(double d)</span><br style="font-family: 微软雅黑;"><span style="font-size: 12pt; font-family: 微软雅黑;">{<br>&nbsp;&nbsp;&nbsp; return floor(d + 0.5);<br>}</span><br style="font-family: 微软雅黑;">
<ul style="font-family: 微软雅黑;">
    <li><span style="font-size: 12pt;">最开始的速度很慢，分析原因有：</span></li>
</ul>
<span style="font-size: 14pt; font-family: 微软雅黑;">
<ol>
    <li><span style="font-size: 12pt;">用了vector，导致变慢， vector确实是慢了，改成数组 1000ms--&gt;204ms</span></li>
    <li><span style="font-size: 12pt;">用了map和set导致变慢，将map改成手写的hash，204ms--&gt;110ms</span></li>
</ol>
</span>
<ul style="font-family: 微软雅黑;"></ul>
    <ul>
        <li><span style="font-size: 12pt; font-family: 微软雅黑;">遇到段错误，结果发现是数组越界，数组越界有上越界（比如数组开小了）和下越界（比如下标为负）</span><br></li>
    </ul>
    </div>
    </span></div><img src ="http://www.cppblog.com/Wangzhihao/aggbug/119236.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/Wangzhihao/" target="_blank">王之昊</a> 2010-07-03 11:00 <a href="http://www.cppblog.com/Wangzhihao/archive/2010/07/03/119236.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Deformed Wheel 滚石头</title><link>http://www.cppblog.com/Wangzhihao/archive/2010/07/01/119103.html</link><dc:creator>王之昊</dc:creator><author>王之昊</author><pubDate>Thu, 01 Jul 2010 11:54:00 GMT</pubDate><guid>http://www.cppblog.com/Wangzhihao/archive/2010/07/01/119103.html</guid><wfw:comment>http://www.cppblog.com/Wangzhihao/comments/119103.html</wfw:comment><comments>http://www.cppblog.com/Wangzhihao/archive/2010/07/01/119103.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/Wangzhihao/comments/commentRss/119103.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/Wangzhihao/services/trackbacks/119103.html</trackback:ping><description><![CDATA[<a href="http://acm.pku.edu.cn/JudgeOnline/problem?id=1070">
<div style="text-align: center; font-size: 18pt;">Deformed Wheel</div>
</a><span style="font-weight: bold;"><br><br>题意：</span>给你一个斜面，再给一个凸多边形的石头，让石头从高出放下，沿着斜面滚动，问石头重心最后的位置。因为摩擦力很大，石头不能滑动，只能转动。（还有很多细节，具体见原题）<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 首先，这里要确定什么时候石头算稳定了，可以找到石头和斜面相交的两个点，一个是相对石头的最左点A，一个是相对石头的最右点B，这样如果石头要向左转动，必是绕着A转；要向右转动，必是绕着B转。这里有个问题，如果A，B的横坐标相同，那么A取最低的那个，B取最高的那个。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 找到A,B两点之后，如果重心G 有 A.x&lt;=G.x &lt;= B.x 那么他是稳定的，如果G.x &lt; A.x 那么他是向左转，如果G.x &gt; B.x那么他是向右转。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 其次，要知道石头如果开始转动，不论向左向右，转动多少角度会再次碰到斜面。假设转动theta再次碰到斜面。我们要求出这个theta的值。这里可以采用二分theta的方法来解决，对于某个确定的角度theta1，直接模拟转动theta1角度。看是否超出斜面的范围，如果是，说明theta1大了，否则说明theta1小了。<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 二分的实现上我觉得还是有很多trick的，比如<br>
<ol>
    <li>在检查的时候，要检查石头上是否存在一点是否在斜面的下侧，这里很容易忽视那个支点，如果把支点也一并去检查，很可能因为精度的关系判他在斜面的下方，结果check函数一直都是不合法。</li>
    <li>向左转和向右转的处理上，向左转我采用的是二分［0，PI］转角，向右转我则是二分［-PI， 0］转角，结果写在一起就出问题了，向左转的判定如果在斜面下方，那么是角度大了，向右转的判定如果在斜面下方，实际上是角度小了，尽管绝对值是大了。还有一种写法是枚举［0，PI］，在check函数里再判断是向左转，还是向右转。这样不容易写错。</li>
</ol>
<br> <img src ="http://www.cppblog.com/Wangzhihao/aggbug/119103.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/Wangzhihao/" target="_blank">王之昊</a> 2010-07-01 19:54 <a href="http://www.cppblog.com/Wangzhihao/archive/2010/07/01/119103.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Warehouse Location 最小包围球</title><link>http://www.cppblog.com/Wangzhihao/archive/2010/07/01/119046.html</link><dc:creator>王之昊</dc:creator><author>王之昊</author><pubDate>Thu, 01 Jul 2010 01:56:00 GMT</pubDate><guid>http://www.cppblog.com/Wangzhihao/archive/2010/07/01/119046.html</guid><wfw:comment>http://www.cppblog.com/Wangzhihao/comments/119046.html</wfw:comment><comments>http://www.cppblog.com/Wangzhihao/archive/2010/07/01/119046.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/Wangzhihao/comments/commentRss/119046.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/Wangzhihao/services/trackbacks/119046.html</trackback:ping><description><![CDATA[<div style="text-align: center;"><a href="http://acm.fzu.edu.cn/problem.php?pid=1908">Warehouse Location</a><br>
<div style="text-align: left;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 最小包围球，采用随机增量的方法。时间复杂度O(n)。<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 首先一个点的情况最小包围球的半径为0，没有什么意义。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 对于求 n 个点的最小包围球，假设这 n 个点分别为 p1,p2, ..,pn。我们可以先求两个点p1,p2的最小包围球，再求三个点p1,p2,p3的最小包围球，总之在求前 k 个点的最小包围球之前，先求前 k-1 个点的最小包围球。这里的点是已经经过随机洗牌的，假设前k个点的最小包围球是C<sub>k</sub><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 如果pn被 球C<sub>n-1 </sub>所包围，那么C<sub>n</sub>=C<sub>n-1</sub>；否则C<sub>n</sub>一定经过pn，这样我们知道C<sub>n</sub>经过的一个点，我们再重复上面的方法重新去算一遍C<sub>n</sub>，结果要么是直接确定了C<sub>n</sub>，要么是增加一个C<sub>n</sub>一定经过的点。然而如果知道4个C<sub>n</sub>经过的点，那么这个球也就唯一确定了。<br><sub></sub></div>
</div><img src ="http://www.cppblog.com/Wangzhihao/aggbug/119046.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/Wangzhihao/" target="_blank">王之昊</a> 2010-07-01 09:56 <a href="http://www.cppblog.com/Wangzhihao/archive/2010/07/01/119046.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>pipes 插头dp</title><link>http://www.cppblog.com/Wangzhihao/archive/2010/06/30/118951.html</link><dc:creator>王之昊</dc:creator><author>王之昊</author><pubDate>Tue, 29 Jun 2010 18:12:00 GMT</pubDate><guid>http://www.cppblog.com/Wangzhihao/archive/2010/06/30/118951.html</guid><wfw:comment>http://www.cppblog.com/Wangzhihao/comments/118951.html</wfw:comment><comments>http://www.cppblog.com/Wangzhihao/archive/2010/06/30/118951.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/Wangzhihao/comments/commentRss/118951.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/Wangzhihao/services/trackbacks/118951.html</trackback:ping><description><![CDATA[<a href="http://acm.pku.edu.cn/JudgeOnline/problem?id=2064">http://acm.pku.edu.cn/JudgeOnline/problem?id=2064</a>
<img src ="http://www.cppblog.com/Wangzhihao/aggbug/118951.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/Wangzhihao/" target="_blank">王之昊</a> 2010-06-30 02:12 <a href="http://www.cppblog.com/Wangzhihao/archive/2010/06/30/118951.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>