﻿<?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++博客-skyli-随笔分类-acm之路</title><link>http://www.cppblog.com/shyli/category/1232.html</link><description>C++之梦</description><language>zh-cn</language><lastBuildDate>Thu, 22 May 2008 17:34:14 GMT</lastBuildDate><pubDate>Thu, 22 May 2008 17:34:14 GMT</pubDate><ttl>60</ttl><item><title>pow函数的性能测试</title><link>http://www.cppblog.com/shyli/archive/2007/08/25/30823.html</link><dc:creator>beyonlin</dc:creator><author>beyonlin</author><pubDate>Sat, 25 Aug 2007 12:16:00 GMT</pubDate><guid>http://www.cppblog.com/shyli/archive/2007/08/25/30823.html</guid><wfw:comment>http://www.cppblog.com/shyli/comments/30823.html</wfw:comment><comments>http://www.cppblog.com/shyli/archive/2007/08/25/30823.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cppblog.com/shyli/comments/commentRss/30823.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/shyli/services/trackbacks/30823.html</trackback:ping><description><![CDATA[<p>昨天在PKU上做了一题<a href="http://acm.pku.edu.cn/JudgeOnline/problem?id=2187">2187</a>，限时3s。<br>算法主要耗时在多次求不同整数的平方。<br>当用pow函数求时，超时；<br>而直接乘才232ms。<br>相差也太大了吧。<br>于是就写了一段代码来测试pow的性能<br>首先产生10000个随机整数，然后重复1000次求整数的平方</p>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top twffan="done"><span style="COLOR: #000000">#include&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">iostream</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top twffan="done">#include&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">cmath</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top twffan="done">#include&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">ctime</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br><img id=Codehighlighter1_60_632_Open_Image onclick="this.style.display='none'; Codehighlighter1_60_632_Open_Text.style.display='none'; Codehighlighter1_60_632_Closed_Image.style.display='inline'; Codehighlighter1_60_632_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top twffan="done"><img id=Codehighlighter1_60_632_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_60_632_Closed_Text.style.display='none'; Codehighlighter1_60_632_Open_Image.style.display='inline'; Codehighlighter1_60_632_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif" align=top twffan="done">using&nbsp;</span><span id=Codehighlighter1_60_632_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">Namespace&nbsp;std</span><span id=Codehighlighter1_60_632_Open_Text><span style="COLOR: #0000ff">namespace</span><span style="COLOR: #000000">&nbsp;std;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top twffan="done"></span><span style="COLOR: #0000ff">const</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;MAX&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">10000</span><span style="COLOR: #000000">;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top twffan="done"></span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;a[MAX];<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top twffan="done"></span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;main()<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top twffan="done">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top twffan="done">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;i,&nbsp;j,&nbsp;n&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;MAX;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top twffan="done">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;rep&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">1000</span><span style="COLOR: #000000">;&nbsp;</span><span style="COLOR: #000000">//</span><span style="COLOR: #000000">重复次数<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top twffan="done">&nbsp;&nbsp;&nbsp;&nbsp;clock_t&nbsp;beg,&nbsp;</span><span style="COLOR: #0000ff">end</span><span style="COLOR: #000000">;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top twffan="done">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">(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">)<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top twffan="done">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a[i]&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;rand()&nbsp;%&nbsp;</span><span style="COLOR: #000000">20000</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">10000</span><span style="COLOR: #000000">;&nbsp;</span><span style="COLOR: #000000">//-</span><span style="COLOR: #000000">10000</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">&lt;=</span><span style="COLOR: #000000">&nbsp;a[i]</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">10000</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top twffan="done"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top twffan="done">&nbsp;&nbsp;&nbsp;&nbsp;cout</span><span style="COLOR: #000000">&lt;&lt;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">test&nbsp;a[i]*a[i]</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&lt;&lt;</span><span style="COLOR: #000000">endl;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top twffan="done">&nbsp;&nbsp;&nbsp;&nbsp;beg&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;clock();<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top twffan="done">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">(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;rep;&nbsp;j</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">)<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top twffan="done">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">(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">)<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top twffan="done">&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;a[i];<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top twffan="done">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">end</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;clock();<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top twffan="done">&nbsp;&nbsp;&nbsp;&nbsp;cout</span><span style="COLOR: #000000">&lt;&lt;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">time:&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&lt;&lt;</span><span style="COLOR: #0000ff">end</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;beg</span><span style="COLOR: #000000">&lt;&lt;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">ms</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&lt;&lt;</span><span style="COLOR: #000000">endl;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top twffan="done">&nbsp;&nbsp;&nbsp;&nbsp;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top twffan="done">&nbsp;&nbsp;&nbsp;&nbsp;cout</span><span style="COLOR: #000000">&lt;&lt;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">test&nbsp;pow(a[i],&nbsp;2.0)</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&lt;&lt;</span><span style="COLOR: #000000">endl;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top twffan="done">&nbsp;&nbsp;&nbsp;&nbsp;beg&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;clock();<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top twffan="done">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">(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;rep;&nbsp;j</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">)<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top twffan="done">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">(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">)<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top twffan="done">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pow(a[i],&nbsp;</span><span style="COLOR: #000000">2.0</span><span style="COLOR: #000000">);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top twffan="done">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">end</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;clock();<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top twffan="done">&nbsp;&nbsp;&nbsp;&nbsp;cout</span><span style="COLOR: #000000">&lt;&lt;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">time:&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&lt;&lt;</span><span style="COLOR: #0000ff">end</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;beg</span><span style="COLOR: #000000">&lt;&lt;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">ms</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&lt;&lt;</span><span style="COLOR: #000000">endl;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top twffan="done"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top twffan="done">&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><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top twffan="done">}<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top twffan="done"></span></div>
<br>下面是测试结果：<br><br>test a[i]*a[i]<br>time: 31ms<br>test pow(a[i], 2.0)<br>time: 2828ms<br><br>所以下次遇到类似情况不再用pow函数了&#8230;&#8230;</span> 
<img src ="http://www.cppblog.com/shyli/aggbug/30823.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/shyli/" target="_blank">beyonlin</a> 2007-08-25 20:16 <a href="http://www.cppblog.com/shyli/archive/2007/08/25/30823.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>一道算法题引发的动态内存管理的思考</title><link>http://www.cppblog.com/shyli/archive/2007/08/13/29853.html</link><dc:creator>beyonlin</dc:creator><author>beyonlin</author><pubDate>Sun, 12 Aug 2007 16:29:00 GMT</pubDate><guid>http://www.cppblog.com/shyli/archive/2007/08/13/29853.html</guid><wfw:comment>http://www.cppblog.com/shyli/comments/29853.html</wfw:comment><comments>http://www.cppblog.com/shyli/archive/2007/08/13/29853.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/shyli/comments/commentRss/29853.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/shyli/services/trackbacks/29853.html</trackback:ping><description><![CDATA[<p>在做<a href="http://acm.pku.edu.cn/JudgeOnline/problem?id=2762">PKU2762</a>时，需要建邻接表。<br>于是按部就班写了下面一个插入边到邻接表中的函数：</p>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top twffan="done"><span style="COLOR: #0000ff">const</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;VMAX&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">1010</span><span style="COLOR: #000000">;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top twffan="done">typedef&nbsp;struct&nbsp;Graph<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top twffan="done">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top twffan="done">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;vex;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top twffan="done">&nbsp;&nbsp;&nbsp;&nbsp;Graph</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">next</span><span style="COLOR: #000000">;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top twffan="done">}Graph;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top twffan="done">Graph&nbsp;ArcGraph[VMAX];<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top twffan="done">void&nbsp;insert(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;u,&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;v)<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top twffan="done">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top twffan="done">&nbsp;&nbsp;&nbsp;&nbsp;Graph</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;t&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;Graph;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top twffan="done">&nbsp;&nbsp;&nbsp;&nbsp;Graph</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;p&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;ArcGraph[u].next;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top twffan="done">&nbsp;&nbsp;&nbsp;&nbsp;t</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">vex&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;v;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top twffan="done">&nbsp;&nbsp;&nbsp;&nbsp;t</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #0000ff">next</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;p;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top twffan="done">&nbsp;&nbsp;&nbsp;&nbsp;ArcGraph[u].next&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;t;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top twffan="done">}</span></div>
<p><br>完成完整的程序提交上去，得到结果<br>Memory:25796K&nbsp; Time:375MS<br>Language:C++&nbsp; Result:Accepted<br><br>再对比别人的程序<br>Memory:296K Time:109MS<br><br>无论是时间还是空间都相差很大。<br>于是就考虑怎么优化自己的程序。<br>第一个问题：规模只有1000，为什么会用那么多内存呢？<br>仔细一想数据是多case的，每次插入新节点时都要动态创建一个节点。<br>一来动态创建耗时间，二来每个case结束的邻接表中的节点没有释放，故耗费大量内存。<br>然后就想到了下面的算法，首先初始化一块内存Graph use[100*VMAX];这样每次需要新节点时，<br>就从use中获取。如果use使用完毕就再动态创建。<br><br>依此算法优化后，得到的结果比较满意<br>Memory:1000K&nbsp; Time:218MS<br>Language:C++&nbsp; Result:Accepted</p>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top twffan="done"><span style="COLOR: #0000ff">const</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;VMAX&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">1010</span><span style="COLOR: #000000">;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top twffan="done">typedef&nbsp;struct&nbsp;Graph<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top twffan="done">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top twffan="done">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;vex;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top twffan="done">&nbsp;&nbsp;&nbsp;&nbsp;Graph</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">next</span><span style="COLOR: #000000">;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top twffan="done">}Graph;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top twffan="done">Graph&nbsp;ArcGraph[VMAX];<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top twffan="done">Graph&nbsp;use[</span><span style="COLOR: #000000">100</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">VMAX];<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top twffan="done"></span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;size&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top twffan="done">void&nbsp;insert(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;u,&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;v)<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top twffan="done">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top twffan="done">&nbsp;&nbsp;&nbsp;&nbsp;Graph</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;t;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top twffan="done">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(size&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">100</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">VMAX)<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top twffan="done">&nbsp;&nbsp;&nbsp;&nbsp;{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top twffan="done">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;t&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">use[size];<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top twffan="done">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;size</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top twffan="done">&nbsp;&nbsp;&nbsp;&nbsp;}<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top twffan="done">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">else</span><span style="COLOR: #000000">&nbsp;t&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;Graph;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top twffan="done">&nbsp;&nbsp;&nbsp;&nbsp;Graph</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;p&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;ArcGraph[u].next;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top twffan="done">&nbsp;&nbsp;&nbsp;&nbsp;t</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">vex&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;v;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top twffan="done">&nbsp;&nbsp;&nbsp;&nbsp;t</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #0000ff">next</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;p;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top twffan="done">&nbsp;&nbsp;&nbsp;&nbsp;ArcGraph[u].next&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;t;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top twffan="done">}</span></div>
<img src ="http://www.cppblog.com/shyli/aggbug/29853.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/shyli/" target="_blank">beyonlin</a> 2007-08-13 00:29 <a href="http://www.cppblog.com/shyli/archive/2007/08/13/29853.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>筛法求素数</title><link>http://www.cppblog.com/shyli/archive/2007/05/18/24334.html</link><dc:creator>beyonlin</dc:creator><author>beyonlin</author><pubDate>Fri, 18 May 2007 08:13:00 GMT</pubDate><guid>http://www.cppblog.com/shyli/archive/2007/05/18/24334.html</guid><wfw:comment>http://www.cppblog.com/shyli/comments/24334.html</wfw:comment><comments>http://www.cppblog.com/shyli/archive/2007/05/18/24334.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/shyli/comments/commentRss/24334.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/shyli/services/trackbacks/24334.html</trackback:ping><description><![CDATA[<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee" twffan="done"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top twffan="done"><span style="COLOR: #000000" twffan="done">#include</span><span style="COLOR: #000000" twffan="done">&lt;</span><span style="COLOR: #000000" twffan="done">iostream</span><span style="COLOR: #000000" twffan="done">&gt;</span><span style="COLOR: #000000" twffan="done"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top twffan="done">using&nbsp;namespace&nbsp;std;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top twffan="done"></span><span style="COLOR: #0000ff" twffan="done">const</span><span style="COLOR: #000000" twffan="done">&nbsp;</span><span style="COLOR: #0000ff" twffan="done">int</span><span style="COLOR: #000000" twffan="done">&nbsp;MAXV&nbsp;</span><span style="COLOR: #000000" twffan="done">=</span><span style="COLOR: #000000" twffan="done">&nbsp;</span><span style="COLOR: #000000" twffan="done">10000</span><span style="COLOR: #000000" twffan="done">;&nbsp;</span><span style="COLOR: #000000" twffan="done">//</span><span style="COLOR: #000000" twffan="done">素数表范围<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top twffan="done">bool&nbsp;flag[MAXV</span><span style="COLOR: #000000" twffan="done">+</span><span style="COLOR: #000000" twffan="done">1</span><span style="COLOR: #000000" twffan="done">];&nbsp;</span><span style="COLOR: #000000" twffan="done">//</span><span style="COLOR: #000000" twffan="done">标志一个数是否为素数<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top twffan="done"></span><span style="COLOR: #0000ff" twffan="done">int</span><span style="COLOR: #000000" twffan="done">&nbsp;prime[MAXV</span><span style="COLOR: #000000" twffan="done">+</span><span style="COLOR: #000000" twffan="done">1</span><span style="COLOR: #000000" twffan="done">];&nbsp;</span><span style="COLOR: #000000" twffan="done">//</span><span style="COLOR: #000000" twffan="done">素数表,下标从0开始<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top twffan="done"></span><span style="COLOR: #0000ff" twffan="done">int</span><span style="COLOR: #000000" twffan="done">&nbsp;size;&nbsp;</span><span style="COLOR: #000000" twffan="done">//</span><span style="COLOR: #000000" twffan="done">素数个数<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top twffan="done">void&nbsp;genPrime(</span><span style="COLOR: #0000ff" twffan="done">int</span><span style="COLOR: #000000" twffan="done">&nbsp;max)<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top twffan="done">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top twffan="done">&nbsp;&nbsp;&nbsp;&nbsp;memset(flag,&nbsp;</span><span style="COLOR: #0000ff" twffan="done">true</span><span style="COLOR: #000000" twffan="done">,&nbsp;sizeof(flag));<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top twffan="done">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff" twffan="done">for</span><span style="COLOR: #000000" twffan="done">(</span><span style="COLOR: #0000ff" twffan="done">int</span><span style="COLOR: #000000" twffan="done">&nbsp;i&nbsp;</span><span style="COLOR: #000000" twffan="done">=</span><span style="COLOR: #000000" twffan="done">&nbsp;</span><span style="COLOR: #000000" twffan="done">2</span><span style="COLOR: #000000" twffan="done">;&nbsp;i&nbsp;</span><span style="COLOR: #000000" twffan="done">&lt;=</span><span style="COLOR: #000000" twffan="done">&nbsp;max&nbsp;</span><span style="COLOR: #000000" twffan="done">/</span><span style="COLOR: #000000" twffan="done">&nbsp;</span><span style="COLOR: #000000" twffan="done">2</span><span style="COLOR: #000000" twffan="done">;&nbsp;i</span><span style="COLOR: #000000" twffan="done">++</span><span style="COLOR: #000000" twffan="done">)<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top twffan="done">&nbsp;&nbsp;&nbsp;&nbsp;{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top twffan="done">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff" twffan="done">if</span><span style="COLOR: #000000" twffan="done">(flag[i])<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top twffan="done">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top twffan="done">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff" twffan="done">for</span><span style="COLOR: #000000" twffan="done">(</span><span style="COLOR: #0000ff" twffan="done">int</span><span style="COLOR: #000000" twffan="done">&nbsp;j&nbsp;</span><span style="COLOR: #000000" twffan="done">=</span><span style="COLOR: #000000" twffan="done">&nbsp;i&nbsp;</span><span style="COLOR: #000000" twffan="done">&lt;&lt;</span><span style="COLOR: #000000" twffan="done">&nbsp;</span><span style="COLOR: #000000" twffan="done">1</span><span style="COLOR: #000000" twffan="done">&nbsp;;&nbsp;j&nbsp;</span><span style="COLOR: #000000" twffan="done">&lt;=</span><span style="COLOR: #000000" twffan="done">&nbsp;max;&nbsp;j&nbsp;</span><span style="COLOR: #000000" twffan="done">+=</span><span style="COLOR: #000000" twffan="done">&nbsp;i)<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top twffan="done">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top twffan="done">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;flag[j]&nbsp;</span><span style="COLOR: #000000" twffan="done">=</span><span style="COLOR: #000000" twffan="done">&nbsp;</span><span style="COLOR: #0000ff" twffan="done">false</span><span style="COLOR: #000000" twffan="done">;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top twffan="done">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top twffan="done">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top twffan="done">&nbsp;&nbsp;&nbsp;&nbsp;}<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top twffan="done">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff" twffan="done">for</span><span style="COLOR: #000000" twffan="done">(</span><span style="COLOR: #0000ff" twffan="done">int</span><span style="COLOR: #000000" twffan="done">&nbsp;i&nbsp;</span><span style="COLOR: #000000" twffan="done">=</span><span style="COLOR: #000000" twffan="done">&nbsp;</span><span style="COLOR: #000000" twffan="done">2</span><span style="COLOR: #000000" twffan="done">&nbsp;;&nbsp;i&nbsp;</span><span style="COLOR: #000000" twffan="done">&lt;=</span><span style="COLOR: #000000" twffan="done">&nbsp;max;&nbsp;i</span><span style="COLOR: #000000" twffan="done">++</span><span style="COLOR: #000000" twffan="done">)<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top twffan="done">&nbsp;&nbsp;&nbsp;&nbsp;{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top twffan="done">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff" twffan="done">if</span><span style="COLOR: #000000" twffan="done">(flag[i])<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top twffan="done">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top twffan="done">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;prime[size</span><span style="COLOR: #000000" twffan="done">++</span><span style="COLOR: #000000" twffan="done">]&nbsp;</span><span style="COLOR: #000000" twffan="done">=</span><span style="COLOR: #000000" twffan="done">&nbsp;i;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top twffan="done">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top twffan="done">&nbsp;&nbsp;&nbsp;&nbsp;}<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top twffan="done">}<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top twffan="done"></span><span style="COLOR: #0000ff" twffan="done">int</span><span style="COLOR: #000000" twffan="done">&nbsp;main()<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top twffan="done">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top twffan="done">&nbsp;&nbsp;&nbsp;&nbsp;genPrime(MAXV);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top twffan="done">&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;</span><span style="COLOR: #000000" twffan="done">0</span><span style="COLOR: #000000" twffan="done">;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top twffan="done">}<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top twffan="done"></span></div>
<img src ="http://www.cppblog.com/shyli/aggbug/24334.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/shyli/" target="_blank">beyonlin</a> 2007-05-18 16:13 <a href="http://www.cppblog.com/shyli/archive/2007/05/18/24334.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>字符串hash函数</title><link>http://www.cppblog.com/shyli/archive/2007/04/07/21455.html</link><dc:creator>beyonlin</dc:creator><author>beyonlin</author><pubDate>Sat, 07 Apr 2007 08:22:00 GMT</pubDate><guid>http://www.cppblog.com/shyli/archive/2007/04/07/21455.html</guid><wfw:comment>http://www.cppblog.com/shyli/comments/21455.html</wfw:comment><comments>http://www.cppblog.com/shyli/archive/2007/04/07/21455.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cppblog.com/shyli/comments/commentRss/21455.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/shyli/services/trackbacks/21455.html</trackback:ping><description><![CDATA[字符串hash函数，解决冲突用开放定址法，每次对哈希值加1<br>在下列程序中，不是按常规方法用哈希表来记录关键字，<br>而是用整型数组Htable记录关键字在字符串ch中的位置。<br>在插入时不用把关键字复制到哈希表中，只是记录一个索引，从而提高了效率。<br>当查询时，只要把Htable的值映射到字符串ch中就可以了。<br>注意ch的下标要从1开始，因为Htable中的零值认为是空，处理起来比较方便。
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top twffan="done"><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><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top twffan="done">#include</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #0000ff">string</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br><img id=Codehighlighter1_42_671_Open_Image onclick="this.style.display='none'; Codehighlighter1_42_671_Open_Text.style.display='none'; Codehighlighter1_42_671_Closed_Image.style.display='inline'; Codehighlighter1_42_671_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top twffan="done"><img id=Codehighlighter1_42_671_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_42_671_Closed_Text.style.display='none'; Codehighlighter1_42_671_Open_Image.style.display='inline'; Codehighlighter1_42_671_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif" align=top twffan="done">using&nbsp;</span><span id=Codehighlighter1_42_671_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">Namespace&nbsp;std</span><span id=Codehighlighter1_42_671_Open_Text><span style="COLOR: #0000ff">namespace</span><span style="COLOR: #000000">&nbsp;std;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top twffan="done"></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">9973</span><span style="COLOR: #000000">;&nbsp;</span><span style="COLOR: #000000">//</span><span style="COLOR: #000000">哈希表长度<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top twffan="done"></span><span style="COLOR: #0000ff">const</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">len</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">30</span><span style="COLOR: #000000">;&nbsp;</span><span style="COLOR: #000000">//</span><span style="COLOR: #000000">字符串的最大长度<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top twffan="done"></span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;Htable[MAX];<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top twffan="done"></span><span style="COLOR: #0000ff">char</span><span style="COLOR: #000000">&nbsp;ch[MAX][</span><span style="COLOR: #0000ff">len</span><span style="COLOR: #000000">];&nbsp;</span><span style="COLOR: #000000">//</span><span style="COLOR: #000000">存储关键字的字符串<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top twffan="done">unsigned&nbsp;</span><span style="COLOR: #0000ff">long</span><span style="COLOR: #000000">&nbsp;Hash(</span><span style="COLOR: #0000ff">char</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;key)<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top twffan="done">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top twffan="done">&nbsp;&nbsp;&nbsp;&nbsp;unsigned&nbsp;</span><span style="COLOR: #0000ff">long</span><span style="COLOR: #000000">&nbsp;h&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top twffan="done">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">while</span><span style="COLOR: #000000">(</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">key)<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top twffan="done">&nbsp;&nbsp;&nbsp;&nbsp;{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top twffan="done">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;h&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;(h&nbsp;</span><span style="COLOR: #000000">&lt;&lt;</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">4</span><span style="COLOR: #000000">)&nbsp;</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">key</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top twffan="done">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;unsigned&nbsp;</span><span style="COLOR: #0000ff">long</span><span style="COLOR: #000000">&nbsp;g&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;h&nbsp;</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">&nbsp;0xf0000000L;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top twffan="done">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(g)<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top twffan="done">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;h&nbsp;</span><span style="COLOR: #000000">^=</span><span style="COLOR: #000000">&nbsp;g&nbsp;</span><span style="COLOR: #000000">&gt;&gt;</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">24</span><span style="COLOR: #000000">;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top twffan="done">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;h&nbsp;</span><span style="COLOR: #000000">&amp;=</span><span style="COLOR: #000000">&nbsp;~g;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top twffan="done">&nbsp;&nbsp;&nbsp;&nbsp;}<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top twffan="done">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;h&nbsp;%&nbsp;MAX;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top twffan="done">}<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top twffan="done"></span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;search(</span><span style="COLOR: #0000ff">char</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;key)<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top twffan="done">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top twffan="done">&nbsp;&nbsp;&nbsp;&nbsp;unsigned&nbsp;</span><span style="COLOR: #0000ff">long</span><span style="COLOR: #000000">&nbsp;i&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;Hash(key);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top twffan="done">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">while</span><span style="COLOR: #000000">(Htable[i])<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top twffan="done">&nbsp;&nbsp;&nbsp;&nbsp;{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top twffan="done">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(strcmp(ch[Htable[i]],&nbsp;key)&nbsp;</span><span style="COLOR: #000000">==</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">)<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top twffan="done">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;i;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top twffan="done">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;i&nbsp;</span><span style="COLOR: #000000">=</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;%&nbsp;MAX;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top twffan="done">&nbsp;&nbsp;&nbsp;&nbsp;}<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top twffan="done">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top twffan="done">}<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top twffan="done"></span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;insert(</span><span style="COLOR: #0000ff">char</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;key,&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;j)&nbsp;</span><span style="COLOR: #000000">//</span><span style="COLOR: #000000">j为关键字在ch中的位置，即索引<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top twffan="done">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top twffan="done">&nbsp;&nbsp;&nbsp;&nbsp;unsigned&nbsp;</span><span style="COLOR: #0000ff">long</span><span style="COLOR: #000000">&nbsp;i&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;Hash(key);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top twffan="done">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">while</span><span style="COLOR: #000000">(Htable[i])<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top twffan="done">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;i&nbsp;</span><span style="COLOR: #000000">=</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;%&nbsp;MAX;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top twffan="done">&nbsp;&nbsp;&nbsp;&nbsp;Htable[i]&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;j;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top twffan="done">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;i;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top twffan="done">}</span></div>
</span>
<img src ="http://www.cppblog.com/shyli/aggbug/21455.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/shyli/" target="_blank">beyonlin</a> 2007-04-07 16:22 <a href="http://www.cppblog.com/shyli/archive/2007/04/07/21455.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>插入排序泛型算法</title><link>http://www.cppblog.com/shyli/archive/2007/02/06/18485.html</link><dc:creator>beyonlin</dc:creator><author>beyonlin</author><pubDate>Tue, 06 Feb 2007 11:13:00 GMT</pubDate><guid>http://www.cppblog.com/shyli/archive/2007/02/06/18485.html</guid><wfw:comment>http://www.cppblog.com/shyli/comments/18485.html</wfw:comment><comments>http://www.cppblog.com/shyli/archive/2007/02/06/18485.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.cppblog.com/shyli/comments/commentRss/18485.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/shyli/services/trackbacks/18485.html</trackback:ping><description><![CDATA[
		<pre>template &lt;typename Iter&gt;
