﻿<?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++博客-Gotta Write A Code</title><link>http://www.cppblog.com/bennycen/</link><description /><language>zh-cn</language><lastBuildDate>Tue, 07 Apr 2026 07:58:29 GMT</lastBuildDate><pubDate>Tue, 07 Apr 2026 07:58:29 GMT</pubDate><ttl>60</ttl><item><title>DX笔记</title><link>http://www.cppblog.com/bennycen/archive/2012/05/03/173603.html</link><dc:creator>bennycen</dc:creator><author>bennycen</author><pubDate>Thu, 03 May 2012 13:38:00 GMT</pubDate><guid>http://www.cppblog.com/bennycen/archive/2012/05/03/173603.html</guid><wfw:comment>http://www.cppblog.com/bennycen/comments/173603.html</wfw:comment><comments>http://www.cppblog.com/bennycen/archive/2012/05/03/173603.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cppblog.com/bennycen/comments/commentRss/173603.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/bennycen/services/trackbacks/173603.html</trackback:ping><description><![CDATA[<div><div>1. 凹凸纹理映射</div><div>凹凸纹理存放在一个纹理图片中，其(R,G,B)分别对应(u,v,w)的normalize向量，由于(R,G,B)的归一化后的范围是(0-1)，故要通过(x - 0.5)*2转换成(-1,1)的范围。</div><div>另外，由于凹凸纹理记录的是针对一个垂直于视线的平面的向量，如果将其贴到其他物体上，如环体，球体，就必须计算纹理坐标空间，就是将不垂直于视线的变换为垂直于视线的。可以构造渲染object的(法线，切线)，并且得垂直于法线切线的向量，构成坐标系，然后计算光线方向lightDir和视线方向viewDir时，要将其变换到纹理空间坐标系去。</div><div>最后在pixel shader中根据lightDir、viewDir和texcoord，像一般光照计算那样计算，只不过其&#8220;法向量&#8221;由凹凸纹理提供。</div><div><img src="http://www.cppblog.com/images/cppblog_com/bennycen/5-1.PNG" width="648" height="514" alt="" /></div><div>2. 立方体环境映射</div><div>先构造立方体纹理，CubeMap，像个纸盒打开6个面那样。然后逐顶点计算反射向量，计算如下：R = I - 2*N*dot(I,N)，然后在pixel shader中texCUBE。<br /><img src="http://www.cppblog.com/images/cppblog_com/bennycen/5-2.JPG" width="648" height="514" alt="" /></div><div></div><div>3.折射反射</div><div>在2中再添加一个折射向量，然后pixel shader中两次texCUBE后混合一下。<br /><img src="http://www.cppblog.com/images/cppblog_com/bennycen/5-3.JPG" width="648" height="514" alt="" /><br /><br /></div></div><img src ="http://www.cppblog.com/bennycen/aggbug/173603.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/bennycen/" target="_blank">bennycen</a> 2012-05-03 21:38 <a href="http://www.cppblog.com/bennycen/archive/2012/05/03/173603.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>hdu 2087 hud 1686</title><link>http://www.cppblog.com/bennycen/archive/2012/03/29/169456.html</link><dc:creator>bennycen</dc:creator><author>bennycen</author><pubDate>Thu, 29 Mar 2012 12:13:00 GMT</pubDate><guid>http://www.cppblog.com/bennycen/archive/2012/03/29/169456.html</guid><wfw:comment>http://www.cppblog.com/bennycen/comments/169456.html</wfw:comment><comments>http://www.cppblog.com/bennycen/archive/2012/03/29/169456.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/bennycen/comments/commentRss/169456.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/bennycen/services/trackbacks/169456.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 这两题是单模式串匹配hdu2087 数据量较小，可以采用标准库strstr轻松完成 Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->&nbsp;1#include&nbsp;&lt;stdio.h&gt;&nbsp;2#include&nbsp;&...&nbsp;&nbsp;<a href='http://www.cppblog.com/bennycen/archive/2012/03/29/169456.html'>阅读全文</a><img src ="http://www.cppblog.com/bennycen/aggbug/169456.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/bennycen/" target="_blank">bennycen</a> 2012-03-29 20:13 <a href="http://www.cppblog.com/bennycen/archive/2012/03/29/169456.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>hdu 2896 多模式串匹配2</title><link>http://www.cppblog.com/bennycen/archive/2012/03/29/169451.html</link><dc:creator>bennycen</dc:creator><author>bennycen</author><pubDate>Thu, 29 Mar 2012 10:18:00 GMT</pubDate><guid>http://www.cppblog.com/bennycen/archive/2012/03/29/169451.html</guid><wfw:comment>http://www.cppblog.com/bennycen/comments/169451.html</wfw:comment><comments>http://www.cppblog.com/bennycen/archive/2012/03/29/169451.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/bennycen/comments/commentRss/169451.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/bennycen/services/trackbacks/169451.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 也是一道AC自动机解决多模式串匹配的问题，注意的是用一个visited记录id的出现，以及病毒的数组需要排序，当病毒数超过3时可以结束匹配。代码如下：Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->&nbsp;&nbsp;1#include&nbs...&nbsp;&nbsp;<a href='http://www.cppblog.com/bennycen/archive/2012/03/29/169451.html'>阅读全文</a><img src ="http://www.cppblog.com/bennycen/aggbug/169451.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/bennycen/" target="_blank">bennycen</a> 2012-03-29 18:18 <a href="http://www.cppblog.com/bennycen/archive/2012/03/29/169451.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>hdu 2222 多模式串匹配</title><link>http://www.cppblog.com/bennycen/archive/2012/03/29/169449.html</link><dc:creator>bennycen</dc:creator><author>bennycen</author><pubDate>Thu, 29 Mar 2012 10:15:00 GMT</pubDate><guid>http://www.cppblog.com/bennycen/archive/2012/03/29/169449.html</guid><wfw:comment>http://www.cppblog.com/bennycen/comments/169449.html</wfw:comment><comments>http://www.cppblog.com/bennycen/archive/2012/03/29/169449.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/bennycen/comments/commentRss/169449.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/bennycen/services/trackbacks/169449.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: AC自动机用于多模式串匹配Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->&nbsp;&nbsp;1#include&nbsp;&lt;stdio.h&gt;&nbsp;&nbsp;2#include&nbsp;&lt;string.h&gt;&n...&nbsp;&nbsp;<a href='http://www.cppblog.com/bennycen/archive/2012/03/29/169449.html'>阅读全文</a><img src ="http://www.cppblog.com/bennycen/aggbug/169449.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/bennycen/" target="_blank">bennycen</a> 2012-03-29 18:15 <a href="http://www.cppblog.com/bennycen/archive/2012/03/29/169449.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>水题两道</title><link>http://www.cppblog.com/bennycen/archive/2012/03/26/169047.html</link><dc:creator>bennycen</dc:creator><author>bennycen</author><pubDate>Mon, 26 Mar 2012 12:19:00 GMT</pubDate><guid>http://www.cppblog.com/bennycen/archive/2012/03/26/169047.html</guid><wfw:comment>http://www.cppblog.com/bennycen/comments/169047.html</wfw:comment><comments>http://www.cppblog.com/bennycen/archive/2012/03/26/169047.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/bennycen/comments/commentRss/169047.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/bennycen/services/trackbacks/169047.html</trackback:ping><description><![CDATA[Poj 2081<br /><div>http://poj.org/problem?id=2081<br />求数列第i项&nbsp;0, 1, 3, 6, 2, 7, 13, 20, 12, 21, 11, 22, 10, 23, 9<br />解法：按照题目要求递推即可<br /><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 />--><span style="color: #000000; ">#include&nbsp;</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">stdio.h</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; "><br />#include&nbsp;</span><span style="color: #000000; ">&lt;</span><span style="color: #0000FF; ">string</span><span style="color: #000000; ">.h</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; "><br /><br /></span><span style="color: #0000FF; ">bool</span><span style="color: #000000; ">&nbsp;visited[</span><span style="color: #000000; ">4000005</span><span style="color: #000000; ">];<br /></span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;nums[</span><span style="color: #000000; ">4000005</span><span style="color: #000000; ">];<br /><br /></span><span style="color: #0000FF; ">void</span><span style="color: #000000; ">&nbsp;pre()<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;memset(visited,</span><span style="color: #000000; ">0</span><span style="color: #000000; ">,</span><span style="color: #0000FF; ">sizeof</span><span style="color: #000000; ">(visited));<br />&nbsp;&nbsp;&nbsp;&nbsp;memset(nums,</span><span style="color: #000000; ">0</span><span style="color: #000000; ">,</span><span style="color: #0000FF; ">sizeof</span><span style="color: #000000; ">(nums));<br />&nbsp;&nbsp;&nbsp;&nbsp;visited[</span><span style="color: #000000; ">0</span><span style="color: #000000; ">]&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">true</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">for</span><span style="color: #000000; ">&nbsp;(</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;i&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">1</span><span style="color: #000000; ">;&nbsp;i&nbsp;</span><span style="color: #000000; ">&lt;=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">500000</span><span style="color: #000000; ">;&nbsp;</span><span style="color: #000000; ">++</span><span style="color: #000000; ">i)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;k&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;nums[i</span><span style="color: #000000; ">-</span><span style="color: #000000; ">1</span><span style="color: #000000; ">]&nbsp;</span><span style="color: #000000; ">-</span><span style="color: #000000; ">&nbsp;i;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">&nbsp;(k&nbsp;</span><span style="color: #000000; ">&lt;=</span><span style="color: #000000; ">0</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">||</span><span style="color: #000000; ">&nbsp;visited[k])<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;nums[i]&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;nums[i</span><span style="color: #000000; ">-</span><span style="color: #000000; ">1</span><span style="color: #000000; ">]&nbsp;</span><span style="color: #000000; ">+</span><span style="color: #000000; ">&nbsp;i;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;visited[nums[i]]&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">true</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">else</span><span style="color: #000000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;nums[i]&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;nums[i</span><span style="color: #000000; ">-</span><span style="color: #000000; ">1</span><span style="color: #000000; ">]&nbsp;</span><span style="color: #000000; ">-</span><span style="color: #000000; ">&nbsp;i;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;visited[nums[i]]&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">true</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />}<br /><br /></span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;main()<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;pre();<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;n;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">while</span><span style="color: #000000; ">(scanf(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">%d</span><span style="color: #000000; ">"</span><span style="color: #000000; ">,</span><span style="color: #000000; ">&amp;</span><span style="color: #000000; ">n)&nbsp;</span><span style="color: #000000; ">!=</span><span style="color: #000000; ">&nbsp;EOF)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">&nbsp;(n&nbsp;</span><span style="color: #000000; ">==</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">-</span><span style="color: #000000; ">1</span><span style="color: #000000; ">)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">break</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">%d\n</span><span style="color: #000000; ">"</span><span style="color: #000000; ">,nums[n]);<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">0</span><span style="color: #000000; ">;<br />}</span></div><br />2250&nbsp;<br /><div>http://poj.org/problem?id=2250</div>最长公共串<br /><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 />--><span style="color: #008080; ">&nbsp; 1</span>&nbsp;<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 /></span><span style="color: #008080; ">&nbsp;&nbsp;2</span>&nbsp;<span style="color: #000000; ">#include&nbsp;</span><span style="color: #000000; ">&lt;</span><span style="color: #0000FF; ">string</span><span style="color: #000000; ">.h</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; "><br /></span><span style="color: #008080; ">&nbsp;&nbsp;3</span>&nbsp;<span style="color: #000000; ">#include&nbsp;</span><span style="color: #000000; ">&lt;</span><span style="color: #0000FF; ">string</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; "><br /></span><span style="color: #008080; ">&nbsp;&nbsp;4</span>&nbsp;<span style="color: #000000; ">#include&nbsp;</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">vector</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; "><br /></span><span style="color: #008080; ">&nbsp;&nbsp;5</span>&nbsp;<span style="color: #000000; "></span><span style="color: #0000FF; ">using</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">namespace</span><span style="color: #000000; ">&nbsp;std;<br /></span><span style="color: #008080; ">&nbsp;&nbsp;6</span>&nbsp;<span style="color: #000000; "><br /></span><span style="color: #008080; ">&nbsp;&nbsp;7</span>&nbsp;<span style="color: #000000; "></span><span style="color: #0000FF; ">string</span><span style="color: #000000; ">&nbsp;strs1[</span><span style="color: #000000; ">128</span><span style="color: #000000; ">];<br /></span><span style="color: #008080; ">&nbsp;&nbsp;8</span>&nbsp;<span style="color: #000000; "></span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;len1;<br /></span><span style="color: #008080; ">&nbsp;&nbsp;9</span>&nbsp;<span style="color: #000000; "></span><span style="color: #0000FF; ">string</span><span style="color: #000000; ">&nbsp;strs2[</span><span style="color: #000000; ">128</span><span style="color: #000000; ">];<br /></span><span style="color: #008080; ">&nbsp;10</span>&nbsp;<span style="color: #000000; "></span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;len2;<br /></span><span style="color: #008080; ">&nbsp;11</span>&nbsp;<span style="color: #000000; "></span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;dp[</span><span style="color: #000000; ">128</span><span style="color: #000000; ">][</span><span style="color: #000000; ">128</span><span style="color: #000000; ">];<br /></span><span style="color: #008080; ">&nbsp;12</span>&nbsp;<span style="color: #000000; "></span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;flags[</span><span style="color: #000000; ">128</span><span style="color: #000000; ">][</span><span style="color: #000000; ">128</span><span style="color: #000000; ">];</span><span style="color: #008000; ">//</span><span style="color: #008000; ">1&nbsp;上&nbsp;2&nbsp;左&nbsp;3&nbsp;对角</span><span style="color: #008000; "><br /></span><span style="color: #008080; ">&nbsp;13</span>&nbsp;<span style="color: #008000; "></span><span style="color: #000000; "><br /></span><span style="color: #008080; ">&nbsp;14</span>&nbsp;<span style="color: #000000; "></span><span style="color: #0000FF; ">void</span><span style="color: #000000; ">&nbsp;Test()<br /></span><span style="color: #008080; ">&nbsp;15</span>&nbsp;<span style="color: #000000; ">{<br /></span><span style="color: #008080; ">&nbsp;16</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;memset(dp,</span><span style="color: #000000; ">0</span><span style="color: #000000; ">,</span><span style="color: #0000FF; ">sizeof</span><span style="color: #000000; ">(dp));<br /></span><span style="color: #008080; ">&nbsp;17</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;memset(flags,</span><span style="color: #000000; ">0</span><span style="color: #000000; ">,</span><span style="color: #0000FF; ">sizeof</span><span style="color: #000000; ">(flags));<br /></span><span style="color: #008080; ">&nbsp;18</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">for</span><span style="color: #000000; ">&nbsp;(</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;i&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">1</span><span style="color: #000000; ">;&nbsp;i&nbsp;</span><span style="color: #000000; ">&lt;=</span><span style="color: #000000; ">&nbsp;len1;&nbsp;</span><span style="color: #000000; ">++</span><span style="color: #000000; ">i)<br /></span><span style="color: #008080; ">&nbsp;19</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;{<br /></span><span style="color: #008080; ">&nbsp;20</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">for</span><span style="color: #000000; ">&nbsp;(</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;j&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">1</span><span style="color: #000000; ">;&nbsp;j&nbsp;</span><span style="color: #000000; ">&lt;=</span><span style="color: #000000; ">&nbsp;len2;&nbsp;</span><span style="color: #000000; ">++</span><span style="color: #000000; ">j)<br /></span><span style="color: #008080; ">&nbsp;21</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br /></span><span style="color: #008080; ">&nbsp;22</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">&nbsp;(strs1[i]&nbsp;</span><span style="color: #000000; ">==</span><span style="color: #000000; ">&nbsp;strs2[j])<br /></span><span style="color: #008080; ">&nbsp;23</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br /></span><span style="color: #008080; ">&nbsp;24</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dp[i][j]&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;dp[i</span><span style="color: #000000; ">-</span><span style="color: #000000; ">1</span><span style="color: #000000; ">][j</span><span style="color: #000000; ">-</span><span style="color: #000000; ">1</span><span style="color: #000000; ">]&nbsp;</span><span style="color: #000000; ">+</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">1</span><span style="color: #000000; ">;<br /></span><span style="color: #008080; ">&nbsp;25</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;flags[i][j]&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">3</span><span style="color: #000000; ">;<br /></span><span style="color: #008080; ">&nbsp;26</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /></span><span style="color: #008080; ">&nbsp;27</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">else</span><span style="color: #000000; "><br /></span><span style="color: #008080; ">&nbsp;28</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br /></span><span style="color: #008080; ">&nbsp;29</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;m1&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;dp[i</span><span style="color: #000000; ">-</span><span style="color: #000000; ">1</span><span style="color: #000000; ">][j];<br /></span><span style="color: #008080; ">&nbsp;30</span>&nbsp;<span style="color: #000000; ">&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;m2&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;dp[i][j</span><span style="color: #000000; ">-</span><span style="color: #000000; ">1</span><span style="color: #000000; ">];<br /></span><span style="color: #008080; ">&nbsp;31</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">&nbsp;(m1&nbsp;</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">&nbsp;m2)<br /></span><span style="color: #008080; ">&nbsp;32</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br /></span><span style="color: #008080; ">&nbsp;33</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dp[i][j]&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;m2;<br /></span><span style="color: #008080; ">&nbsp;34</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;flags[i][j]&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">2</span><span style="color: #000000; ">;<br /></span><span style="color: #008080; ">&nbsp;35</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /></span><span style="color: #008080; ">&nbsp;36</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">else</span><span style="color: #000000; "><br /></span><span style="color: #008080; ">&nbsp;37</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br /></span><span style="color: #008080; ">&nbsp;38</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dp[i][j]&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;m1;<br /></span><span style="color: #008080; ">&nbsp;39</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;flags[i][j]&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">1</span><span style="color: #000000; ">;<br /></span><span style="color: #008080; ">&nbsp;40</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /></span><span style="color: #008080; ">&nbsp;41</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /></span><span style="color: #008080; ">&nbsp;42</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /></span><span style="color: #008080; ">&nbsp;43</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;}<br /></span><span style="color: #008080; ">&nbsp;44</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;pos1&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;len1;<br /></span><span style="color: #008080; ">&nbsp;45</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;pos2&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;len2;<br /></span><span style="color: #008080; ">&nbsp;46</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;vector</span><span style="color: #000000; ">&lt;</span><span style="color: #0000FF; ">string</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; ">&nbsp;vec;<br /></span><span style="color: #008080; ">&nbsp;47</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">while</span><span style="color: #000000; ">(</span><span style="color: #0000FF; ">true</span><span style="color: #000000; ">)<br /></span><span style="color: #008080; ">&nbsp;48</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;{<br /></span><span style="color: #008080; ">&nbsp;49</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">&nbsp;(flags[pos1][pos2]&nbsp;</span><span style="color: #000000; ">==</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">3</span><span style="color: #000000; ">)<br /></span><span style="color: #008080; ">&nbsp;50</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br /></span><span style="color: #008080; ">&nbsp;51</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;vec.push_back(strs1[pos1]);<br /></span><span style="color: #008080; ">&nbsp;52</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000; ">--</span><span style="color: #000000; ">pos1;<br /></span><span style="color: #008080; ">&nbsp;53</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000; ">--</span><span style="color: #000000; ">pos2;<br /></span><span style="color: #008080; ">&nbsp;54</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /></span><span style="color: #008080; ">&nbsp;55</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">else</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">&nbsp;(flags[pos1][pos2]&nbsp;</span><span style="color: #000000; ">==</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">2</span><span style="color: #000000; ">)<br /></span><span style="color: #008080; ">&nbsp;56</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br /></span><span style="color: #008080; ">&nbsp;57</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000; ">--</span><span style="color: #000000; ">pos2;<br /></span><span style="color: #008080; ">&nbsp;58</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /></span><span style="color: #008080; ">&nbsp;59</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">else</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">&nbsp;(flags[pos1][pos2]&nbsp;</span><span style="color: #000000; ">==</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">1</span><span style="color: #000000; ">)<br /></span><span style="color: #008080; ">&nbsp;60</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br /></span><span style="color: #008080; ">&nbsp;61</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000; ">--</span><span style="color: #000000; ">pos1;<br /></span><span style="color: #008080; ">&nbsp;62</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /></span><span style="color: #008080; ">&nbsp;63</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">else</span><span style="color: #000000; "><br /></span><span style="color: #008080; ">&nbsp;64</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">break</span><span style="color: #000000; ">;<br /></span><span style="color: #008080; ">&nbsp;65</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;}<br /></span><span style="color: #008080; ">&nbsp;66</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">for</span><span style="color: #000000; ">&nbsp;(</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;i&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;&nbsp;vec.size()</span><span style="color: #000000; ">-</span><span style="color: #000000; ">1</span><span style="color: #000000; ">;&nbsp;i&nbsp;</span><span style="color: #000000; ">&gt;=</span><span style="color: #000000; ">0</span><span style="color: #000000; ">&nbsp;;&nbsp;</span><span style="color: #000000; ">--</span><span style="color: #000000; ">i)<br /></span><span style="color: #008080; ">&nbsp;67</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;{<br /></span><span style="color: #008080; ">&nbsp;68</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;</span><span style="color: #000000; ">&lt;&lt;</span><span style="color: #000000; ">&nbsp;vec[i];<br /></span><span style="color: #008080; ">&nbsp;69</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">&nbsp;(i&nbsp;</span><span style="color: #000000; ">==</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">0</span><span style="color: #000000; ">)<br /></span><span style="color: #008080; ">&nbsp;70</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br /></span><span style="color: #008080; ">&nbsp;71</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;</span><span style="color: #000000; ">&lt;&lt;</span><span style="color: #000000; ">&nbsp;endl;<br /></span><span style="color: #008080; ">&nbsp;72</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /></span><span style="color: #008080; ">&nbsp;73</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">else</span><span style="color: #000000; "><br /></span><span style="color: #008080; ">&nbsp;74</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br /></span><span style="color: #008080; ">&nbsp;75</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;</span><span style="color: #000000; ">&lt;&lt;</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; ">;<br /></span><span style="color: #008080; ">&nbsp;76</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /></span><span style="color: #008080; ">&nbsp;77</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;}<br /></span><span style="color: #008080; ">&nbsp;78</span>&nbsp;<span style="color: #000000; ">}<br /></span><span style="color: #008080; ">&nbsp;79</span>&nbsp;<span style="color: #000000; "><br /></span><span style="color: #008080; ">&nbsp;80</span>&nbsp;<span style="color: #000000; "></span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;main()<br /></span><span style="color: #008080; ">&nbsp;81</span>&nbsp;<span style="color: #000000; ">{<br /></span><span style="color: #008080; ">&nbsp;82</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">freopen("data.txt","r",stdin);</span><span style="color: #008000; "><br /></span><span style="color: #008080; ">&nbsp;83</span>&nbsp;<span style="color: #008000; "></span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">string</span><span style="color: #000000; ">&nbsp;input;<br /></span><span style="color: #008080; ">&nbsp;84</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;k&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">0</span><span style="color: #000000; ">;<br /></span><span style="color: #008080; ">&nbsp;85</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;len1&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;len2&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">0</span><span style="color: #000000; ">;<br /></span><span style="color: #008080; ">&nbsp;86</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">while</span><span style="color: #000000; ">(cin&nbsp;</span><span style="color: #000000; ">&gt;&gt;</span><span style="color: #000000; ">&nbsp;input)<br /></span><span style="color: #008080; ">&nbsp;87</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;{<br /></span><span style="color: #008080; ">&nbsp;88</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">&nbsp;(input&nbsp;</span><span style="color: #000000; ">==</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">"</span><span style="color: #000000; ">#</span><span style="color: #000000; ">"</span><span style="color: #000000; ">)<br /></span><span style="color: #008080; ">&nbsp;89</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br /></span><span style="color: #008080; ">&nbsp;90</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">&nbsp;(k&nbsp;</span><span style="color: #000000; ">==</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">1</span><span style="color: #000000; ">)<br /></span><span style="color: #008080; ">&nbsp;91</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br /></span><span style="color: #008080; ">&nbsp;92</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Test();<br /></span><span style="color: #008080; ">&nbsp;93</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;k&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">0</span><span style="color: #000000; ">;<br /></span><span style="color: #008080; ">&nbsp;94</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;len1&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;len2&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">0</span><span style="color: #000000; ">;<br /></span><span style="color: #008080; ">&nbsp;95</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">continue</span><span style="color: #000000; ">;<br /></span><span style="color: #008080; ">&nbsp;96</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /></span><span style="color: #008080; ">&nbsp;97</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">else</span><span style="color: #000000; "><br /></span><span style="color: #008080; ">&nbsp;98</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br /></span><span style="color: #008080; ">&nbsp;99</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;k&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">1</span><span style="color: #000000; ">;<br /></span><span style="color: #008080; ">100</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /></span><span style="color: #008080; ">101</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /></span><span style="color: #008080; ">102</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">&nbsp;(k&nbsp;</span><span style="color: #000000; ">==</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">0</span><span style="color: #000000; ">)<br /></span><span style="color: #008080; ">103</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br /></span><span style="color: #008080; ">104</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;strs1[</span><span style="color: #000000; ">++</span><span style="color: #000000; ">len1]&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;input;<br /></span><span style="color: #008080; ">105</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /></span><span style="color: #008080; ">106</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">else</span><span style="color: #000000; "><br /></span><span style="color: #008080; ">107</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br /></span><span style="color: #008080; ">108</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;strs2[</span><span style="color: #000000; ">++</span><span style="color: #000000; ">len2]&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;input;<br /></span><span style="color: #008080; ">109</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /></span><span style="color: #008080; ">110</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;}<br /></span><span style="color: #008080; ">111</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">0</span><span style="color: #000000; ">;<br /></span><span style="color: #008080; ">112</span>&nbsp;<span style="color: #000000; ">}</span></div><br /><br /><br /></div><img src ="http://www.cppblog.com/bennycen/aggbug/169047.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/bennycen/" target="_blank">bennycen</a> 2012-03-26 20:19 <a href="http://www.cppblog.com/bennycen/archive/2012/03/26/169047.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>zoj 3542</title><link>http://www.cppblog.com/bennycen/archive/2012/03/26/168973.html</link><dc:creator>bennycen</dc:creator><author>bennycen</author><pubDate>Mon, 26 Mar 2012 02:42:00 GMT</pubDate><guid>http://www.cppblog.com/bennycen/archive/2012/03/26/168973.html</guid><wfw:comment>http://www.cppblog.com/bennycen/comments/168973.html</wfw:comment><comments>http://www.cppblog.com/bennycen/archive/2012/03/26/168973.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/bennycen/comments/commentRss/168973.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/bennycen/services/trackbacks/168973.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 模拟题，不说了Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->&nbsp;1#include&nbsp;&lt;stdio.h&gt;&nbsp;2#include&nbsp;&lt;string.h&gt;&nbsp;3&nbsp;4char&n...&nbsp;&nbsp;<a href='http://www.cppblog.com/bennycen/archive/2012/03/26/168973.html'>阅读全文</a><img src ="http://www.cppblog.com/bennycen/aggbug/168973.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/bennycen/" target="_blank">bennycen</a> 2012-03-26 10:42 <a href="http://www.cppblog.com/bennycen/archive/2012/03/26/168973.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>AnyC:添加类型限制</title><link>http://www.cppblog.com/bennycen/archive/2012/03/22/168654.html</link><dc:creator>bennycen</dc:creator><author>bennycen</author><pubDate>Thu, 22 Mar 2012 14:14:00 GMT</pubDate><guid>http://www.cppblog.com/bennycen/archive/2012/03/22/168654.html</guid><wfw:comment>http://www.cppblog.com/bennycen/comments/168654.html</wfw:comment><comments>http://www.cppblog.com/bennycen/archive/2012/03/22/168654.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cppblog.com/bennycen/comments/commentRss/168654.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/bennycen/services/trackbacks/168654.html</trackback:ping><description><![CDATA[为AnyC添加了函数调用时的参数类型限制功能，可以限制改函数的某个参数的具体类型！<br />截图如下：<br /><img height="331" alt="" src="http://www.cppblog.com/images/cppblog_com/bennycen/1111.jpg" width="355" border="0" />
<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 />--><span style="color: #008080">&nbsp;1</span>&nbsp;<span style="color: #0000ff">function</span><span style="color: #000000">&nbsp;check(</span><span style="color: #000000">&lt;</span><span style="color: #0000ff">int</span><span style="color: #000000">&gt;</span><span style="color: #000000">&nbsp;k,j)<br /></span><span style="color: #008080">&nbsp;2</span>&nbsp;<span style="color: #000000">{<br /></span><span style="color: #008080">&nbsp;3</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;print(j&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;k&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">\n</span><span style="color: #000000">"</span><span style="color: #000000">);<br /></span><span style="color: #008080">&nbsp;4</span>&nbsp;<span style="color: #000000">}<br /></span><span style="color: #008080">&nbsp;5</span>&nbsp;<span style="color: #000000"><br /></span><span style="color: #008080">&nbsp;6</span>&nbsp;<span style="color: #000000"></span><span style="color: #008000">//</span><span style="color: #008000">check("world","hello");</span><span style="color: #008000"><br /></span><span style="color: #008080">&nbsp;7</span>&nbsp;<span style="color: #008000"></span><span style="color: #000000"><br /></span><span style="color: #008080">&nbsp;8</span>&nbsp;<span style="color: #000000"></span><span style="color: #0000ff">function</span><span style="color: #000000">&nbsp;add(</span><span style="color: #000000">&lt;</span><span style="color: #0000ff">int</span><span style="color: #000000">&gt;</span><span style="color: #000000">&nbsp;a)<br /></span><span style="color: #008080">&nbsp;9</span>&nbsp;<span style="color: #000000">{<br /></span><span style="color: #008080">10</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">function</span><span style="color: #000000">&nbsp;(&nbsp;b)<br /></span><span style="color: #008080">11</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;{<br /></span><span style="color: #008080">12</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;a</span><span style="color: #000000">+</span><span style="color: #000000">b;<br /></span><span style="color: #008080">13</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;}<br /></span><span style="color: #008080">14</span>&nbsp;<span style="color: #000000">}<br /></span><span style="color: #008080">15</span>&nbsp;<span style="color: #000000"><br /></span><span style="color: #008080">16</span>&nbsp;<span style="color: #000000">class&nbsp;Test<br /></span><span style="color: #008080">17</span>&nbsp;<span style="color: #000000">{<br /></span><span style="color: #008080">18</span>&nbsp;<span style="color: #000000">public:<br /></span><span style="color: #008080">19</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">function</span><span style="color: #000000">&nbsp;add(</span><span style="color: #000000">&lt;</span><span style="color: #0000ff">int</span><span style="color: #000000">&gt;</span><span style="color: #000000">&nbsp;a,&nbsp;b)<br /></span><span style="color: #008080">20</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;{<br /></span><span style="color: #008080">21</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;a</span><span style="color: #000000">+</span><span style="color: #000000">b;<br /></span><span style="color: #008080">22</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;}<br /></span><span style="color: #008080">23</span>&nbsp;<span style="color: #000000">}<br /></span><span style="color: #008080">24</span>&nbsp;<span style="color: #000000"><br /></span><span style="color: #008080">25</span>&nbsp;<span style="color: #000000"></span><span style="color: #0000ff">var</span><span style="color: #000000">&nbsp;k&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;Test();<br /></span><span style="color: #008080">26</span>&nbsp;<span style="color: #000000">print(k.add(</span><span style="color: #000000">1</span><span style="color: #000000">,</span><span style="color: #000000">2</span><span style="color: #000000">)&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">\n</span><span style="color: #000000">"</span><span style="color: #000000">);<br /></span><span style="color: #008080">27</span>&nbsp;<span style="color: #000000"><br /></span><span style="color: #008080">28</span>&nbsp;<span style="color: #000000"></span><span style="color: #0000ff">function</span><span style="color: #000000">&nbsp;ppp(</span><span style="color: #000000">&lt;</span><span style="color: #000000">array</span><span style="color: #000000">&gt;</span><span style="color: #000000">&nbsp;arrs,</span><span style="color: #000000">&lt;</span><span style="color: #0000ff">int</span><span style="color: #000000">&gt;</span><span style="color: #000000">&nbsp;_index)<br /></span><span style="color: #008080">29</span>&nbsp;<span style="color: #000000">{<br /></span><span style="color: #008080">30</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;arrs[_index];<br /></span><span style="color: #008080">31</span>&nbsp;<span style="color: #000000">}<br /></span><span style="color: #008080">32</span>&nbsp;<span style="color: #000000"><br /></span><span style="color: #008080">33</span>&nbsp;<span style="color: #000000"></span><span style="color: #0000ff">var</span><span style="color: #000000">&nbsp;ks&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;[</span><span style="color: #000000">1</span><span style="color: #000000">,</span><span style="color: #000000">2</span><span style="color: #000000">,</span><span style="color: #000000">3</span><span style="color: #000000">,</span><span style="color: #000000">4</span><span style="color: #000000">,</span><span style="color: #000000">5</span><span style="color: #000000">];<br /></span><span style="color: #008080">34</span>&nbsp;<span style="color: #000000">ppp(ks,</span><span style="color: #000000">1</span><span style="color: #000000">);<br /></span><span style="color: #008080">35</span>&nbsp;<span style="color: #000000"><br /></span><span style="color: #008080">36</span>&nbsp;<span style="color: #000000"></span><span style="color: #0000ff">function</span><span style="color: #000000">&nbsp;testValue(</span><span style="color: #000000">&lt;</span><span style="color: #000000">value</span><span style="color: #000000">&gt;</span><span style="color: #000000">&nbsp;_v)<br /></span><span style="color: #008080">37</span>&nbsp;<span style="color: #000000">{<br /></span><span style="color: #008080">38</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;print(_v</span><span style="color: #000000">+</span><span style="color: #000000">"</span><span style="color: #000000">\n</span><span style="color: #000000">"</span><span style="color: #000000">);<br /></span><span style="color: #008080">39</span>&nbsp;<span style="color: #000000">}<br /></span><span style="color: #008080">40</span>&nbsp;<span style="color: #000000">testValue(</span><span style="color: #000000">1</span><span style="color: #000000">);<br /></span><span style="color: #008080">41</span>&nbsp;<span style="color: #000000">testValue(</span><span style="color: #000000">1.2</span><span style="color: #000000">);<br /></span><span style="color: #008080">42</span>&nbsp;<span style="color: #000000">testValue(</span><span style="color: #000000">"</span><span style="color: #000000">sss</span><span style="color: #000000">"</span><span style="color: #000000">);<br /></span><span style="color: #008080">43</span>&nbsp;<span style="color: #000000">testValue(</span><span style="color: #0000ff">false</span><span style="color: #000000">);<br /></span><span style="color: #008080">44</span>&nbsp;<span style="color: #000000"><br /></span><span style="color: #008080">45</span>&nbsp;<span style="color: #000000"></span><span style="color: #0000ff">function</span><span style="color: #000000">&nbsp;testFunc(</span><span style="color: #000000">&lt;</span><span style="color: #0000ff">function</span><span style="color: #000000">&gt;</span><span style="color: #000000">&nbsp;_f,_v)<br /></span><span style="color: #008080">46</span>&nbsp;<span style="color: #000000">{<br /></span><span style="color: #008080">47</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;_f(_v);&nbsp;&nbsp;&nbsp;&nbsp;<br /></span><span style="color: #008080">48</span>&nbsp;<span style="color: #000000">}<br /></span><span style="color: #008080">49</span>&nbsp;<span style="color: #000000"><br /></span><span style="color: #008080">50</span>&nbsp;<span style="color: #000000"></span><span style="color: #0000ff">var</span><span style="color: #000000">&nbsp;f1&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;add(</span><span style="color: #000000">40</span><span style="color: #000000">);<br /></span><span style="color: #008080">51</span>&nbsp;<span style="color: #000000">print(testFunc(f1,</span><span style="color: #000000">2</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">\n</span><span style="color: #000000">"</span><span style="color: #000000">);</span></div>&nbsp;<br /><img src ="http://www.cppblog.com/bennycen/aggbug/168654.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/bennycen/" target="_blank">bennycen</a> 2012-03-22 22:14 <a href="http://www.cppblog.com/bennycen/archive/2012/03/22/168654.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>poj 3074</title><link>http://www.cppblog.com/bennycen/archive/2012/03/12/167730.html</link><dc:creator>bennycen</dc:creator><author>bennycen</author><pubDate>Mon, 12 Mar 2012 11:37:00 GMT</pubDate><guid>http://www.cppblog.com/bennycen/archive/2012/03/12/167730.html</guid><wfw:comment>http://www.cppblog.com/bennycen/comments/167730.html</wfw:comment><comments>http://www.cppblog.com/bennycen/archive/2012/03/12/167730.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.cppblog.com/bennycen/comments/commentRss/167730.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/bennycen/services/trackbacks/167730.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 数独问题采用跳舞链方法会得到比较快的速度用跳舞链解决的方法主要是将问题的模型转换成01覆盖模型，然后模板之首先要了解它的限制条件：(1) 每一格只能填一个数字 (2) 每一列的数字是不同的(3) 每一行的数字是不同的(4) 每一个九宫格的数字是不同的那么我们可以构造出一组状态：行状态(i,j,k)：表示第i行第j列填第k个数列状态(i,j,k)：表示第k个限制的子状态为(i,j)，子状态根据限制而...&nbsp;&nbsp;<a href='http://www.cppblog.com/bennycen/archive/2012/03/12/167730.html'>阅读全文</a><img src ="http://www.cppblog.com/bennycen/aggbug/167730.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/bennycen/" target="_blank">bennycen</a> 2012-03-12 19:37 <a href="http://www.cppblog.com/bennycen/archive/2012/03/12/167730.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>作品：动态语言AnyC 1.0</title><link>http://www.cppblog.com/bennycen/archive/2012/03/08/167373.html</link><dc:creator>bennycen</dc:creator><author>bennycen</author><pubDate>Thu, 08 Mar 2012 03:05:00 GMT</pubDate><guid>http://www.cppblog.com/bennycen/archive/2012/03/08/167373.html</guid><wfw:comment>http://www.cppblog.com/bennycen/comments/167373.html</wfw:comment><comments>http://www.cppblog.com/bennycen/archive/2012/03/08/167373.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.cppblog.com/bennycen/comments/commentRss/167373.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/bennycen/services/trackbacks/167373.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 一、缘起一直很想做一个自己的动态语言了，记得三年前学习Compiler的时候做了不成器的Tiny++和语法全部按足《编译原理实践》的C--，其中C--还做得非常不好(基本只能看看用不了)，然后上次看了《游戏脚本高级编程》，里面介绍的XScript虽然非常简单，但已经有语言的影子。然后又看了《python源码剖析》，看了python的源码，学习了很多python的内部机理，感觉python虽强大巧妙...&nbsp;&nbsp;<a href='http://www.cppblog.com/bennycen/archive/2012/03/08/167373.html'>阅读全文</a><img src ="http://www.cppblog.com/bennycen/aggbug/167373.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/bennycen/" target="_blank">bennycen</a> 2012-03-08 11:05 <a href="http://www.cppblog.com/bennycen/archive/2012/03/08/167373.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>旧作品：本地程序评测器</title><link>http://www.cppblog.com/bennycen/archive/2012/03/02/167006.html</link><dc:creator>bennycen</dc:creator><author>bennycen</author><pubDate>Fri, 02 Mar 2012 12:30:00 GMT</pubDate><guid>http://www.cppblog.com/bennycen/archive/2012/03/02/167006.html</guid><wfw:comment>http://www.cppblog.com/bennycen/comments/167006.html</wfw:comment><comments>http://www.cppblog.com/bennycen/archive/2012/03/02/167006.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cppblog.com/bennycen/comments/commentRss/167006.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/bennycen/services/trackbacks/167006.html</trackback:ping><description><![CDATA[<p><span style="font-size: 12pt">前做了一个简单实用的本地程序评测机，用作学校某比赛的评测(该比赛不是在线比赛，而是做完后自己发代码然后我们自己手动萍。。囧)，该程序是一个本地评测系统，用户输入单文件代码或可执行程序，和输入数据和正确的输出数据，系统根据这些数据对代码或程序进行评测。</span><br /><span style="font-size: 12pt">评测结果有：</span><br /><span style="font-size: 12pt">Accept&nbsp;&nbsp;&nbsp;//通过</span><br /><span style="font-size: 12pt">Compile Error&nbsp;&nbsp;//编译错误</span><br /><span style="font-size: 12pt">Worng Answer&nbsp;&nbsp;//答案错误</span><br /><span style="font-size: 12pt">Time Limit Exceeded&nbsp;//超时</span><br /><span style="font-size: 12pt">Memory Limit Exceeded&nbsp;//超内存</span><br /><span style="font-size: 12pt">Presentation Error&nbsp;//输出格式错误</span><br /><span style="font-size: 12pt">System Error&nbsp;&nbsp;//系统错误</span><br /><span style="font-size: 12pt">下面简单聊聊实现的过程：</span></p>
<p><span style="font-size: 12pt">一、实现细节</span><br /><span style="font-size: 12pt">1.1 编译功能</span><br /><span style="font-size: 12pt">类:CompilerHelper</span><br /><span style="font-size: 12pt">函数:static int compile(const std::string&amp; sSourceFile, //源文件路径</span><br /><span style="font-size: 12pt">&nbsp;const std::string&amp; sOutputFile);//执行代码路径</span><br /><span style="font-size: 12pt">流程如下:</span><br /><span style="font-size: 12pt">生成编译器输入参数(编译器路径、文件路径、包含路径、库路径)在config.txt定义</span><br /><span style="font-size: 12pt">-&gt; 重定向in和out -&gt; 创建进程编译-&gt;等待完毕后返回执行结果</span></p>
<p><span style="font-size: 12pt">1.2 评测功能</span><br /><span style="font-size: 12pt">需要获得 执行代码路径、输入文件、期待输出的答案文件、本次执行程序的实际输出文件、</span><br /><span style="font-size: 12pt">时间、内存、是不是SPJ</span></p>
<p><span style="font-size: 12pt">监视器线程: 监视进程的执行时间、使用内存的信息</span><br /><span style="font-size: 12pt">流程: </span><br /><span style="font-size: 12pt">输入信息-&gt; 根据输入文件产生输入参数-&gt;创建进程-&gt;监视器开启-&gt;等待直到结束</span><br /><span style="font-size: 12pt">-&gt;返回!=0?"System Error" : 记录本次执行所需要的时间和内存-&gt;是否SPJ?启动spj比较器</span><br /><span style="font-size: 12pt">:启动文件比较器</span></p>
<p><span style="font-size: 12pt">启动文件比较器: 比较实际的和答案的差异,完全相同的AC,只存在空格的差异为PE,其他情况的WA</span><br /><span style="font-size: 12pt">spj比较器: 使用自己编写的spj程序对两个文件评测</span></p>
<p><span style="font-size: 12pt">1.3 测试套件</span><br /><span style="font-size: 12pt">实现多个测试用例(多个输入文件和输出文件)</span><br /><span style="font-size: 12pt">可以通过配置文件进行配置</span><br /><span style="font-size: 12pt">配置文件如下:</span><br /><span style="font-size: 12pt">[TestSuite]</span><br /><span style="font-size: 12pt">TestCaseCount=19&nbsp;//用例个数</span><br /><span style="font-size: 12pt">IsSpecialJudge=0&nbsp;//是否SPJ</span><br /><span style="font-size: 12pt">CodeFile=main.cpp&nbsp;//源文件,可设为NULL</span><br /><span style="font-size: 12pt">SPJExe=lowSPJ.exe&nbsp;//SPJ路径</span><br /><span style="font-size: 12pt">ExecuteFile=NULL&nbsp;//如设置了就不启用编译功能</span><br /><span style="font-size: 12pt">[TestCase_n]&nbsp;&nbsp;//第n个用例</span><br /><span style="font-size: 12pt">TimeLimit=1000&nbsp;&nbsp;//时间限制</span><br /><span style="font-size: 12pt">MemoryLimit=65535&nbsp;//内存限制(KB)</span><br /><span style="font-size: 12pt">StdInputFile=data1.txt&nbsp;//输入文件</span><br /><span style="font-size: 12pt">AnswerFile=output1.txt&nbsp;//答案</span><br /><span style="font-size: 12pt">每个用例将new一个judgerunner实例</span><br /><br /><span style="font-size: 12pt">二、依赖库</span><br /><span style="font-size: 12pt">个人开发的mtLibrary中的Common、Thread、Process库模块</span><br /><br /><span style="font-size: 12pt">三、运行效果</span><br /><span style="font-size: 12pt">配置文件示例</span><br /><span style="font-size: 12pt">[TestSuite]</span><br /><span style="font-size: 12pt">TestCaseCount=19</span><br /><span style="font-size: 12pt">IsSpecialJudge=0</span><br /><span style="font-size: 12pt">CodeFile=main.cpp</span><br /><span style="font-size: 12pt">SPJExe=NULL</span><br /><span style="font-size: 12pt">[TestCase_1]</span><br /><span style="font-size: 12pt">TimeLimit=1000</span><br /><span style="font-size: 12pt">MemoryLimit=65535</span><br /><span style="font-size: 12pt">StdInputFile=data1.txt</span><br /><span style="font-size: 12pt">AnswerFile=output1.txt</span><br /><span style="font-size: 12pt">[TestCase_2]</span><br /><span style="font-size: 12pt">TimeLimit=1000</span><br /><span style="font-size: 12pt">MemoryLimit=65535</span><br /><span style="font-size: 12pt">StdInputFile=data2.txt</span><br /><span style="font-size: 12pt">AnswerFile=output2.txt</span><br /><span style="font-size: 12pt">[TestCase_3]</span><br /><span style="font-size: 12pt">TimeLimit=1000</span><br /><span style="font-size: 12pt">MemoryLimit=65535</span><br /><span style="font-size: 12pt">StdInputFile=data3.txt</span><br /><span style="font-size: 12pt">AnswerFile=output3.txt</span><br /><span style="font-size: 12pt">[TestCase_4]</span><br /><span style="font-size: 12pt">TimeLimit=1000</span><br /><span style="font-size: 12pt">MemoryLimit=65535</span><br /><span style="font-size: 12pt">StdInputFile=data4.txt</span><br /><span style="font-size: 12pt">AnswerFile=output4.txt</span><br /><span style="font-size: 12pt">[TestCase_5]</span><br /><span style="font-size: 12pt">TimeLimit=1000</span><br /><span style="font-size: 12pt">MemoryLimit=65535</span><br /><span style="font-size: 12pt">StdInputFile=data5.txt</span><br /><span style="font-size: 12pt">AnswerFile=output5.txt</span><br /><span style="font-size: 12pt">[TestCase_6]</span><br /><span style="font-size: 12pt">TimeLimit=1000</span><br /><span style="font-size: 12pt">MemoryLimit=65535</span><br /><span style="font-size: 12pt">StdInputFile=data6.txt</span><br /><span style="font-size: 12pt">AnswerFile=output6.txt</span><br /><span style="font-size: 12pt">[TestCase_7]</span><br /><span style="font-size: 12pt">TimeLimit=1000</span><br /><span style="font-size: 12pt">MemoryLimit=65535</span><br /><span style="font-size: 12pt">StdInputFile=data7.txt</span><br /><span style="font-size: 12pt">AnswerFile=output7.txt</span><br /><span style="font-size: 12pt">[TestCase_8]</span><br /><span style="font-size: 12pt">TimeLimit=1000</span><br /><span style="font-size: 12pt">MemoryLimit=65535</span><br /><span style="font-size: 12pt">StdInputFile=data8.txt</span><br /><span style="font-size: 12pt">AnswerFile=output8.txt</span><br /><span style="font-size: 12pt">[TestCase_9]</span><br /><span style="font-size: 12pt">TimeLimit=1000</span><br /><span style="font-size: 12pt">MemoryLimit=65535</span><br /><span style="font-size: 12pt">StdInputFile=data9.txt</span><br /><span style="font-size: 12pt">AnswerFile=output9.txt</span><br /><span style="font-size: 12pt">[TestCase_10]</span><br /><span style="font-size: 12pt">TimeLimit=1000</span><br /><span style="font-size: 12pt">MemoryLimit=65535</span><br /><span style="font-size: 12pt">StdInputFile=data10.txt</span><br /><span style="font-size: 12pt">AnswerFile=output10.txt</span><br /><span style="font-size: 12pt">[TestCase_11]</span><br /><span style="font-size: 12pt">TimeLimit=1000</span><br /><span style="font-size: 12pt">MemoryLimit=65535</span><br /><span style="font-size: 12pt">StdInputFile=data11.txt</span><br /><span style="font-size: 12pt">AnswerFile=output11.txt</span><br /><span style="font-size: 12pt">[TestCase_12]</span><br /><span style="font-size: 12pt">TimeLimit=1000</span><br /><span style="font-size: 12pt">MemoryLimit=65535</span><br /><span style="font-size: 12pt">StdInputFile=data12.txt</span><br /><span style="font-size: 12pt">AnswerFile=output12.txt</span><br /><span style="font-size: 12pt">[TestCase_13]</span><br /><span style="font-size: 12pt">TimeLimit=1000</span><br /><span style="font-size: 12pt">MemoryLimit=65535</span><br /><span style="font-size: 12pt">StdInputFile=data13.txt</span><br /><span style="font-size: 12pt">AnswerFile=output13.txt</span><br /><span style="font-size: 12pt">[TestCase_14]</span><br /><span style="font-size: 12pt">TimeLimit=1000</span><br /><span style="font-size: 12pt">MemoryLimit=65535</span><br /><span style="font-size: 12pt">StdInputFile=data14.txt</span><br /><span style="font-size: 12pt">AnswerFile=output14.txt</span><br /><span style="font-size: 12pt">[TestCase_15]</span><br /><span style="font-size: 12pt">TimeLimit=1000</span><br /><span style="font-size: 12pt">MemoryLimit=65535</span><br /><span style="font-size: 12pt">StdInputFile=data15.txt</span><br /><span style="font-size: 12pt">AnswerFile=output15.txt</span><br /><span style="font-size: 12pt">[TestCase_16]</span><br /><span style="font-size: 12pt">TimeLimit=1000</span><br /><span style="font-size: 12pt">MemoryLimit=65535</span><br /><span style="font-size: 12pt">StdInputFile=data16.txt</span><br /><span style="font-size: 12pt">AnswerFile=output16.txt</span><br /><span style="font-size: 12pt">[TestCase_17]</span><br /><span style="font-size: 12pt">TimeLimit=1000</span><br /><span style="font-size: 12pt">MemoryLimit=65535</span><br /><span style="font-size: 12pt">StdInputFile=data17.txt</span><br /><span style="font-size: 12pt">AnswerFile=output17.txt</span><br /><span style="font-size: 12pt">[TestCase_18]</span><br /><span style="font-size: 12pt">TimeLimit=1000</span><br /><span style="font-size: 12pt">MemoryLimit=65535</span><br /><span style="font-size: 12pt">StdInputFile=data18.txt</span><br /><span style="font-size: 12pt">AnswerFile=output18.txt</span><br /><span style="font-size: 12pt">[TestCase_19]</span><br /><span style="font-size: 12pt">TimeLimit=1000</span><br /><span style="font-size: 12pt">MemoryLimit=65535</span><br /><span style="font-size: 12pt">StdInputFile=data19.txt</span><br /><span style="font-size: 12pt">AnswerFile=output19.txt</span><br /><br /><span style="font-size: 12pt">这是运行的效果，运行后结果将保存带JudgeResult.txt中</span><br /><img height="710" alt="" src="http://www.cppblog.com/images/cppblog_com/bennycen/2.PNG" width="669" border="0" /><br /><br /></p><img src ="http://www.cppblog.com/bennycen/aggbug/167006.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/bennycen/" target="_blank">bennycen</a> 2012-03-02 20:30 <a href="http://www.cppblog.com/bennycen/archive/2012/03/02/167006.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>