﻿<?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++博客-Search-For-My-Way</title><link>http://www.cppblog.com/pt-lkZsunze/</link><description /><language>zh-cn</language><lastBuildDate>Tue, 14 Apr 2026 23:09:24 GMT</lastBuildDate><pubDate>Tue, 14 Apr 2026 23:09:24 GMT</pubDate><ttl>60</ttl><item><title>各种最短路径&lt;NOCOW版&gt;，人太懒~</title><link>http://www.cppblog.com/pt-lkZsunze/archive/2012/09/17/190994.html</link><dc:creator>彭托</dc:creator><author>彭托</author><pubDate>Mon, 17 Sep 2012 09:54:00 GMT</pubDate><guid>http://www.cppblog.com/pt-lkZsunze/archive/2012/09/17/190994.html</guid><wfw:comment>http://www.cppblog.com/pt-lkZsunze/comments/190994.html</wfw:comment><comments>http://www.cppblog.com/pt-lkZsunze/archive/2012/09/17/190994.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/pt-lkZsunze/comments/commentRss/190994.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/pt-lkZsunze/services/trackbacks/190994.html</trackback:ping><description><![CDATA[<a href="http://221.192.240.22/index.php/%E6%9C%80%E7%9F%AD%E8%B7%AF%E5%BE%84">http://221.192.240.22/index.php/%E6%9C%80%E7%9F%AD%E8%B7%AF%E5%BE%84</a>&nbsp;<img src ="http://www.cppblog.com/pt-lkZsunze/aggbug/190994.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/pt-lkZsunze/" target="_blank">彭托</a> 2012-09-17 17:54 <a href="http://www.cppblog.com/pt-lkZsunze/archive/2012/09/17/190994.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>马踏棋盘所用的两个向量数组</title><link>http://www.cppblog.com/pt-lkZsunze/archive/2012/09/13/190495.html</link><dc:creator>彭托</dc:creator><author>彭托</author><pubDate>Thu, 13 Sep 2012 03:26:00 GMT</pubDate><guid>http://www.cppblog.com/pt-lkZsunze/archive/2012/09/13/190495.html</guid><wfw:comment>http://www.cppblog.com/pt-lkZsunze/comments/190495.html</wfw:comment><comments>http://www.cppblog.com/pt-lkZsunze/archive/2012/09/13/190495.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/pt-lkZsunze/comments/commentRss/190495.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/pt-lkZsunze/services/trackbacks/190495.html</trackback:ping><description><![CDATA[int direct[8][2]={2,1,2,-1,-2,1,-2,-1,1,2,-1,2,1,-2,-1,-2};&nbsp; //落脚点向量<br />int judge[4][2]={1,0,-1,0,0,1,0,-1};&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//卡位向量<br /><br />这里说明一下，在使用的时候可以不用太麻烦，我特意将两个向量对应了起来，如
<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"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #0000ff">for</span><span style="color: #000000">(i</span><span style="color: #000000">=</span><span style="color: #000000">0</span><span style="color: #000000">;i</span><span style="color: #000000">&lt;</span><span style="color: #000000">4</span><span style="color: #000000">;i</span><span style="color: #000000">++</span><span style="color: #000000">)&nbsp;&nbsp;<br /><img id="Codehighlighter1_27_953_Open_Image" onclick="this.style.display='none'; Codehighlighter1_27_953_Open_Text.style.display='none'; Codehighlighter1_27_953_Closed_Image.style.display='inline'; Codehighlighter1_27_953_Closed_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"><img id="Codehighlighter1_27_953_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_27_953_Closed_Text.style.display='none'; Codehighlighter1_27_953_Open_Image.style.display='inline'; Codehighlighter1_27_953_Open_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ContractedBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_27_953_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"><img src="http://www.cppblog.com/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_27_953_Open_Text"><span style="color: #000000">{&nbsp;&nbsp;<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">(chess[pos.x</span><span style="color: #000000">+</span><span style="color: #000000">judge[i][</span><span style="color: #000000">0</span><span style="color: #000000">]][pos.y</span><span style="color: #000000">+</span><span style="color: #000000">judge[i][</span><span style="color: #000000">1</span><span style="color: #000000">]]</span><span style="color: #000000">!=</span><span style="color: #000000">1</span><span style="color: #000000">)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">是否卡位</span><span style="color: #008000"><br /><img id="Codehighlighter1_123_941_Open_Image" onclick="this.style.display='none'; Codehighlighter1_123_941_Open_Text.style.display='none'; Codehighlighter1_123_941_Closed_Image.style.display='inline'; Codehighlighter1_123_941_Closed_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"><img id="Codehighlighter1_123_941_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_123_941_Closed_Text.style.display='none'; Codehighlighter1_123_941_Open_Image.style.display='inline'; Codehighlighter1_123_941_Open_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top"></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_123_941_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"><img src="http://www.cppblog.com/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_123_941_Open_Text"><span style="color: #000000">{&nbsp;&nbsp;<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;x</span><span style="color: #000000">=</span><span style="color: #000000">pos.x</span><span style="color: #000000">+</span><span style="color: #000000">direct[i</span><span style="color: #000000">*</span><span style="color: #000000">2</span><span style="color: #000000">][</span><span style="color: #000000">0</span><span style="color: #000000">];&nbsp;<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;y</span><span style="color: #000000">=</span><span style="color: #000000">pos.y</span><span style="color: #000000">+</span><span style="color: #000000">direct[i</span><span style="color: #000000">*</span><span style="color: #000000">2</span><span style="color: #000000">][</span><span style="color: #000000">1</span><span style="color: #000000">];&nbsp;<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">(x</span><span style="color: #000000">&lt;=</span><span style="color: #000000">p</span><span style="color: #000000">&amp;&amp;</span><span style="color: #000000">x</span><span style="color: #000000">&gt;=</span><span style="color: #000000">1</span><span style="color: #000000">&amp;&amp;</span><span style="color: #000000">y</span><span style="color: #000000">&lt;=</span><span style="color: #000000">q</span><span style="color: #000000">&amp;&amp;</span><span style="color: #000000">y</span><span style="color: #000000">&gt;=</span><span style="color: #000000">1</span><span style="color: #000000">&amp;&amp;</span><span style="color: #000000">visited[x][y]</span><span style="color: #000000">!=</span><span style="color: #000000">1</span><span style="color: #000000">&amp;&amp;</span><span style="color: #000000">chess[x][y]</span><span style="color: #000000">!=</span><span style="color: #000000">1</span><span style="color: #000000">)&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">该点能否落脚</span><span style="color: #008000"><br /><img id="Codehighlighter1_320_527_Open_Image" onclick="this.style.display='none'; Codehighlighter1_320_527_Open_Text.style.display='none'; Codehighlighter1_320_527_Closed_Image.style.display='inline'; Codehighlighter1_320_527_Closed_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"><img id="Codehighlighter1_320_527_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_320_527_Closed_Text.style.display='none'; Codehighlighter1_320_527_Open_Image.style.display='inline'; Codehighlighter1_320_527_Open_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top"></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_320_527_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"><img src="http://www.cppblog.com/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_320_527_Open_Text"><span style="color: #000000">{&nbsp;&nbsp;<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;visited[x][y]</span><span style="color: #000000">=</span><span style="color: #000000">1</span><span style="color: #000000">;&nbsp;&nbsp;<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;temp.x</span><span style="color: #000000">=</span><span style="color: #000000">x;&nbsp;&nbsp;<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;temp.y</span><span style="color: #000000">=</span><span style="color: #000000">y;&nbsp;&nbsp;<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;temp.step</span><span style="color: #000000">=</span><span style="color: #000000">pos.step</span><span style="color: #000000">+</span><span style="color: #000000">1</span><span style="color: #000000">;&nbsp;<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;que.push(temp);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><img src="http://www.cppblog.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000">&nbsp;&nbsp;<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;x</span><span style="color: #000000">=</span><span style="color: #000000">pos.x</span><span style="color: #000000">+</span><span style="color: #000000">direct[i</span><span style="color: #000000">*</span><span style="color: #000000">2</span><span style="color: #000000">+</span><span style="color: #000000">1</span><span style="color: #000000">][</span><span style="color: #000000">0</span><span style="color: #000000">];&nbsp;<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;y</span><span style="color: #000000">=</span><span style="color: #000000">pos.y</span><span style="color: #000000">+</span><span style="color: #000000">direct[i</span><span style="color: #000000">*</span><span style="color: #000000">2</span><span style="color: #000000">+</span><span style="color: #000000">1</span><span style="color: #000000">][</span><span style="color: #000000">1</span><span style="color: #000000">];&nbsp;<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">(x</span><span style="color: #000000">&lt;=</span><span style="color: #000000">p</span><span style="color: #000000">&amp;&amp;</span><span style="color: #000000">x</span><span style="color: #000000">&gt;=</span><span style="color: #000000">1</span><span style="color: #000000">&amp;&amp;</span><span style="color: #000000">y</span><span style="color: #000000">&lt;=</span><span style="color: #000000">q</span><span style="color: #000000">&amp;&amp;</span><span style="color: #000000">y</span><span style="color: #000000">&gt;=</span><span style="color: #000000">1</span><span style="color: #000000">&amp;&amp;</span><span style="color: #000000">visited[x][y]</span><span style="color: #000000">!=</span><span style="color: #000000">1</span><span style="color: #000000">&amp;&amp;</span><span style="color: #000000">chess[x][y]</span><span style="color: #000000">!=</span><span style="color: #000000">1</span><span style="color: #000000">)&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">该点能否落脚</span><span style="color: #008000"><br /><img id="Codehighlighter1_721_925_Open_Image" onclick="this.style.display='none'; Codehighlighter1_721_925_Open_Text.style.display='none'; Codehighlighter1_721_925_Closed_Image.style.display='inline'; Codehighlighter1_721_925_Closed_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"><img id="Codehighlighter1_721_925_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_721_925_Closed_Text.style.display='none'; Codehighlighter1_721_925_Open_Image.style.display='inline'; Codehighlighter1_721_925_Open_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top"></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_721_925_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"><img src="http://www.cppblog.com/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_721_925_Open_Text"><span style="color: #000000">{&nbsp;&nbsp;<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;visited[x][y]</span><span style="color: #000000">=</span><span style="color: #000000">1</span><span style="color: #000000">;&nbsp;&nbsp;<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;temp.x</span><span style="color: #000000">=</span><span style="color: #000000">x;&nbsp;&nbsp;<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;temp.y</span><span style="color: #000000">=</span><span style="color: #000000">y;&nbsp;&nbsp;<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;temp.step</span><span style="color: #000000">=</span><span style="color: #000000">pos.step</span><span style="color: #000000">+</span><span style="color: #000000">1</span><span style="color: #000000">;&nbsp;&nbsp;<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;que.push(temp);&nbsp;<br /><img src="http://www.cppblog.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000">&nbsp;&nbsp;<br /><img src="http://www.cppblog.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000">&nbsp;&nbsp;<br /><img src="http://www.cppblog.com/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top"  alt="" /></span></div><br /><img src ="http://www.cppblog.com/pt-lkZsunze/aggbug/190495.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/pt-lkZsunze/" target="_blank">彭托</a> 2012-09-13 11:26 <a href="http://www.cppblog.com/pt-lkZsunze/archive/2012/09/13/190495.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>很好用的矩阵快速幂，给自己留模版&lt;转，原地址忘了&gt;</title><link>http://www.cppblog.com/pt-lkZsunze/archive/2012/09/12/190433.html</link><dc:creator>彭托</dc:creator><author>彭托</author><pubDate>Wed, 12 Sep 2012 11:36:00 GMT</pubDate><guid>http://www.cppblog.com/pt-lkZsunze/archive/2012/09/12/190433.html</guid><wfw:comment>http://www.cppblog.com/pt-lkZsunze/comments/190433.html</wfw:comment><comments>http://www.cppblog.com/pt-lkZsunze/archive/2012/09/12/190433.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/pt-lkZsunze/comments/commentRss/190433.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/pt-lkZsunze/services/trackbacks/190433.html</trackback:ping><description><![CDATA[<div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->#include&lt;stdio.h&gt;<br /><span style="color: #0000FF; ">#define</span>&nbsp;Max&nbsp;2<br /><span style="color: #0000FF; ">#define</span>&nbsp;kmod&nbsp;7<br />typedef&nbsp;<span style="color: #0000FF; ">struct</span>&nbsp;Matrix{<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;M[Max][Max];<br />}Matrix;<br />Matrix&nbsp;P;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">等比矩阵,在main中修正;</span><span style="color: #008000; "><br /></span>Matrix&nbsp;I={1,0,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0,1};&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">单位矩阵,需根据Max扩大;</span><span style="color: #008000; "><br /></span>Matrix&nbsp;Matrixmul(Matrix&nbsp;a,Matrix&nbsp;b){&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">矩阵乘法;</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;Matrix&nbsp;ret;<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;i,j,k;<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>(i=0;i&lt;Max;i++)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>(j=0;j&lt;Max;j++)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ret.M[i][j]=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>(k=0;k&lt;Max;k++)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ret.M[i][j]+=(a.M[i][k]*b.M[k][j])%kmod;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ret.M[i][j]%=kmod;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;ret;<br />}<br />Matrix&nbsp;quickpow(__int64&nbsp;n){&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;快速幂;</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;Matrix&nbsp;m=P,b=I;<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">while</span>(n&gt;0){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>(n&amp;1)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;b=Matrixmul(b,m);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;n&gt;&gt;=1;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m=Matrixmul(m,m);<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;b;<br />}</div><img src ="http://www.cppblog.com/pt-lkZsunze/aggbug/190433.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/pt-lkZsunze/" target="_blank">彭托</a> 2012-09-12 19:36 <a href="http://www.cppblog.com/pt-lkZsunze/archive/2012/09/12/190433.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>