void insertSort(Iter *begin, Iter *end)
{
	for(Iter *it = begin + 1; it != end; it++)
	{
		Iter tmp = *it;
		Iter *it2 = it - 1;
		while(it2 &gt; begin - 1 &amp;&amp; *it2 &gt; tmp)
		{
			*(it2 + 1) = *it2;
			it2 --;
		}
		*(it2 + 1) = tmp;
	}
}
</pre>
<img src ="http://www.cppblog.com/shyli/aggbug/18485.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/shyli/" target="_blank">beyonlin</a> 2007-02-06 19:13 <a href="http://www.cppblog.com/shyli/archive/2007/02/06/18485.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>最大匹配匈牙利算法</title><link>http://www.cppblog.com/shyli/archive/2006/10/24/14096.html</link><dc:creator>beyonlin</dc:creator><author>beyonlin</author><pubDate>Tue, 24 Oct 2006 10:34:00 GMT</pubDate><guid>http://www.cppblog.com/shyli/archive/2006/10/24/14096.html</guid><wfw:comment>http://www.cppblog.com/shyli/comments/14096.html</wfw:comment><comments>http://www.cppblog.com/shyli/archive/2006/10/24/14096.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/shyli/comments/commentRss/14096.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/shyli/services/trackbacks/14096.html</trackback:ping><description><![CDATA[
		<pre>#include&lt;cstdio&gt;
#include&lt;memory&gt;
using namespace std;
const int MAX = 10001;
bool map[MAX][MAX],visit[MAX];
int match[MAX];
int a, b;
bool DFS(int i)
{
	int j, k = 1;
	for(j = 1 ; j &lt;= b; j++)
	{
		if(map[i][j] &amp;&amp; !visit[j])
		{
			visit[j] = true;
			k = match[j];
			match[j] = i;
			if(k == 0 || DFS(k))
				return true;
			match[j] = k;
		}
	}
	return false;
}
int Hungary()
{	
	int	j, ans = 0;
	memset(match, 0, sizeof(match));
	for(j = 1; j &lt;= a; j++)
	{
		memset(visit,false, sizeof(visit));
		if(DFS(j))
			ans++;
	}
	return ans;
}
int main()
{
	int i, j, n,ans;
	memset(map,false,sizeof(map));
	scanf("%d%d",&amp;a,&amp;b);
	ans = Hungary();
	printf("%d\n",ans);	
	return 0;
}
</pre>
<img src ="http://www.cppblog.com/shyli/aggbug/14096.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/shyli/" target="_blank">beyonlin</a> 2006-10-24 18:34 <a href="http://www.cppblog.com/shyli/archive/2006/10/24/14096.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>最小生成树Prim算法</title><link>http://www.cppblog.com/shyli/archive/2006/10/13/13658.html</link><dc:creator>beyonlin</dc:creator><author>beyonlin</author><pubDate>Fri, 13 Oct 2006 15:48:00 GMT</pubDate><guid>http://www.cppblog.com/shyli/archive/2006/10/13/13658.html</guid><wfw:comment>http://www.cppblog.com/shyli/comments/13658.html</wfw:comment><comments>http://www.cppblog.com/shyli/archive/2006/10/13/13658.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cppblog.com/shyli/comments/commentRss/13658.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/shyli/services/trackbacks/13658.html</trackback:ping><description><![CDATA[
		<pre>#include&lt;cstdio&gt;
const int MAX = 10000;
const int INF = 1000000;
int clo[MAX];
int low[MAX];
int c[MAX][MAX];
bool flag[MAX];
int beg[MAX],end[MAX];//记录生成树的每条边的两个顶点
int Prim(int n)
{
	int i, j, k, ans = 0, pair = 0;
	flag[1] = true;
	for(i = 2; i &lt;= n; i++)
	{
		low[i] = c[1][i];
		clo[i] = 1;
		flag[i] = false;
	}
	for(i = 1; i &lt; n; i++)
	{
		j = 1;
		int min = INF;
		for(k = 2; k &lt;=n; k++)
		{
			if(low[k] &lt; min &amp;&amp; !flag[k])
			{
				min = low[k];
				j = k;
			}
		}
		flag[j] = true;
		beg[i] = j;
		end[i] = clo[j];
		ans += c[j][clo[j]];
		for(k = 2; k &lt;= n; k++)
		{
			if(c[j][k] &lt; low[k] &amp;&amp; !flag[k])
			{
				low[k] = c[j][k];
				clo[k] = j;
			}
		}
	}
	return ans;
}
int main()
{
	int i, j, n, m;
	scanf("%d%d",&amp;n,&amp;m);
	for(i = 1; i &lt;= n; i++)
	{
		for(j = 1; j &lt;=n; j++)
		{
			c[i][j]=INF;
		}
	}
	return 0;
}
</pre>
<img src ="http://www.cppblog.com/shyli/aggbug/13658.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/shyli/" target="_blank">beyonlin</a> 2006-10-13 23:48 <a href="http://www.cppblog.com/shyli/archive/2006/10/13/13658.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>itoa函数</title><link>http://www.cppblog.com/shyli/archive/2006/10/12/13588.html</link><dc:creator>beyonlin</dc:creator><author>beyonlin</author><pubDate>Wed, 11 Oct 2006 16:59:00 GMT</pubDate><guid>http://www.cppblog.com/shyli/archive/2006/10/12/13588.html</guid><wfw:comment>http://www.cppblog.com/shyli/comments/13588.html</wfw:comment><comments>http://www.cppblog.com/shyli/archive/2006/10/12/13588.html#Feedback</comments><slash:comments>6</slash:comments><wfw:commentRss>http://www.cppblog.com/shyli/comments/commentRss/13588.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/shyli/services/trackbacks/13588.html</trackback:ping><description><![CDATA[
		<pre>#include&lt;cstdlib&gt;<br />#include&lt;cstdio&gt;<br />int main()
{
	int num = 10;
	char str[100];
	itoa(num, str, 2);
	printf("%s\n", str);
	return 0;
}</pre>itoa()函数有3个参数：第一个参数是要转换的数字，第二个参数是目标字符串，第三个参数是转移数字时所用 的基数。在上例中，转换基数为10。10：十进制；2：二进制……<br />于是想到了一个十进制转二进制的方法： <pre>#include&lt;cstdlib&gt;<br />#include&lt;cstdio&gt;<br />int main()
{
	int num = 10;
	char str[100];
	int n = atoi(itoa(num, str, 2));
	printf("%d\n",n);
	return 0;
}<br />先把num转换为二进制的字符串，再把该字符串转换为整数。</pre><img src ="http://www.cppblog.com/shyli/aggbug/13588.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/shyli/" target="_blank">beyonlin</a> 2006-10-12 00:59 <a href="http://www.cppblog.com/shyli/archive/2006/10/12/13588.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>归并排序求逆序数</title><link>http://www.cppblog.com/shyli/archive/2006/10/11/13553.html</link><dc:creator>beyonlin</dc:creator><author>beyonlin</author><pubDate>Tue, 10 Oct 2006 16:27:00 GMT</pubDate><guid>http://www.cppblog.com/shyli/archive/2006/10/11/13553.html</guid><wfw:comment>http://www.cppblog.com/shyli/comments/13553.html</wfw:comment><comments>http://www.cppblog.com/shyli/archive/2006/10/11/13553.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/shyli/comments/commentRss/13553.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/shyli/services/trackbacks/13553.html</trackback:ping><description><![CDATA[
		<pre>转自：<a href="http://www.blog.edu.cn/user2/sempr/archives/2006/1142716.shtml">http://www.blog.edu.cn/user2/sempr/archives/2006/1142716.shtml</a><br />#include&lt;cstdio&gt;
<br />const int MAX = 10000;
int a[MAX],b[MAX];
int change;
void merge(int p, int q, int r)
{
	int i, j = 0;
	int begA = p, endA = q, begB = q+1, endB = r;
    while(begA &lt;= endA &amp;&amp; begB &lt;= endB)
	{
		if(a[begA] &lt;= a[begB])
			b[j++] = a[begA++];
		else
		{
			b[j++] = a[begB++];
			change += q - begA + 1;
        }
	}
	while(begA &lt;= endA)
		b[j++] = a[begA++];
    while(begB &lt;= endB)
		b[j++] = a[begB++];
    for(i = 0; i &lt; j; i++)
		a[p+i] = b[i];
}
void mergeSort(int first, int last)
{
	if(first &lt; last)
	{
		int mid = (first + last) / 2;
		mergeSort(first, mid);
        mergeSort(mid+1, last);
        merge(first, mid, last);
    }
}
int main()
{
	return 0;
}
</pre>
<img src ="http://www.cppblog.com/shyli/aggbug/13553.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/shyli/" target="_blank">beyonlin</a> 2006-10-11 00:27 <a href="http://www.cppblog.com/shyli/archive/2006/10/11/13553.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>单源最短路径Dijkstra算法</title><link>http://www.cppblog.com/shyli/archive/2006/10/10/13506.html</link><dc:creator>beyonlin</dc:creator><author>beyonlin</author><pubDate>Mon, 09 Oct 2006 16:22:00 GMT</pubDate><guid>http://www.cppblog.com/shyli/archive/2006/10/10/13506.html</guid><wfw:comment>http://www.cppblog.com/shyli/comments/13506.html</wfw:comment><comments>http://www.cppblog.com/shyli/archive/2006/10/10/13506.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/shyli/comments/commentRss/13506.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/shyli/services/trackbacks/13506.html</trackback:ping><description><![CDATA[d[i]用来保存起始点beg到点i的最短路径。<br />c[i][j]为边&lt;i,j&gt;的权。<br />如果边&lt;i,j&gt;不存在，则置c[i][j]=INF。<br />path[i]用来保存最短路径中点i的前一个顶点。<br /><pre>#include&lt;cstdio&gt;
const int MAX = 10000;
const int INF = 1000000;
int d[MAX];
int c[MAX][MAX];
bool flag[MAX];
//int path[MAX];
int Dijkstra(int beg, int n)
{
	int i, j, u, tmp;
	for(i = 1; i &lt;= n; i++)
	{
		d[i] = c[beg][i];
		flag[i] = false;
		/*if(d[i] == INF)
			path[i] = 0;
		else
			path[i] = beg;*/
	}
	d[beg] = 0; flag[beg] = true;
	for(i = 1; i &lt;= n; i++)
	{
		tmp = INF; u = beg;
		for(j = 1; j &lt;=n; j++)
		{
			if(!flag[j] &amp;&amp; d[j] &lt; tmp)
			{
				u = j; 
				tmp = d[j];
			}
		}
		flag[u] = true;
		for(j  = 1; j &lt;= n; j++)
		{
			if(!flag[j] &amp;&amp; c[u][j] &lt; INF)
			{
				if(d[u] + c[u][j] &lt; d[j])
					d[j] = d[u] + c[u][j];
				//path[j] = u;
			}
		}
	}
	return 0;
}
int main()
{	
	return 0;
}
</pre><img src ="http://www.cppblog.com/shyli/aggbug/13506.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/shyli/" target="_blank">beyonlin</a> 2006-10-10 00:22 <a href="http://www.cppblog.com/shyli/archive/2006/10/10/13506.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>多源最短路径floyd_warshall算法</title><link>http://www.cppblog.com/shyli/archive/2006/10/09/13473.html</link><dc:creator>beyonlin</dc:creator><author>beyonlin</author><pubDate>Sun, 08 Oct 2006 16:15:00 GMT</pubDate><guid>http://www.cppblog.com/shyli/archive/2006/10/09/13473.html</guid><wfw:comment>http://www.cppblog.com/shyli/comments/13473.html</wfw:comment><comments>http://www.cppblog.com/shyli/archive/2006/10/09/13473.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/shyli/comments/commentRss/13473.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/shyli/services/trackbacks/13473.html</trackback:ping><description><![CDATA[d[i][j]保存边&lt;i,j&gt;的权。<br />如果边&lt;i,j&gt;不存在，则置d[i][j]为INF。<br /><pre>#include&lt;cstdio&gt;<br />const int MAX=10000;
const int INF=1000000;
int d[MAX][MAX];
int floyd (int n)
{

	for(int k =1 ; k &lt;= n; k++)
	{
		for(int i = 1; i &lt;= n; i++)
		{
			for(int j = 1; j &lt;= n; j++)
			{
				if(d[i][k] + d[k][j] &lt; d[i][j])
					d[i][j] = d[i][k] + d[k][j];
			}
		}
	}<br />        return 0;
}
int main()
{
	return 0;
}
floyd后，如果d[i][j]&gt;=INF，则点i到点j没有路。<br />else点i到点j的最短路径长度为d[i][j]。<br /></pre><img src ="http://www.cppblog.com/shyli/aggbug/13473.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/shyli/" target="_blank">beyonlin</a> 2006-10-09 00:15 <a href="http://www.cppblog.com/shyli/archive/2006/10/09/13473.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>数论----判断质数</title><link>http://www.cppblog.com/shyli/archive/2006/10/08/13438.html</link><dc:creator>beyonlin</dc:creator><author>beyonlin</author><pubDate>Sat, 07 Oct 2006 16:40:00 GMT</pubDate><guid>http://www.cppblog.com/shyli/archive/2006/10/08/13438.html</guid><wfw:comment>http://www.cppblog.com/shyli/comments/13438.html</wfw:comment><comments>http://www.cppblog.com/shyli/archive/2006/10/08/13438.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cppblog.com/shyli/comments/commentRss/13438.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/shyli/services/trackbacks/13438.html</trackback:ping><description><![CDATA[
		<p>最近发现自己对数论几乎是一窍不通。<br />是时候开始学了。<br />从零开始……<br />判断一个数是否为质数：<br /><br /></p>
		<p>
		</p>
		<pre>bool prime(int a)
{
	for(int i=2;i&lt;=sqrt(a);i++)
	{
		if(a%i==0)
			return false;
	}
	return true;
}<br /></pre>
<img src ="http://www.cppblog.com/shyli/aggbug/13438.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/shyli/" target="_blank">beyonlin</a> 2006-10-08 00:40 <a href="http://www.cppblog.com/shyli/archive/2006/10/08/13438.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>并查集类</title><link>http://www.cppblog.com/shyli/archive/2006/08/30/11837.html</link><dc:creator>beyonlin</dc:creator><author>beyonlin</author><pubDate>Tue, 29 Aug 2006 16:27:00 GMT</pubDate><guid>http://www.cppblog.com/shyli/archive/2006/08/30/11837.html</guid><wfw:comment>http://www.cppblog.com/shyli/comments/11837.html</wfw:comment><comments>http://www.cppblog.com/shyli/archive/2006/08/30/11837.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/shyli/comments/commentRss/11837.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/shyli/services/trackbacks/11837.html</trackback:ping><description><![CDATA[参考文章：<br /><a href="/qywyh/archive/2006/08/16/11301.html">http://www.cppblog.com/qywyh/archive/2006/08/16/11301.html</a><br /><a href="http://www.programfan.com/blog/article.asp?id=16879">http://www.programfan.com/blog/article.asp?id=16879<br /></a><br /><pre>#ifndef UFSET_H
#define UFSET_H
class UFset
{
	public:
		UFset(int);
		void Union(int ,int);
		int Find(int);
		int &amp; operator [] (int i){return parent[i];}
		int size(){return length;}
	private:
		int length;//集合的个数
		int * parent;
};
UFset::UFset(int len)
{
	length = len;
	parent = new int [length + 1];
	for(int k = 1; k &lt;= length; k++)
		parent[k] = -1;
}
int UFset::Find(int x)
{
	 int i;
	 for(i = x; parent[i] &gt;= 0; i = parent[i]);//搜索根节点
	 while(i!=x)//路径压缩
	 {
		  int tmp = parent[x];
		  parent[x] = i;
		  x = tmp;
	 }
	 return i;
}
void UFset::Union(int x,int y)//合并
{
	int pX = Find(x);
	int pY = Find(y);
	if(pX != pY)
	{
		int tmp = parent[pX] + parent[pY];
		if(parent[pX] &gt; parent[pY])
		{
			parent[pX] = pY;
			parent[pY] = tmp;
		}
		else 
		{
			parent[pY] = pX;
			parent[pX] = tmp;
		}
		length--;
	}
}
#endif</pre><img src ="http://www.cppblog.com/shyli/aggbug/11837.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/shyli/" target="_blank">beyonlin</a> 2006-08-30 00:27 <a href="http://www.cppblog.com/shyli/archive/2006/08/30/11837.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>我的动态规划启蒙题</title><link>http://www.cppblog.com/shyli/archive/2006/08/28/11764.html</link><dc:creator>beyonlin</dc:creator><author>beyonlin</author><pubDate>Mon, 28 Aug 2006 02:31:00 GMT</pubDate><guid>http://www.cppblog.com/shyli/archive/2006/08/28/11764.html</guid><wfw:comment>http://www.cppblog.com/shyli/comments/11764.html</wfw:comment><comments>http://www.cppblog.com/shyli/archive/2006/08/28/11764.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cppblog.com/shyli/comments/commentRss/11764.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/shyli/services/trackbacks/11764.html</trackback:ping><description><![CDATA[
		<p>
				<font size="2">动态规划即是一个重点，又是一个难点。<br />今天终于做出了一题像样的动态规划题。<br />Problem Id:1163  User Id:beyonlin_SCUT <br />Memory:100K  Time:0MS<br />Language:C++  Result:Accepted<br /><a href="http://acm.pku.edu.cn/JudgeOnline/problem?id=1163">http://acm.pku.edu.cn/JudgeOnline/problem?id=1163</a><br /></font>
		</p>
		<p align="center">
				<font color="blue" size="5">The Triangle</font>
				<br />Time Limit:1000MS  Memory Limit:10000K<br />Total Submit:3415 Accepted:1988 </p>
		<p>
				<font color="blue" size="5">Description</font>
				<br />
				<font face="Times New Roman" size="3">
						<center>
								<pre>7
<br />3   8
<br />8   1   0
<br />2   7   4   4
<br />4   5   2   6   5
<br /><br />(Figure 1)</pre>
						</center>
						<p>
								<br />Figure 1 shows a number triangle. Write a program that calculates the highest sum of numbers passed on a route that starts at the top and ends somewhere on the base. Each step can go either diagonally down to the left or diagonally down to the right. <br /></p>
				</font>
		</p>
		<p>
		</p>
		<p>
		</p>
		<p>
				<font color="blue" size="5">Input</font>
				<br />
				<font face="Times New Roman" size="3">Your program is to read from standard input. The first line contains one integer N: the number of rows in the triangle. The following N lines describe the data of the triangle. The number of rows in the triangle is &gt; 1 but &lt;= 100. The numbers in the triangle, all integers, are between 0 and 99. </font>
		</p>
		<p>
				<font color="blue" size="5">Output</font>
				<br />
				<font face="Times New Roman" size="3">Your program is to write to standard output. The highest sum is written as an integer.</font>
		</p>
		<p>
				<font color="blue" size="5">Sample Input</font>
				<br />
				<font face="Times New Roman" size="3">
						<pre>5
7
3 8
8 1 0 
2 7 4 4
4 5 2 6 5</pre>
				</font>
		</p>
		<p>
		</p>
		<p>
		</p>
		<p>
				<font color="blue" size="5">Sample Output</font>
				<br />
				<font face="Times New Roman" size="3">30<br /><br /><br />分析：<br />题意简化为：<br />从第一行开始走到最后一行，每步可以向下走或右下走。<br />所求即为从第一行走到最后一行经过的数总和的最大值。<br />令p[][]存储input。<br />5<br />7<br />3 8<br />8 1 0 <br />2 7 4 4<br />|     \ |  \<br />4 5 2 6 5<br /><br />如上图，令i为行，j为列,<br />d[i][j]为从第一行走到第i行第j列的最大值。<br />对于(i,j)这个点，它可以从不同方向走来，如图' | '代表从上方走来，' \ '代表从左上方走来。<br /><br />则动态规则方程为：<br />                  {     d[i-1][1]+p[i][1]   (j=1)<br />d[i][j]=Max{     Max( d[i-1][j-1] , d[i-1][j] ) + p[i][j]   (1&lt;j&lt;i)<br />                  {     d[i-1][i-1]+p[i][i]   (j=i)<br /><br />结果为Max(d[n][j]) , (1&lt;=j&lt;=n)<br /><br />代码如下：<pre><pre>#include&lt;cstdio&gt;
int p[100][100];
int d[100][100];
int Max(int a,int b)
{return a&gt;b?a:b;}
int main()
{
	int i,n;
	scanf("%d",&amp;n);
	for(i=1;i&lt;=n;i++)
	{
		int j;
		for(j=1;j&lt;=i;j++)
			scanf("%d",p[i]+j);
	}
	d[1][1]=p[1][1];
	for(i=2;i&lt;=n;i++)
	{
		int j;
		d[i][1]=d[i-1][1]+p[i][1];
		for(j=2;j&lt;=i;j++)
			d[i][j]=Max(d[i-1][j-1],d[i-1][j])+p[i][j];
		d[i][i]=d[i-1][i-1]+p[i][i];
	}
	int max=0;
	for(i=1;i&lt;=n;i++)
	{
		if(d[n][i]&gt;max)
			max=d[n][i];
	}
	printf("%d\n",max);
	return 0;
}
</pre></pre></font>
		</p>
<img src ="http://www.cppblog.com/shyli/aggbug/11764.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/shyli/" target="_blank">beyonlin</a> 2006-08-28 10:31 <a href="http://www.cppblog.com/shyli/archive/2006/08/28/11764.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>深度优先搜索</title><link>http://www.cppblog.com/shyli/archive/2006/08/28/11759.html</link><dc:creator>beyonlin</dc:creator><author>beyonlin</author><pubDate>Sun, 27 Aug 2006 17:23:00 GMT</pubDate><guid>http://www.cppblog.com/shyli/archive/2006/08/28/11759.html</guid><wfw:comment>http://www.cppblog.com/shyli/comments/11759.html</wfw:comment><comments>http://www.cppblog.com/shyli/archive/2006/08/28/11759.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/shyli/comments/commentRss/11759.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/shyli/services/trackbacks/11759.html</trackback:ping><description><![CDATA[今天做出了第一题深度优先搜索题。<br />至此对广度和深度有了一个基本的了解。<br />学ACM总算学到了一点非暴力解决问题的方法。<br /><font size="2">Problem Id:1154  User Id:beyonlin_SCUT <br />Memory:32K  Time:155MS<br />Language:C++  Result:Accepted<br /><a href="http://acm.pku.edu.cn/JudgeOnline/problem?id=1154">http://acm.pku.edu.cn/JudgeOnline/problem?id=1154</a><br /><p align="center"><font color="blue" size="5">LETTERS</font><br />Time Limit:1000MS  Memory Limit:10000K<br />Total Submit:694 Accepted:334 </p><p><font color="blue" size="5">Description</font><br /><font face="Times New Roman" size="3">A single-player game is played on a rectangular board divided in R rows and C columns. There is a single uppercase <br />letter (A-Z) written in every position in the board. <br />Before the begging of the game there is a figure in the upper-left corner of the board (first row, first column). In every move, a player can move the figure to the one of the adjacent positions (up, down,left or right). Only constraint is that <br />a figure cannot visit a position marked with the same letter twice. <br />The goal of the game is to play as many moves as possible. <br />Write a program that will calculate the maximal number of positions in the board the figure can visit in a single game.</font></p><p><font color="blue" size="5">Input</font><br /><font face="Times New Roman" size="3">The first line of the input contains two integers R and C, separated by a single blank character, 1 &lt;= R, S &lt;= 20. <br />The following R lines contain S characters each. Each line represents one row in the board.</font></p><p><font color="blue" size="5">Output</font><br /><font face="Times New Roman" size="3">The first and only line of the output should contain the maximal number of position in the board the figure can visit.</font></p><p><font color="blue" size="5">Sample Input</font><br /><font face="Times New Roman" size="3"><pre>3 6
HFDFFB
AJHGDH
DGAGEH</pre></font></p><p></p><p></p><p></p><p></p><p><font color="blue" size="5">Sample Output</font><br /><font face="Times New Roman"><pre><font size="3">6</font></pre></font><br /></p><p></p><p></p><p><font size="3"></font></p><pre><font size="3">我的程序：<br />#include&lt;cstdio&gt;
#include&lt;stack&gt;
using namespace std;
struct node
{
	int row;
	int col;
	int dire;
};
char p[30][30];
char flag[30];
int incr[4][2]={{0,1},{1,0},{0,-1},{-1,0}};
int main()
{
	int i,row,col;
	scanf("%d%d",&amp;row,&amp;col);
	getchar();
	char ch[30];
	for(i=1;i&lt;=row;i++)
	{
		gets(ch);
		int j;
		for(j=1;j&lt;=col;j++)
			p[i][j]=ch[j-1];
	}
	//初始化，外加一层
	for(i=0;i&lt;=col+1;i++)
	{
		p[0][i]='0';
		p[row+1][i]='0';
	}
	for(i=0;i&lt;=row+1;i++)
	{
		p[i][0]='0';
		p[i][col+1]='0';
	}
	int Maxmove=0;//最大步数
	stack&lt;node&gt;path;<br />        //栈初始化
	int r=1,c=1,dire=0,f=0,move=1;
	node in;
	in.row=r;
	in.col=c;
	in.dire=dire;
	path.push(in);
	flag[f++]=p[r][c];
	while(!path.empty())
	{
		if(dire&lt;4)
		{
			int r2=r+incr[dire][0];
			int c2=c+incr[dire][1];
			bool b=true;
			for(int k=0;k&lt;f;k++)//搜索是否已访问或路不通
			{
				if(flag[k]==p[r2][c2] || p[r2][c2]=='0')
				{
					dire++;
					b=false;
					break;
				}
			}
			if(b)//路通
			{
				node in;
				in.row=r2;
				in.col=c2;
				in.dire=dire;
				path.push(in);//进栈
				move++;
				flag[f++]=p[r2][c2];//标志已访问
				r=r2;
				c=c2;
				dire=0;
			}
		}
		else//找到一个解
		{
			if(move&gt;Maxmove)
				Maxmove=move;
			move--;
			dire=path.top().dire+1;	//回溯，去除访问标志
			path.pop();
			flag[--f]='\0';
			if(!path.empty())
			{
				r=path.top().row;
				c=path.top().col;
			}
		}
	}
	printf("%d\n",Maxmove);
	return 0;
}</font></pre><pre></pre></font><p></p><p></p><img src ="http://www.cppblog.com/shyli/aggbug/11759.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/shyli/" target="_blank">beyonlin</a> 2006-08-28 01:23 <a href="http://www.cppblog.com/shyli/archive/2006/08/28/11759.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>广度优先搜索</title><link>http://www.cppblog.com/shyli/archive/2006/08/24/11633.html</link><dc:creator>beyonlin</dc:creator><author>beyonlin</author><pubDate>Thu, 24 Aug 2006 02:25:00 GMT</pubDate><guid>http://www.cppblog.com/shyli/archive/2006/08/24/11633.html</guid><wfw:comment>http://www.cppblog.com/shyli/comments/11633.html</wfw:comment><comments>http://www.cppblog.com/shyli/archive/2006/08/24/11633.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/shyli/comments/commentRss/11633.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/shyli/services/trackbacks/11633.html</trackback:ping><description><![CDATA[
		<p>今天在PKU上做了我第一题广度优先搜索题：<br />Problem Id:2627  User Id:beyonlin_SCUT <br />Memory:64K  Time:575MS<br />Language:C++  Result:Accepted<br />个人认为算法复杂度应该为O(n^2)或更小。不知是不是这样。<br /><a href="http://acm.pku.edu.cn/JudgeOnline/problem?id=2627">http://acm.pku.edu.cn/JudgeOnline/problem?id=2627 <br /></a></p>
		<p align="center">
				<font color="blue" size="5">Gopher and hawks</font>
				<br />Time Limit:1000MS  Memory Limit:65536K<br />Total Submit:900 Accepted:328 </p>
		<p>
				<font color="blue" size="5">Description</font>
				<br />
				<font face="Times New Roman" size="3">A gopher sits in a hole located at (xs, ys) and wants to get to a hole located at (xt, yt). The gopher can run at a constant speed of v m/sec. However, if the gopher is outside of a hole for more than a m minutes he will become a supper to hawks flying over the holes. Can the gopher make it? </font>
		</p>
		<p>
				<font color="blue" size="5">Input</font>
				<br />
				<font face="Times New Roman" size="3">The first line of input contains two positive integer numbers: v -- gopher's speed in meters per second and m -- the time after which the gopher becomes prey to hawks if he stays outside a hole. The second line of input contains two floating point numbers: the (xs,ys) coordinates of the gopher starting hole. The third line contains the (xt, yt) coordinates of the target hole. Each Subsequent line of input contains two floating point numbers: the (x,y) coordinates of a gopher hole. All distances are in metres, to the nearest mm. </font>
		</p>
		<p>
				<font color="blue" size="5">Output</font>
				<br />
				<font face="Times New Roman" size="3">If the gopher can make it to the target hole, the output line should read "Yes, visiting n other holes.", where n is the minimal number of intermediate holes the gopher has to visit. If the gopher cannot make it the output line should read "No." There are not more than 1000 gopher holes and all coordinates are between -10000 and +10000. </font>
		</p>
		<p>
				<font color="blue" size="5">Sample Input</font>
				<br />
				<font face="Times New Roman" size="3">
						<pre>3 1
0.000 0.000
500.000 0.000
179.000 0.000
358.000 0.000
</pre>
				</font>
		</p>
		<p>
		</p>
		<p>
		</p>
		<p>
				<font color="blue" size="5">Sample Output</font>
				<br />
				<font face="Times New Roman" size="3">
						<pre>Yes, visiting 2 other holes.
</pre>
				</font>
		</p>
		<p>
		</p>
		<p>
		</p>
		<p>
				<font color="blue" size="5">Hint</font>
				<br />
				<font face="Times New Roman" size="3">Sample input 2 <br />5 1 <br />0.000 0.000 <br />0.000 550.000 <br />179.000 0.000 <br />0.000 301.000 <br /><br />Output for sample input 2 <br />No.<br /><br /></font>
				<br />
				<font face="Times New Roman">
						<pre>我的程序：<br /><p></p>#include&lt;cstdio&gt;
#include&lt;cmath&gt;
#include&lt;queue&gt;
using namespace std;
struct node
{
	int point;
	int step;
};
double x[1100],y[1100];
bool flag[1100]={false};
int main()
{
	int i,v,t;
	scanf("%d%d",&amp;v,&amp;t);
	t*=60;
	double beginX,beginY,endX,endY;
	scanf("%lf%lf%lf%lf",&amp;beginX,&amp;beginY,&amp;endX,&amp;endY);
	int n=1;
	while(scanf("%lf%lf",x+n,y+n)!=EOF)
		n++;
	x[0]=beginX;
	y[0]=beginY;
	x[n]=endX;
	y[n]=endY;

	node n1;//队列初始化
	n1.point=0;
	n1.step=0;
	queue&lt;node&gt; que;
	que.push(n1);

	int steps=0;
	while(true)
	{
		if(que.empty())
			break;
		node tmp=que.front();
		que.pop();//出队列
		for(i=1;i&lt;=n;i++)
		{
			if(!flag[i])//标志是否进过队列
			{				
				double time=sqrt(pow(x[i]-x[tmp.point],2.0)+pow(y[i]-y[tmp.point],2.0))/v;
				if(time&lt;t)
				{
					if(i==n)
					{
						steps=tmp.step;
						goto next;
					}
					else
					{
						node in;
						in.point=i;
						in.step=tmp.step+1;
						que.push(in);//进队列
						flag[i]=true;
					}
				}
			}
		}
	}
	next:
	if(steps!=0)
		printf("Yes, visiting %d other holes.\n",steps);
	else
		printf("No.\n");
	return 0;
}</pre>
				</font>
		</p>
<img src ="http://www.cppblog.com/shyli/aggbug/11633.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/shyli/" target="_blank">beyonlin</a> 2006-08-24 10:25 <a href="http://www.cppblog.com/shyli/archive/2006/08/24/11633.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>考试了，ACM暂告一段落</title><link>http://www.cppblog.com/shyli/archive/2006/05/25/7657.html</link><dc:creator>beyonlin</dc:creator><author>beyonlin</author><pubDate>Thu, 25 May 2006 12:35:00 GMT</pubDate><guid>http://www.cppblog.com/shyli/archive/2006/05/25/7657.html</guid><wfw:comment>http://www.cppblog.com/shyli/comments/7657.html</wfw:comment><comments>http://www.cppblog.com/shyli/archive/2006/05/25/7657.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/shyli/comments/commentRss/7657.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/shyli/services/trackbacks/7657.html</trackback:ping><description><![CDATA[
		<font color="#808080" size="2">马上就要期末考了，<br /><br />ACM暂告一段落，<br /><br />考完试后再总结一下这个学期的ACM。</font>
<img src ="http://www.cppblog.com/shyli/aggbug/7657.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/shyli/" target="_blank">beyonlin</a> 2006-05-25 20:35 <a href="http://www.cppblog.com/shyli/archive/2006/05/25/7657.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>My Status</title><link>http://www.cppblog.com/shyli/archive/2006/04/17/5745.html</link><dc:creator>beyonlin</dc:creator><author>beyonlin</author><pubDate>Mon, 17 Apr 2006 04:59:00 GMT</pubDate><guid>http://www.cppblog.com/shyli/archive/2006/04/17/5745.html</guid><wfw:comment>http://www.cppblog.com/shyli/comments/5745.html</wfw:comment><comments>http://www.cppblog.com/shyli/archive/2006/04/17/5745.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/shyli/comments/commentRss/5745.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/shyli/services/trackbacks/5745.html</trackback:ping><description><![CDATA[
		<div class="style1" align="center">
				<p>
						<font size="2">My Status </font>
				</p>
				<p>
						<font size="2">
						</font>
				</p>
				<p>
						<font size="2">
						</font>
				</p>
		</div>
		<table bordercolor="#999999" width="266" align="center" border="1">
				<tbody>
						<tr>
								<td width="49">
										<div align="center">
												<font size="2">Problem</font>
										</div>
								</td>
								<td width="139">
										<div align="center">
												<font size="2">status</font>
										</div>
								</td>
								<td width="56">
										<div align="center">
												<font size="2">time</font>
										</div>
								</td>
						</tr>
						<tr>
								<td>
										<div align="center">
												<font size="2">A</font>
										</div>
								</td>
								<td>
										<div align="center">
												<font size="2">Yes</font>
										</div>
								</td>
								<td>
										<div align="center">
												<font size="2">39</font>
										</div>
								</td>
						</tr>
						<tr>
								<td>
										<div align="center">
												<font size="2">B</font>
										</div>
								</td>
								<td>
										<div align="center">
												<font size="2">Yes</font>
										</div>
								</td>
								<td>
										<div align="center">
												<font size="2">77</font>
										</div>
								</td>
						</tr>
						<tr>
								<td>
										<div align="center">
												<font size="2">G</font>
										</div>
								</td>
								<td>
										<div align="center">
												<font size="2">No-Time-limit Exceeded </font>
										</div>
								</td>
								<td>
										<div align="center">
												<font size="2">96</font>
										</div>
								</td>
						</tr>
						<tr>
								<td>
										<div align="center">
												<font size="2">G</font>
										</div>
								</td>
								<td>
										<div align="center">
												<font size="2">Yes</font>
										</div>
								</td>
								<td>
										<div align="center">
												<font size="2">113</font>
										</div>
								</td>
						</tr>
						<tr>
								<td>
										<div align="center">
												<font size="2">C</font>
										</div>
								</td>
								<td>
										<div align="center">
												<font size="2">Yes</font>
										</div>
								</td>
								<td>
										<div align="center">
												<font size="2">211</font>
										</div>
								</td>
						</tr>
						<tr>
								<td>
										<div align="center">
												<font size="2">E</font>
										</div>
								</td>
								<td>
										<div align="center">
												<font size="2">No-Time-limit Exceeded </font>
										</div>
								</td>
								<td>
										<div align="center">
												<font size="2">265</font>
										</div>
								</td>
						</tr>
				</tbody>
		</table>
		<p class="style1" align="center">
				<font size="2">Solved 4    Time 460</font>
		</p>
<img src ="http://www.cppblog.com/shyli/aggbug/5745.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/shyli/" target="_blank">beyonlin</a> 2006-04-17 12:59 <a href="http://www.cppblog.com/shyli/archive/2006/04/17/5745.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Rank Name Solved Time</title><link>http://www.cppblog.com/shyli/archive/2006/04/17/5676.html</link><dc:creator>beyonlin</dc:creator><author>beyonlin</author><pubDate>Sun, 16 Apr 2006 17:25:00 GMT</pubDate><guid>http://www.cppblog.com/shyli/archive/2006/04/17/5676.html</guid><wfw:comment>http://www.cppblog.com/shyli/comments/5676.html</wfw:comment><comments>http://www.cppblog.com/shyli/archive/2006/04/17/5676.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/shyli/comments/commentRss/5676.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/shyli/services/trackbacks/5676.html</trackback:ping><description><![CDATA[
		<font color="#808080" size="2">Rank Name Solved Time <br /><br />1 16 - team16 8 984 <br />2 13 - team13 8 1141 <br />3 44 - team44 7 718 <br />4 64 - team64 7 1247 <br />5 65 - team65 6 564 <br />6 10 - team10 6 642 <br />7 21 - team21 6 684 <br />8 7 - team7 6 830 <br />9 89 - team89 5 414 <br />10 73 - team73 5 448 <br />11 83 - team83 5 559 <br />12 18 - team18 5 561 <br />13 24 - team24 5 716 <br />14 51 - team51 5 753 <br />15 81 - team81 5 846 <br />16 56 - team56 5 898 <br />17 15 - team15 4 238 <br />18 72 - team72 4 284 <br />19 57 - team57 4 295 <br />20 49 - team49 4 306 <br />21 43 - team43 4 311 <br />22 62 - team62 4 315 <br />23 4 - team4 4 318 <br />24 8 - team8 4 321 <br />25 26 - team26 4 375 <br />26 3 - team3 4 412 <br />27 45 - team45 4 432 <br />28 69 - team69 4 448 <br />29 27 - team27 4 460 <br />30 88 - team88 4 478 <br />31 50 - team50 4 482 <br />32 66 - team66 4 490 <br />33 48 - team48 4 496 <br />34 11 - team11 4 498 <br />35 79 - team79 4 511 <br />36 71 - team71 4 518 <br />37 47 - team47 4 575 <br />38 77 - team77 4 580 <br />39 19 - team19 4 597 <br />40 9 - team9 4 600 <br />41 68 - team68 4 630 <br />42 90 - team90 4 642 <br />43 20 - team20 4 721 <br />44 37 - team37 4 727 <br />45 29 - team29 4 770 <br />46 12 - team12 4 772 <br />47 61 - team61 4 783 <br />48 22 - team22 4 792 <br />49 41 - team41 4 858 <br />50 63 - team63 4 893 <br />51 34 - team34 4 943 <br />52 76 - team76 3 257 <br />53 54 - team54 3 262 <br />54 39 - team39 3 277 <br />55 60 - team60 3 316 <br />56 82 - team82 3 325 <br />57 1 - team1 3 331 <br />58 25 - team25 3 333 <br />59 36 - team36 3 341 <br />60 86 - team86 3 342 <br />61 70 - team70 3 360 <br />62 52 - team52 3 369 <br />63 78 - team78 3 402 <br />64 14 - team14 3 490 <br />65 6 - team6 3 547 <br />66 80 - team80 3 618 <br />67 5 - team5 2 133 <br />68 38 - team38 2 243 <br />69 2 - team2 2 250 <br />70 74 - team74 2 253 <br />71 55 - team55 2 258 <br />72 58 - team58 2 262 <br />73 84 - team84 2 296 <br />74 23 - team23 2 319 <br />75 40 - team40 2 328 <br />76 91 - team91 2 343 <br />77 42 - team42 2 356 <br />78 100 - other 2 437 <br />79 87 - team87 2 459 <br />80 67 - team67 1 88 <br />81 33 - team33 1 118 <br />82 28 - team28 1 193 <br />83 99 - team99 1 313 <br />84 17 - team17 0 0 <br />84 30 - team30 0 0 <br />84 31 - team31 0 0 <br />84 32 - team32 0 0 <br />84 35 - team35 0 0 <br />84 46 - team46 0 0 <br />84 53 - team53 0 0 <br />84 59 - team59 0 0 <br />84 75 - team75 0 0 <br />84 85 - team85 0 0  <br /><br />我的队号：27-team27</font>
<img src ="http://www.cppblog.com/shyli/aggbug/5676.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/shyli/" target="_blank">beyonlin</a> 2006-04-17 01:25 <a href="http://www.cppblog.com/shyli/archive/2006/04/17/5676.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ACM竞赛落下帷幕</title><link>http://www.cppblog.com/shyli/archive/2006/04/17/5675.html</link><dc:creator>beyonlin</dc:creator><author>beyonlin</author><pubDate>Sun, 16 Apr 2006 17:24:00 GMT</pubDate><guid>http://www.cppblog.com/shyli/archive/2006/04/17/5675.html</guid><wfw:comment>http://www.cppblog.com/shyli/comments/5675.html</wfw:comment><comments>http://www.cppblog.com/shyli/archive/2006/04/17/5675.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/shyli/comments/commentRss/5675.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/shyli/services/trackbacks/5675.html</trackback:ping><description><![CDATA[
		<font color="#808080" size="2">我校第二届ACM/ICPC竞赛经历5个小时后终于落下帷幕。<br /><br />从早上10点到下午3点，我队经过共同努力终于解决了8题中的4题。<br /><br />在90多队中排名29。<br /><br />因为是大一，也没有经验，又没有看算法书，所以只做出了几题简单的。<br /><br />也有些大一的牛人搞定7题8题的，真是惭愧!<br /><br />以后继续努力。<br /><br />先写下我的队名吧：SCTCS<br /><br />队号：27-team27<br /><br />有对称感吧。<br /><br />先把各队的成绩记下来吧。<br /><br />因队较多，请点击<a href="/shyli/archive/2006/04/17/5676.html">这里</a>查看。</font>
		<br />
		<br />
		<font color="#808080" size="2">我的<a href="/shyli/archive/2006/04/17/5745.html">比赛状态</a>。</font>
<img src ="http://www.cppblog.com/shyli/aggbug/5675.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/shyli/" target="_blank">beyonlin</a> 2006-04-17 01:24 <a href="http://www.cppblog.com/shyli/archive/2006/04/17/5675.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>谨慎字符数组下标越界！</title><link>http://www.cppblog.com/shyli/archive/2006/03/28/4669.html</link><dc:creator>beyonlin</dc:creator><author>beyonlin</author><pubDate>Mon, 27 Mar 2006 17:11:00 GMT</pubDate><guid>http://www.cppblog.com/shyli/archive/2006/03/28/4669.html</guid><wfw:comment>http://www.cppblog.com/shyli/comments/4669.html</wfw:comment><comments>http://www.cppblog.com/shyli/archive/2006/03/28/4669.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.cppblog.com/shyli/comments/commentRss/4669.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/shyli/services/trackbacks/4669.html</trackback:ping><description><![CDATA[
		<p>
				<font color="#808080" size="2">今天做ACM就是由于没有注意这个问题而Wrong Aswer了几次。</font>
		</p>
		<p>
				<font color="#808080" size="2">题目说明要输入的字符串长度最多为8。</font>
		</p>
		<p>
				<font color="#808080" size="2">因此我就只申请了8个字符。</font>
		</p>
		<p>
				<font color="#808080" size="2">结果当然就是错了。</font>
		</p>
		<p>
				<font color="#808080" size="2">其实字符数组需要一个存储单元来保存结束符“\0”，</font>
		</p>
		<p>
				<font color="#808080" size="2">用来说明一个字符串结束了。</font>
		</p>
		<p>
				<font color="#808080" size="2">因此要申请比字符串多一个存储单元的长度。</font>
		</p>
		<p>
				<font color="#808080" size="2">记住了！！</font>
		</p>
		<p>
				<font color="#808080" size="2">从此不能犯同样错误！<br /></font>
		</p>
<img src ="http://www.cppblog.com/shyli/aggbug/4669.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/shyli/" target="_blank">beyonlin</a> 2006-03-28 01:11 <a href="http://www.cppblog.com/shyli/archive/2006/03/28/4669.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>今天真是不爽！</title><link>http://www.cppblog.com/shyli/archive/2006/03/26/4624.html</link><dc:creator>beyonlin</dc:creator><author>beyonlin</author><pubDate>Sun, 26 Mar 2006 08:26:00 GMT</pubDate><guid>http://www.cppblog.com/shyli/archive/2006/03/26/4624.html</guid><wfw:comment>http://www.cppblog.com/shyli/comments/4624.html</wfw:comment><comments>http://www.cppblog.com/shyli/archive/2006/03/26/4624.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/shyli/comments/commentRss/4624.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/shyli/services/trackbacks/4624.html</trackback:ping><description><![CDATA[
		<font color="#808080" size="2">做ACM题目已经有两个月了。<br /><br />在北大的网站上也做了几十道题了。<br /><br />今天在北大网站上又迎来ACM月赛。<br /><br />时间是今天中午12：00至17:00。<br /><br />可是做了我三个半小时也没做出来一题来。<br /><br />不爽！！</font>
<img src ="http://www.cppblog.com/shyli/aggbug/4624.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/shyli/" target="_blank">beyonlin</a> 2006-03-26 16:26 <a href="http://www.cppblog.com/shyli/archive/2006/03/26/4624.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>