﻿<?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++博客-M.J的blog</title><link>http://www.cppblog.com/jie414341055/</link><description>algorithm,ACM-ICPC</description><language>zh-cn</language><lastBuildDate>Wed, 08 Apr 2026 21:48:17 GMT</lastBuildDate><pubDate>Wed, 08 Apr 2026 21:48:17 GMT</pubDate><ttl>60</ttl><item><title>此blog废掉啦~</title><link>http://www.cppblog.com/jie414341055/archive/2010/12/08/135845.html</link><dc:creator>M.J</dc:creator><author>M.J</author><pubDate>Wed, 08 Dec 2010 14:59:00 GMT</pubDate><guid>http://www.cppblog.com/jie414341055/archive/2010/12/08/135845.html</guid><wfw:comment>http://www.cppblog.com/jie414341055/comments/135845.html</wfw:comment><comments>http://www.cppblog.com/jie414341055/archive/2010/12/08/135845.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/jie414341055/comments/commentRss/135845.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/jie414341055/services/trackbacks/135845.html</trackback:ping><description><![CDATA[&nbsp;&nbsp; &nbsp; &nbsp; 请访问<a style="COLOR: #800080" href="http://www.orzminjie.info/" target=_blank>http://www.orzminjie.info/</a>
<img src ="http://www.cppblog.com/jie414341055/aggbug/135845.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/jie414341055/" target="_blank">M.J</a> 2010-12-08 22:59 <a href="http://www.cppblog.com/jie414341055/archive/2010/12/08/135845.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>求树的直径</title><link>http://www.cppblog.com/jie414341055/archive/2010/07/08/119662.html</link><dc:creator>M.J</dc:creator><author>M.J</author><pubDate>Wed, 07 Jul 2010 17:14:00 GMT</pubDate><guid>http://www.cppblog.com/jie414341055/archive/2010/07/08/119662.html</guid><wfw:comment>http://www.cppblog.com/jie414341055/comments/119662.html</wfw:comment><comments>http://www.cppblog.com/jie414341055/archive/2010/07/08/119662.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/jie414341055/comments/commentRss/119662.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/jie414341055/services/trackbacks/119662.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 树的直径是指树的最长简单路。求法: 两遍BFS :先任选一个起点BFS找到最长路的终点，再从终点进行BFS，则第二次BFS找到的最长路即为树的直径；<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 原理: 设起点为u,第一次BFS找到的终点v一定是树的直径的一个端点<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 证明: 1) 如果u 是直径上的点，则v显然是直径的终点(因为如果v不是的话，则必定存在另一个点w使得u到w的距离更长，则于BFS找到了v矛盾)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2) 如果u不是直径上的点，则u到v必然于树的直径相交(反证),那么交点到v 必然就是直径的后半段了<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 所以v一定是直径的一个端点，所以从v进行BFS得到的一定是直径长度<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 相关题目有TOJ1056，TOJ3517.<br><br>TOJ 1056(Labyrinth):<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 大意是一个由&#8216;#&#8217;和'.'构成的迷宫，'.'表示可行，&#8216;#&#8217;表示不可行，问可行的最长的路的长度是多少。<br><br>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<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;">cstdio</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br>#include&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">cstring</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br>#include&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">queue</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br></span><span style="color: #0000ff;">#define</span><span style="color: #000000;">&nbsp;M&nbsp;1002</span><span style="color: #000000;"><br><br></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><br></span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;r,c;<br></span><span style="color: #0000ff;">char</span><span style="color: #000000;">&nbsp;map[M][M];<br></span><span style="color: #0000ff;">bool</span><span style="color: #000000;">&nbsp;flag[M][M];<br></span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;move[</span><span style="color: #000000;">4</span><span style="color: #000000;">][</span><span style="color: #000000;">2</span><span style="color: #000000;">]</span><span style="color: #000000;">=</span><span style="color: #000000;">{</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;">,</span><span style="color: #000000;">1</span><span style="color: #000000;">,</span><span style="color: #000000;">0</span><span style="color: #000000;">,</span><span style="color: #000000;">0</span><span style="color: #000000;">,</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;">,</span><span style="color: #000000;">1</span><span style="color: #000000;">};&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; </span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;分别表示上下左右</span><span style="color: #008000;"><br></span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;maxt;<br></span><span style="color: #0000ff;">struct</span><span style="color: #000000;">&nbsp;Node{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;x,y,num;<br>};<br>Node&nbsp;ans;<br></span><span style="color: #0000ff;">bool</span><span style="color: #000000;">&nbsp;legal(</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;x,</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;y){&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; &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></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">(x&nbsp;</span><span style="color: #000000;">&gt;=</span><span style="color: #000000;">0</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">&amp;&amp;</span><span style="color: #000000;">&nbsp;x&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">&nbsp;r&nbsp;</span><span style="color: #000000;">&amp;&amp;</span><span style="color: #000000;">&nbsp;y</span><span style="color: #000000;">&gt;=</span><span style="color: #000000;">0</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">&amp;&amp;</span><span style="color: #000000;">&nbsp;y&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">&nbsp;c&nbsp;</span><span style="color: #000000;">&amp;&amp;</span><span style="color: #000000;">map[x][y]</span><span style="color: #000000;">==</span><span style="color: #000000;">'</span><span style="color: #000000;">.</span><span style="color: #000000;">'</span><span style="color: #000000;">)&nbsp;</span><span style="color: #0000ff;">return</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;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">false</span><span style="color: #000000;">;<br>}<br></span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;bfs(Node&nbsp;start){<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;memset(flag,</span><span style="color: #0000ff;">false</span><span style="color: #000000;">,</span><span style="color: #0000ff;">sizeof</span><span style="color: #000000;">(flag));&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; </span><span style="color: #008000;">//</span><span style="color: #008000;">初始所有点标记为false</span><span style="color: #008000;"><br></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;flag[start.x][start.y]&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">true</span><span style="color: #000000;">;&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; </span><span style="color: #008000;">//</span><span style="color: #008000;">起点标记为true</span><span style="color: #008000;"><br></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;queue</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">Node</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">f;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">while</span><span style="color: #000000;">(</span><span style="color: #000000;">!</span><span style="color: #000000;">f.empty())&nbsp;f.pop();&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&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></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Node&nbsp;m,n,tep;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;tx,ty,xx,yy;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;i,j,k,num;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;f.push(start);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">while</span><span style="color: #000000;">(</span><span style="color: #000000;">!</span><span style="color: #000000;">f.empty()){&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;&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;&nbsp;&nbsp; </span><span style="color: #008000;">//</span><span style="color: #008000;">如果队列不为空</span><span style="color: #008000;"><br></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;f.front();&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; &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></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tx&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;m.x;&nbsp;ty&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;m.y;&nbsp;num&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;m.num;<br>&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;">(num&nbsp;</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">&nbsp;maxt){&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; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #008000;">//</span><span style="color: #008000;">如果该元素的长度大于maxt，更新maxt</span><span style="color: #008000;"><br></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;maxt&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;num;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ans&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;m;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">for</span><span style="color: #000000;">(i&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">0</span><span style="color: #000000;">;i&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">4</span><span style="color: #000000;">;&nbsp;i</span><span style="color: #000000;">++</span><span style="color: #000000;">){&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;&nbsp; </span><span style="color: #008000;">//</span><span style="color: #008000;">以m为起点向4个方向BFS</span><span style="color: #008000;"><br></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;xx&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;tx&nbsp;</span><span style="color: #000000;">+</span><span style="color: #000000;">&nbsp;move[i][</span><span style="color: #000000;">0</span><span style="color: #000000;">];<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;yy&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;ty&nbsp;</span><span style="color: #000000;">+</span><span style="color: #000000;">&nbsp;move[i][</span><span style="color: #000000;">1</span><span style="color: #000000;">];<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&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;">(</span><span style="color: #000000;">!</span><span style="color: #000000;">flag[xx][yy]&nbsp;</span><span style="color: #000000;">&amp;&amp;</span><span style="color: #000000;">&nbsp;legal(xx,yy)){<br>&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;flag[xx][yy]&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tep.x&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;xx;<br>&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;tep.y&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;yy;<br>&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;tep.num&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;num&nbsp;</span><span style="color: #000000;">+</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">1</span><span style="color: #000000;">;<br>&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;f.push(tep);<br>&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;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">(num</span><span style="color: #000000;">+</span><span style="color: #000000;">1</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">maxt){&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;&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></span><span style="color: #000000;">&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;maxt&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;num&nbsp;</span><span style="color: #000000;">+</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">1</span><span style="color: #000000;">;<br>&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ans&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;tep;<br>&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>&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>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;f.pop();&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; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &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></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<br>}<br></span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;main(){<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;i,j,T;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Node&nbsp;start,end;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">bool</span><span style="color: #000000;">&nbsp;mark;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;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;">T);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">while</span><span style="color: #000000;">(T</span><span style="color: #000000;">--</span><span style="color: #000000;">){<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;scanf(</span><span style="color: #000000;">"</span><span style="color: #000000;">%d%d</span><span style="color: #000000;">"</span><span style="color: #000000;">,</span><span style="color: #000000;">&amp;</span><span style="color: #000000;">c,</span><span style="color: #000000;">&amp;</span><span style="color: #000000;">r);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mark&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">false</span><span style="color: #000000;">;&nbsp;maxt&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">for</span><span style="color: #000000;">(i&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">0</span><span style="color: #000000;">;i&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">&nbsp;r;&nbsp;i</span><span style="color: #000000;">++</span><span style="color: #000000;">)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;scanf(</span><span style="color: #000000;">"</span><span style="color: #000000;">%s</span><span style="color: #000000;">"</span><span style="color: #000000;">,map[i]);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">for</span><span style="color: #000000;">(i&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">0</span><span style="color: #000000;">;i&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">&nbsp;r;&nbsp;i</span><span style="color: #000000;">++</span><span style="color: #000000;">){<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">for</span><span style="color: #000000;">(j&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">0</span><span style="color: #000000;">;j&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">&nbsp;c;&nbsp;j</span><span style="color: #000000;">++</span><span style="color: #000000;">){<br>&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;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">(map[i][j]</span><span style="color: #000000;">==</span><span style="color: #000000;">'</span><span style="color: #000000;">.</span><span style="color: #000000;">'</span><span style="color: #000000;">){ &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; </span><span style="color: #008000;">//</span><span style="color: #008000;">任选一点BFS</span><span style="color: #008000;"><br></span><span style="color: #000000;">&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;start.x&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;&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;start.y&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;j;<br>&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;start.num&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">0</span><span style="color: #000000;">;<br>&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bfs(start);<br>&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mark&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;&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;</span><span style="color: #0000ff;">break</span><span style="color: #000000;">;<br>&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>&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>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&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;">(mark)&nbsp;</span><span style="color: #0000ff;">break</span><span style="color: #000000;">;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;maxt&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;">;ans.num&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">0</span><span style="color: #000000;">;&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; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; </span><span style="color: #008000;">//</span><span style="color: #008000;">此时ans一定是直径的端点，将它设为起点</span><span style="color: #008000;"><br></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bfs(ans);&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;&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #008000;">//</span><span style="color: #008000;">进行第二次BFS</span><span style="color: #008000;"><br></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf(</span><span style="color: #000000;">"</span><span style="color: #000000;">Maximum&nbsp;rope&nbsp;length&nbsp;is&nbsp;%d.\n</span><span style="color: #000000;">"</span><span style="color: #000000;">,maxt);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>}<br></span></div>
<br><br>TOJ3517(The longest athletic track):<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 题目给出了一棵生成树，问这棵生成树最长的路的长度是多少。<br><br>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: #000000;">#include</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">iostream</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br>#include</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">queue</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br></span><span style="color: #0000ff;">#define</span><span style="color: #000000;">&nbsp;INF&nbsp;999999</span><span style="color: #000000;"><br></span><span style="color: #0000ff;">#define</span><span style="color: #000000;">&nbsp;M&nbsp;2002</span><span style="color: #000000;"><br></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: #0000ff;">int</span><span style="color: #000000;">&nbsp;n;<br></span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;maxx;<br></span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;map[M][M],sum[M];<br></span><span style="color: #0000ff;">bool</span><span style="color: #000000;">&nbsp;flag[M];<br></span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;bfs(</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;begin){<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; queue</span><span style="color: #000000;">&lt;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">f;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;i,m,k,key;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; maxx</span><span style="color: #000000;">=</span><span style="color: #000000;">0</span><span style="color: #000000;">;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; memset(flag,</span><span style="color: #0000ff;">false</span><span style="color: #000000;">,</span><span style="color: #0000ff;">sizeof</span><span style="color: #000000;">(flag));<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; f.push(begin);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #0000ff;">while</span><span style="color: #000000;">(</span><span style="color: #000000;">!</span><span style="color: #000000;">f.empty()){<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; k</span><span style="color: #000000;">=</span><span style="color: #000000;">f.front();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #0000ff;">for</span><span style="color: #000000;">(i</span><span style="color: #000000;">=</span><span style="color: #000000;">1</span><span style="color: #000000;">;i</span><span style="color: #000000;">&lt;=</span><span style="color: #000000;">n;i</span><span style="color: #000000;">++</span><span style="color: #000000;">){<br>&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; </span><span style="color: #0000ff;">if</span><span style="color: #000000;">(map[k][i]</span><span style="color: #000000;">!=</span><span style="color: #000000;">INF</span><span style="color: #000000;">&amp;&amp;!</span><span style="color: #000000;">flag[i]){<br>&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; flag[i]</span><span style="color: #000000;">=</span><span style="color: #0000ff;">true</span><span style="color: #000000;">;<br>&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; f.push(i);<br>&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sum[i]</span><span style="color: #000000;">=</span><span style="color: #000000;">sum[k]</span><span style="color: #000000;">+</span><span style="color: #000000;">map[k][i];<br>&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #0000ff;">if</span><span style="color: #000000;">(sum[i]</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">maxx)&nbsp;{&nbsp;maxx</span><span style="color: #000000;">=</span><span style="color: #000000;">sum[i];key</span><span style="color: #000000;">=</span><span style="color: #000000;">i;&nbsp;}<br>&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>&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>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; f.pop();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;key;<br>}<br></span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;main()<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;i,j,k,dis,key,cas;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 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;">cas);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #0000ff;">while</span><span style="color: #000000;">(cas</span><span style="color: #000000;">--</span><span style="color: #000000;">){<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 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);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #0000ff;">for</span><span style="color: #000000;">(i</span><span style="color: #000000;">=</span><span style="color: #000000;">1</span><span style="color: #000000;">;i</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">n;i</span><span style="color: #000000;">++</span><span style="color: #000000;">)<br>&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;&nbsp;&nbsp; </span><span style="color: #0000ff;">for</span><span style="color: #000000;">(j</span><span style="color: #000000;">=</span><span style="color: #000000;">i</span><span style="color: #000000;">+</span><span style="color: #000000;">1</span><span style="color: #000000;">;j</span><span style="color: #000000;">&lt;=</span><span style="color: #000000;">n;j</span><span style="color: #000000;">++</span><span style="color: #000000;">)<br>&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; map[i][j]</span><span style="color: #000000;">=</span><span style="color: #000000;">map[j][i]</span><span style="color: #000000;">=</span><span style="color: #000000;">INF;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #0000ff;">for</span><span style="color: #000000;">(i</span><span style="color: #000000;">=</span><span style="color: #000000;">1</span><span style="color: #000000;">;i</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">n;i</span><span style="color: #000000;">++</span><span style="color: #000000;">){<br>&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;&nbsp;&nbsp; scanf(</span><span style="color: #000000;">"</span><span style="color: #000000;">%d%d%d</span><span style="color: #000000;">"</span><span style="color: #000000;">,</span><span style="color: #000000;">&amp;</span><span style="color: #000000;">j,</span><span style="color: #000000;">&amp;</span><span style="color: #000000;">k,</span><span style="color: #000000;">&amp;</span><span style="color: #000000;">dis);<br>&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;&nbsp;&nbsp; map[j][k]</span><span style="color: #000000;">=</span><span style="color: #000000;">map[k][j]</span><span style="color: #000000;">=</span><span style="color: #000000;">dis;<br>&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>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sum[</span><span style="color: #000000;">1</span><span style="color: #000000;">]</span><span style="color: #000000;">=</span><span style="color: #000000;">0</span><span style="color: #000000;">;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; key</span><span style="color: #000000;">=</span><span style="color: #000000;">bfs(</span><span style="color: #000000;">1</span><span style="color: #000000;">);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sum[key]</span><span style="color: #000000;">=</span><span style="color: #000000;">0</span><span style="color: #000000;">;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; key</span><span style="color: #000000;">=</span><span style="color: #000000;">bfs(key);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&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;">,maxx);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">system("pause");</span><span style="color: #008000;"><br></span><span style="color: #000000;">}<br><br></span></div>
<br><br><br><br><img src ="http://www.cppblog.com/jie414341055/aggbug/119662.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/jie414341055/" target="_blank">M.J</a> 2010-07-08 01:14 <a href="http://www.cppblog.com/jie414341055/archive/2010/07/08/119662.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>归并排序求逆序对</title><link>http://www.cppblog.com/jie414341055/archive/2010/07/08/119655.html</link><dc:creator>M.J</dc:creator><author>M.J</author><pubDate>Wed, 07 Jul 2010 16:07:00 GMT</pubDate><guid>http://www.cppblog.com/jie414341055/archive/2010/07/08/119655.html</guid><wfw:comment>http://www.cppblog.com/jie414341055/comments/119655.html</wfw:comment><comments>http://www.cppblog.com/jie414341055/archive/2010/07/08/119655.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cppblog.com/jie414341055/comments/commentRss/119655.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/jie414341055/services/trackbacks/119655.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 早就想学一下归并排序求逆序对，在这之前只会用树状数组来做，有时候还需要离散化，而且效率还不如归并排序高。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 其实还是蛮简单的，知道归并排序的原理就很容易知道如何求逆序对了。设数组为A，关键是在合并的时候，用数组L 和 R 表示左右两个子数组，因为逆序对的个数f(A) = f(L) + f(R) + s(L,R);其中f(L) 和 f(R) 分别表示L 内部 和R内部的逆序对个数，s(L.R)表示大数在L，小数在R的逆序对。因为L和R是已经排好序的，故其实只需求s(L,R).这个可以在合并L和R依次进行比较的时候算出。<br>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: #0000ff;">for</span><span style="color: #000000;">(k&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;p;k&nbsp;</span><span style="color: #000000;">&lt;=</span><span style="color: #000000;">&nbsp;r;k&nbsp;</span><span style="color: #000000;">++</span><span style="color: #000000;">){<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; </span><span style="color: #0000ff;">if</span><span style="color: #000000;">(L[i]</span><span style="color: #000000;">&lt;=</span><span style="color: #000000;">R[j]) <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; a[k]&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;L[i</span><span style="color: #000000;">++</span><span style="color: #000000;">];<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; </span><span style="color: #0000ff;">else</span><span style="color: #000000;">{&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //如果L最上面的数大于R的，那么L[i]及后面的数可以和R[j]构成n1-i+1个逆序对<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; a[k]&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;R[j</span><span style="color: #000000;">++</span><span style="color: #000000;">];<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; count&nbsp;</span><span style="color: #000000;">+=</span><span style="color: #000000;">(n1&nbsp;</span><span style="color: #000000;">-</span><span style="color: #000000;">i&nbsp;</span><span style="color: #000000;">+</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">1</span><span style="color: #000000;">);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //累加<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>}</span></div>
<br>归并排序的代码：<br><br>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;merge(</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;p,</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;q,</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;r){<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;n1&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;q</span><span style="color: #000000;">-</span><span style="color: #000000;">p</span><span style="color: #000000;">+</span><span style="color: #000000;">1</span><span style="color: #000000;">,n2&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;r</span><span style="color: #000000;">-</span><span style="color: #000000;">q;<br>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; </span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;i,j,k;<br>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; </span><span style="color: #0000ff;">for</span><span style="color: #000000;">(i&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">1</span><span style="color: #000000;">;i&nbsp;</span><span style="color: #000000;">&lt;=</span><span style="color: #000000;">&nbsp;n1;&nbsp;i</span><span style="color: #000000;">++</span><span style="color: #000000;">)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; L[i]&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;a[p</span><span style="color: #000000;">+</span><span style="color: #000000;">i</span><span style="color: #000000;">-</span><span style="color: #000000;">1</span><span style="color: #000000;">];<br>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; </span><span style="color: #0000ff;">for</span><span style="color: #000000;">(j&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">1</span><span style="color: #000000;">;j&nbsp;</span><span style="color: #000000;">&lt;=</span><span style="color: #000000;">&nbsp;n2;&nbsp;j</span><span style="color: #000000;">++</span><span style="color: #000000;">)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; R[j]&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;a[q</span><span style="color: #000000;">+</span><span style="color: #000000;">j];<br>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; L[n1</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;INF;<br>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; R[n2</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;INF;<br>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&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;">;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>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; </span><span style="color: #0000ff;">for</span><span style="color: #000000;">(k&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;p;k&nbsp;</span><span style="color: #000000;">&lt;=</span><span style="color: #000000;">&nbsp;r;k&nbsp;</span><span style="color: #000000;">++</span><span style="color: #000000;">){<br>&nbsp;&nbsp;&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;">(L[i]</span><span style="color: #000000;">&lt;=</span><span style="color: #000000;">R[j])<br>&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; a[k]&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;L[i</span><span style="color: #000000;">++</span><span style="color: #000000;">];<br>&nbsp;&nbsp;&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>&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; a[k]&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;R[j</span><span style="color: #000000;">++</span><span style="color: #000000;">];<br>&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; count&nbsp;</span><span style="color: #000000;">+=</span><span style="color: #000000;">(n1&nbsp;</span><span style="color: #000000;">-</span><span style="color: #000000;">i&nbsp;</span><span style="color: #000000;">+</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">1</span><span style="color: #000000;">);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; }<br>}<br></span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;merge_sort(</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;p,</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;r){<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #0000ff;">if</span><span style="color: #000000;">(p</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">r){<br>&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;q&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;(p</span><span style="color: #000000;">+</span><span style="color: #000000;">r)</span><span style="color: #000000;">/</span><span style="color: #000000;">2</span><span style="color: #000000;">;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; merge_sort(p,q);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; merge_sort(q</span><span style="color: #000000;">+</span><span style="color: #000000;">1</span><span style="color: #000000;">,r);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; merge(p,q,r);<br>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>}</span></div>
<br><br><img src ="http://www.cppblog.com/jie414341055/aggbug/119655.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/jie414341055/" target="_blank">M.J</a> 2010-07-08 00:07 <a href="http://www.cppblog.com/jie414341055/archive/2010/07/08/119655.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>多重背包问题</title><link>http://www.cppblog.com/jie414341055/archive/2010/07/07/119639.html</link><dc:creator>M.J</dc:creator><author>M.J</author><pubDate>Wed, 07 Jul 2010 12:18:00 GMT</pubDate><guid>http://www.cppblog.com/jie414341055/archive/2010/07/07/119639.html</guid><wfw:comment>http://www.cppblog.com/jie414341055/comments/119639.html</wfw:comment><comments>http://www.cppblog.com/jie414341055/archive/2010/07/07/119639.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/jie414341055/comments/commentRss/119639.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/jie414341055/services/trackbacks/119639.html</trackback:ping><description><![CDATA[今天看了下多重背包，理解的还不够深入，不过因为是01背包过来的，所以接受起来很容易。<br>主要是运用了二进制的思想将一个数量为N很大的物品分为了logN个数量小的物品，而这logN个物品可以组成数量为0到N任意数量，所以这种策略是<br>成立的。<br>多重背包问题有TOJ1034，TOJ1670.<br><br>TOJ1034 :<br>大意是有6种规格的石头，编号从1到6，编号为 i 的石头的价值为 i .现在给出各种石头的数量，问有没有可能得到总价值的一半。<br>做法:&nbsp;&nbsp;&nbsp; DP, 每种石头价值为v[i],价值为 i ，数量为 num[i] ,通过多重背包看能不能恰好取得总价值的一半。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 一个优化是总价值为奇数直接不用考虑，而在DP的时候设置一个标记来记录是否已经取得总价值一半，如果取得则可以返回。<br>做法2：这种方法的前提是POJ&nbsp; discuss里的一种做法，即给每个石头的数量mod 8。证明是用抽屉原理证的，很复杂，我没有看。但是这样以来，数量<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;&nbsp; 一下子大大减少，极大的提高了效率。<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 我说的做法2事实上是我的最初做法，即DFS，搜索，在搜索过程中注意剪枝，再加上数量取模的优化，复杂度也不高。&nbsp; <br><br>Code for 1034(Dividing):<br>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: #000000;">import&nbsp;java.util.Scanner;<br><br>import&nbsp;java.util.</span><span style="color: #000000;">*</span><span style="color: #000000;">;<br><br>import&nbsp;javax.swing.plaf.basic.BasicInternalFrameTitlePane.MaximizeAction;<br></span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">class</span><span style="color: #000000;">&nbsp;Main&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">static</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;f[]&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">[</span><span style="color: #000000;">20001</span><span style="color: #000000;">*</span><span style="color: #000000;">6</span><span style="color: #000000;">];&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // f[i]表示容量为 i 的背包最多能装的物品的价值<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">static</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;v[]&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">[</span><span style="color: #000000;">7</span><span style="color: #000000;">];<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">static</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;num[]&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">[</span><span style="color: #000000;">7</span><span style="color: #000000;">];<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">static</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;total,flag,key;&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;&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; //total为 6 种大理石的总价值 ，flag为标记，一旦为1表示可以取得，可以返回了<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">static</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;onezeropack(</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;cost,</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;weight)&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //&nbsp; 01背包函数，注意循环是从total 到 cost，不要弄反<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &nbsp;&nbsp; </span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;i;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #0000ff;">for</span><span style="color: #000000;">(i&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;total;i&nbsp;</span><span style="color: #000000;">&gt;=</span><span style="color: #000000;">&nbsp;cost;&nbsp;i</span><span style="color: #000000;">--</span><span style="color: #000000;">)&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; f[i]&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;Math.max(f[i],f[i</span><span style="color: #000000;">-</span><span style="color: #000000;">cost]</span><span style="color: #000000;">+</span><span style="color: #000000;">weight);<br>&nbsp;&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;">(f[i]&nbsp;</span><span style="color: #000000;">==</span><span style="color: #000000;">&nbsp;key)&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;&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;&nbsp; // 如果可以取得总价值一半，flag=1，返回<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; flag&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">1</span><span style="color: #000000;">;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; </span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &nbsp;&nbsp; &nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">static</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;finishpack(</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;cost,</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;weight)&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>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; </span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;i;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #0000ff;">if</span><span style="color: #000000;">(flag</span><span style="color: #000000;">==</span><span style="color: #000000;">1</span><span style="color: #000000;">)&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; </span><span style="color: #0000ff;">for</span><span style="color: #000000;">(i&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;cost;i&nbsp;</span><span style="color: #000000;">&lt;=</span><span style="color: #000000;">&nbsp;total;&nbsp;i</span><span style="color: #000000;">++</span><span style="color: #000000;">)&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; f[i]&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;Math.max(f[i],&nbsp;f[i</span><span style="color: #000000;">-</span><span style="color: #000000;">cost]</span><span style="color: #000000;">+</span><span style="color: #000000;">weight);<br>&nbsp;&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;">(f[i]&nbsp;</span><span style="color: #000000;">==</span><span style="color: #000000;">&nbsp;key)&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; flag&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">1</span><span style="color: #000000;">;<br>&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; </span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">static</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;multipack(</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;cost,</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;weight,</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;amount)&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #0000ff;">if</span><span style="color: #000000;">(cost</span><span style="color: #000000;">*</span><span style="color: #000000;">amount&nbsp;</span><span style="color: #000000;">&gt;=</span><span style="color: #000000;">&nbsp;total)&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; finishpack(cost,&nbsp;weight);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; </span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #0000ff;">if</span><span style="color: #000000;">(flag</span><span style="color: #000000;">==</span><span style="color: #000000;">1</span><span style="color: #000000;">)&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;;<br>&nbsp;&nbsp;&nbsp;&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;</span><span style="color: #000000;">1</span><span style="color: #000000;">;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #0000ff;">while</span><span style="color: #000000;">(k&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">&nbsp;amount)&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;&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 该过程即为将一件物品拆分为1，2，4...2^k 件物品进行01背包过程<br>&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; onezeropack(k</span><span style="color: #000000;">*</span><span style="color: #000000;">cost,&nbsp;k</span><span style="color: #000000;">*</span><span style="color: #000000;">weight);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; amount&nbsp;</span><span style="color: #000000;">-=</span><span style="color: #000000;">&nbsp;k;<br>&nbsp;&nbsp;&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;">2</span><span style="color: #000000;">;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; onezeropack(cost</span><span style="color: #000000;">*</span><span style="color: #000000;">amount,&nbsp;weight</span><span style="color: #000000;">*</span><span style="color: #000000;">amount);<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">static</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;main(String[]&nbsp;args){<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Scanner&nbsp;</span><span style="color: #0000ff;">in</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;Scanner(System.</span><span style="color: #0000ff;">in</span><span style="color: #000000;">);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; </span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;i,j,cas&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">1</span><span style="color: #000000;">;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &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;">)&nbsp;{<br>&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; Arrays.fill(f,</span><span style="color: #000000;">0</span><span style="color: #000000;">);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; total&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">0</span><span style="color: #000000;">;&nbsp;flag&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">0</span><span style="color: #000000;">;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; </span><span style="color: #0000ff;">for</span><span style="color: #000000;">(i&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">1</span><span style="color: #000000;">;i&nbsp;</span><span style="color: #000000;">&lt;=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">6</span><span style="color: #000000;">;&nbsp;i</span><span style="color: #000000;">++</span><span style="color: #000000;">)&nbsp;{<br>&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; num[i]&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">in</span><span style="color: #000000;">.nextInt();<br>&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; v[i]&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;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; total&nbsp;</span><span style="color: #000000;">+=</span><span style="color: #000000;">&nbsp;i</span><span style="color: #000000;">*</span><span style="color: #000000;">num[i];<br>&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>&nbsp;&nbsp;&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;">(num[</span><span style="color: #000000;">1</span><span style="color: #000000;">]</span><span style="color: #000000;">==</span><span style="color: #000000;">0</span><span style="color: #000000;">&amp;&amp;</span><span style="color: #000000;">num[</span><span style="color: #000000;">2</span><span style="color: #000000;">]</span><span style="color: #000000;">==</span><span style="color: #000000;">0</span><span style="color: #000000;">&amp;&amp;</span><span style="color: #000000;">num[</span><span style="color: #000000;">3</span><span style="color: #000000;">]</span><span style="color: #000000;">==</span><span style="color: #000000;">0</span><span style="color: #000000;">&amp;&amp;</span><span style="color: #000000;">num[</span><span style="color: #000000;">4</span><span style="color: #000000;">]</span><span style="color: #000000;">==</span><span style="color: #000000;">0</span><span style="color: #000000;">&amp;&amp;</span><span style="color: #000000;">num[</span><span style="color: #000000;">5</span><span style="color: #000000;">]</span><span style="color: #000000;">==</span><span style="color: #000000;">0</span><span style="color: #000000;">&amp;&amp;</span><span style="color: #000000;">num[</span><span style="color: #000000;">6</span><span style="color: #000000;">]</span><span style="color: #000000;">==</span><span style="color: #000000;">0</span><span style="color: #000000;">)<br>&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; </span><span style="color: #0000ff;">break</span><span style="color: #000000;">;<br>&nbsp;&nbsp;&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;">(total</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;flag&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">0</span><span style="color: #000000;">;<br>&nbsp;&nbsp;&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;">&nbsp;{<br>&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; key&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;total</span><span style="color: #000000;">/</span><span style="color: #000000;">2</span><span style="color: #000000;">;<br>&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;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #0000ff;">for</span><span style="color: #000000;">(i&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">1</span><span style="color: #000000;">;i&nbsp;</span><span style="color: #000000;">&lt;=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">6</span><span style="color: #000000;">;&nbsp;i</span><span style="color: #000000;">++</span><span style="color: #000000;">)&nbsp;<br>&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; multipack(i,&nbsp;i,&nbsp;num[i]);<br>&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>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; System.</span><span style="color: #0000ff;">out</span><span style="color: #000000;">.println(</span><span style="color: #000000;">"</span><span style="color: #000000;">Collection&nbsp;#</span><span style="color: #000000;">"</span><span style="color: #000000;">+</span><span style="color: #000000;">cas</span><span style="color: #000000;">+</span><span style="color: #000000;">"</span><span style="color: #000000;">:</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br>&nbsp;&nbsp;&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;">(flag</span><span style="color: #000000;">==</span><span style="color: #000000;">0</span><span style="color: #000000;">)&nbsp;System.</span><span style="color: #0000ff;">out</span><span style="color: #000000;">.println(</span><span style="color: #000000;">"</span><span style="color: #000000;">Can't&nbsp;be&nbsp;divided.</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br>&nbsp;&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;">&nbsp;System.</span><span style="color: #0000ff;">out</span><span style="color: #000000;">.println(</span><span style="color: #000000;">"</span><span style="color: #000000;">Can&nbsp;be&nbsp;divided.</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; System.</span><span style="color: #0000ff;">out</span><span style="color: #000000;">.println();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; cas</span><span style="color: #000000;">++</span><span style="color: #000000;">;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br><br>}<br></span></div>
<br>TOJ 1670：<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 大意是一台取款机有N中货币，每种货币面值为 V[i] ，数量为 num[i] , 给出一个价值，为在这个价值之内(包括这个价值)最大能取得多大。<br>分析：典型的多重背包，给出的价值即为背包容量，每种货币为一种物品，价值为v[i] , 数量为num[i]，求能得到的最大价值。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 注释就不加了，参考上面的程序<br><br>Code for 1670(Cash Mechine):<br><br>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<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;">cstdio</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br>#include&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">cstring</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br><br></span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;f[</span><span style="color: #000000;">100002</span><span style="color: #000000;">],v[</span><span style="color: #000000;">12</span><span style="color: #000000;">],num[</span><span style="color: #000000;">12</span><span style="color: #000000;">],cost[</span><span style="color: #000000;">12</span><span style="color: #000000;">];<br></span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;total,n;<br></span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;max(</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;a,</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;b){&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;a</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">b</span><span style="color: #000000;">?</span><span style="color: #000000;">a:b;}<br><br></span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;OneZeroPack(</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;cost,</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;value){<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;i,j;<br>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;&nbsp; </span><span style="color: #0000ff;">for</span><span style="color: #000000;">(i&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;total;i&nbsp;</span><span style="color: #000000;">&gt;=</span><span style="color: #000000;">&nbsp;cost;&nbsp;i</span><span style="color: #000000;">--</span><span style="color: #000000;">)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; f[i]&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;max(f[i],f[i</span><span style="color: #000000;">-</span><span style="color: #000000;">cost]</span><span style="color: #000000;">+</span><span style="color: #000000;">value);<br><br>}<br></span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;completePack(</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;cost,</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;weight){<br>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;&nbsp; </span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;i;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; </span><span style="color: #0000ff;">for</span><span style="color: #000000;">(i&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;cost;i&nbsp;</span><span style="color: #000000;">&lt;=</span><span style="color: #000000;">&nbsp;total;&nbsp;i</span><span style="color: #000000;">++</span><span style="color: #000000;">)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; f[i]&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;max(f[i],f[i</span><span style="color: #000000;">-</span><span style="color: #000000;">cost]</span><span style="color: #000000;">+</span><span style="color: #000000;">weight);<br>}<br></span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;multiPack(</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;cost,</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;weight,</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;amount){<br>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;&nbsp; </span><span style="color: #0000ff;">if</span><span style="color: #000000;">(cost</span><span style="color: #000000;">*</span><span style="color: #000000;">amount&nbsp;</span><span style="color: #000000;">&gt;=</span><span style="color: #000000;">&nbsp;total){<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; completePack(cost,weight);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;;<br>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;&nbsp; }<br>&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;</span><span style="color: #000000;">1</span><span style="color: #000000;">;<br>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;&nbsp; </span><span style="color: #0000ff;">while</span><span style="color: #000000;">(k&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">&nbsp;amount){<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; OneZeroPack(k</span><span style="color: #000000;">*</span><span style="color: #000000;">cost,k</span><span style="color: #000000;">*</span><span style="color: #000000;">weight);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; amount&nbsp;</span><span style="color: #000000;">-=</span><span style="color: #000000;">&nbsp;k;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; k</span><span style="color: #000000;">*=</span><span style="color: #000000;">2</span><span style="color: #000000;">;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; OneZeroPack(cost</span><span style="color: #000000;">*</span><span style="color: #000000;">amount,amount</span><span style="color: #000000;">*</span><span style="color: #000000;">weight);<br>}<br></span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;main(){<br>&nbsp;&nbsp; &nbsp;&nbsp; &nbsp; &nbsp;&nbsp; </span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;i,j,k;<br>&nbsp;&nbsp; &nbsp; &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%d</span><span style="color: #000000;">"</span><span style="color: #000000;">,</span><span style="color: #000000;">&amp;</span><span style="color: #000000;">total,</span><span style="color: #000000;">&amp;</span><span style="color: #000000;">n)</span><span style="color: #000000;">!=</span><span style="color: #000000;">&nbsp;EOF){<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; memset(f,</span><span style="color: #000000;">0</span><span style="color: #000000;">,</span><span style="color: #0000ff;">sizeof</span><span style="color: #000000;">(f));<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; </span><span style="color: #0000ff;">for</span><span style="color: #000000;">(i&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">1</span><span style="color: #000000;">;i&nbsp;</span><span style="color: #000000;">&lt;=</span><span style="color: #000000;">&nbsp;n;&nbsp;i</span><span style="color: #000000;">++</span><span style="color: #000000;">){<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; scanf(</span><span style="color: #000000;">"</span><span style="color: #000000;">%d%d</span><span style="color: #000000;">"</span><span style="color: #000000;">,</span><span style="color: #000000;">&amp;</span><span style="color: #000000;">num[i],</span><span style="color: #000000;">&amp;</span><span style="color: #000000;">cost[i]);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; v[i]&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;cost[i];<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; </span><span style="color: #0000ff;">for</span><span style="color: #000000;">(i&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">1</span><span style="color: #000000;">;i&nbsp;</span><span style="color: #000000;">&lt;=</span><span style="color: #000000;">&nbsp;n;&nbsp;i</span><span style="color: #000000;">++</span><span style="color: #000000;">)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; multiPack(cost[i],v[i],num[i]);<br>&nbsp;&nbsp;&nbsp;&nbsp;&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;">,f[total]);&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>}<br><br></span></div>
<br><br>   <img src ="http://www.cppblog.com/jie414341055/aggbug/119639.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/jie414341055/" target="_blank">M.J</a> 2010-07-07 20:18 <a href="http://www.cppblog.com/jie414341055/archive/2010/07/07/119639.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>TOJ  3446.Money Matters 并查集，路径压缩</title><link>http://www.cppblog.com/jie414341055/archive/2010/07/05/119380.html</link><dc:creator>M.J</dc:creator><author>M.J</author><pubDate>Mon, 05 Jul 2010 13:08:00 GMT</pubDate><guid>http://www.cppblog.com/jie414341055/archive/2010/07/05/119380.html</guid><wfw:comment>http://www.cppblog.com/jie414341055/comments/119380.html</wfw:comment><comments>http://www.cppblog.com/jie414341055/archive/2010/07/05/119380.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/jie414341055/comments/commentRss/119380.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/jie414341055/services/trackbacks/119380.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 题目大意是N个人互相有债a[i](正的表示别人欠钱，否则表示自己欠别人钱,a[i]的和保证为0),但是这N个人只有朋友间才能互相算帐，现在给出N个人的债，并且给出M个关系，即谁和谁是朋友，最后问有没有可能所有人都把帐算清。<br><font face="Times New Roman"><span lang="en"><br><br>Sample Input 1: &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Sample Input 2:<br><br>5&nbsp;&nbsp;&nbsp; 3&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 4&nbsp;&nbsp;&nbsp;&nbsp; 2<br>100&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 15<br>-75&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 20<br>-25&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -10<br>-42&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -15<br>42&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp; 2<br>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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1&nbsp; 3<br>1 2<br>3 4<br><br>Sample Output 1:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Sample Output&nbsp; 2:<br><br>POSSIBLE&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;&nbsp;&nbsp;&nbsp; IMPOSSILBE<br>
<tt>
<pre>
<p><font face="Times New Roman">&nbsp;思路1：</font></p>
<p><font face="Times New Roman">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 每输入一个关系，合并，最后从1到N，对于每一个人，找出它们的祖先，将他们的债debt加到祖先的debt</font></p>
<p><font face="Times New Roman">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 上。通俗的讲，就是每个集合的成员都将自己的debt加到祖先上，自己归0，最后看祖先的值是否为0；</font></p>
<p><font face="Times New Roman">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 最后在从1到N扫一遍如果有debt不为0的，输出&#8220;IMPOSSIBLE&#8221;，否则&#8220;POSSIBLE&#8221;；</font></p>
<p><font face="Times New Roman">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 缺点：复杂度高，查询复杂度*N，最后勉强过了，时间0.63s</font></p>
<p><font face="Times New Roman">思路2：</font></p>
<p><font face="Times New Roman">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 路径压缩，每输入一个关系，合并。最后从1到N，如果 i 的debt不为0，从 i 到 i 的祖先的路径不断压缩直到</font></p>
<p><font face="Times New Roman">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 祖先，这样虽然仍然是N次操作，但由于在压缩过程中大部分成员debt归0，故实际上进行操作的次数远小于N.</font></p>
<p><font face="Times New Roman">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 最后时间为0.11,比起上一种方法有了很大提高</font></p>
<p><font face="Times New Roman">Code 1:</font></p>
<p><font face="Times New Roman">
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: #000000;"><tt><font>#include&nbsp;</font></tt></span><span style="color: #000000;"><tt><font>&lt;</font></tt></span><span style="color: #000000;"><tt><font>cstdio</font></tt></span><span style="color: #000000;"><tt><font>&gt;</font></tt></span><span style="color: #000000;"><tt><font><br>#include&nbsp;</font></tt></span><span style="color: #000000;"><tt><font>&lt;</font></tt></span><span style="color: #000000;"><tt><font>cstring</font></tt></span><span style="color: #000000;"><tt><font>&gt;</font></tt></span><span style="color: #000000;"><tt><font><br></font></tt></span><span style="color: #0000ff;"><tt><font>struct</font></tt></span><span style="color: #000000;"><tt><font>&nbsp;Node{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font></tt></span><span style="color: #0000ff;"><tt><font>int</font></tt></span><span style="color: #000000;"><tt><font>&nbsp;father,v,num;<br>}a[</font></tt></span><span style="color: #000000;"><tt><font>10002</font></tt></span><span style="color: #000000;"><tt><font>];<br></font></tt></span><span style="color: #0000ff;"><tt><font>int</font></tt></span><span style="color: #000000;"><tt><font>&nbsp;find(</font></tt></span><span style="color: #0000ff;"><tt><font>int</font></tt></span><span style="color: #000000;"><tt><font>&nbsp;n){<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font></tt></span><span style="color: #0000ff;"><tt><font>int</font></tt></span><span style="color: #000000;"><tt><font>&nbsp;tep,m&nbsp;</font></tt></span><span style="color: #000000;"><tt><font>=</font></tt></span><span style="color: #000000;"><tt><font>&nbsp;n;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font></tt></span><span style="color: #0000ff;"><tt><font>while</font></tt></span><span style="color: #000000;"><tt><font>(n&nbsp;</font></tt></span><span style="color: #000000;"><tt><font>!=</font></tt></span><span style="color: #000000;"><tt><font>&nbsp;a[n].father)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;n&nbsp;</font></tt></span><span style="color: #000000;"><tt><font>=</font></tt></span><span style="color: #000000;"><tt><font>&nbsp;a[n].father;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font></tt></span><span style="color: #0000ff;"><tt><font>while</font></tt></span><span style="color: #000000;"><tt><font>(m&nbsp;</font></tt></span><span style="color: #000000;"><tt><font>!=</font></tt></span><span style="color: #000000;"><tt><font>&nbsp;n){<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tep&nbsp;</font></tt></span><span style="color: #000000;"><tt><font>=</font></tt></span><span style="color: #000000;"><tt><font>&nbsp;a[n].father;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a[n].father&nbsp;</font></tt></span><span style="color: #000000;"><tt><font>=</font></tt></span><span style="color: #000000;"><tt><font>&nbsp;n;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m&nbsp;</font></tt></span><span style="color: #000000;"><tt><font>=</font></tt></span><span style="color: #000000;"><tt><font>&nbsp;tep;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font></tt></span><span style="color: #0000ff;"><tt><font>return</font></tt></span><span style="color: #000000;"><tt><font>&nbsp;n;<br>}<br></font></tt></span><span style="color: #0000ff;"><tt><font>void</font></tt></span><span style="color: #000000;"><tt><font>&nbsp;Union(</font></tt></span><span style="color: #0000ff;"><tt><font>int</font></tt></span><span style="color: #000000;"><tt><font>&nbsp;root1,</font></tt></span><span style="color: #0000ff;"><tt><font>int</font></tt></span><span style="color: #000000;"><tt><font>&nbsp;root2){<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font></tt></span><span style="color: #0000ff;"><tt><font>int</font></tt></span><span style="color: #000000;"><tt><font>&nbsp;t1,t2;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;t1&nbsp;</font></tt></span><span style="color: #000000;"><tt><font>=</font></tt></span><span style="color: #000000;"><tt><font>&nbsp;find(root1),t2&nbsp;</font></tt></span><span style="color: #000000;"><tt><font>=</font></tt></span><span style="color: #000000;"><tt><font>&nbsp;find(root2);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font></tt></span><span style="color: #0000ff;"><tt><font>if</font></tt></span><span style="color: #000000;"><tt><font>(t1&nbsp;</font></tt></span><span style="color: #000000;"><tt><font>==</font></tt></span><span style="color: #000000;"><tt><font>&nbsp;t2)&nbsp;</font></tt></span><span style="color: #0000ff;"><tt><font>return</font></tt></span><span style="color: #000000;"><tt><font>&nbsp;;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font></tt></span><span style="color: #0000ff;"><tt><font>else</font></tt></span><span style="color: #000000;"><tt><font>{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font></tt></span><span style="color: #0000ff;"><tt><font>if</font></tt></span><span style="color: #000000;"><tt><font>(a[t1].v&nbsp;</font></tt></span><span style="color: #000000;"><tt><font>&gt;</font></tt></span><span style="color: #000000;"><tt><font>&nbsp;a[t2].v){<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a[t1].v&nbsp;</font></tt></span><span style="color: #000000;"><tt><font>+=</font></tt></span><span style="color: #000000;"><tt><font>&nbsp;a[t2].v;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a[t2].father&nbsp;</font></tt></span><span style="color: #000000;"><tt><font>=</font></tt></span><span style="color: #000000;"><tt><font>&nbsp;t1;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font></tt></span><span style="color: #0000ff;"><tt><font>else</font></tt></span><span style="color: #000000;"><tt><font>{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a[t2].v&nbsp;</font></tt></span><span style="color: #000000;"><tt><font>+=</font></tt></span><span style="color: #000000;"><tt><font>&nbsp;a[t1].v;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a[t1].father&nbsp;</font></tt></span><span style="color: #000000;"><tt><font>=</font></tt></span><span style="color: #000000;"><tt><font>&nbsp;t2;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>}<br></font></tt></span><span style="color: #0000ff;"><tt><font>int</font></tt></span><span style="color: #000000;"><tt><font>&nbsp;main()<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font></tt></span><span style="color: #0000ff;"><tt><font>int</font></tt></span><span style="color: #000000;"><tt><font>&nbsp;n,m,i,j;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font></tt></span><span style="color: #0000ff;"><tt><font>bool</font></tt></span><span style="color: #000000;"><tt><font>&nbsp;flag&nbsp;</font></tt></span><span style="color: #000000;"><tt><font>=</font></tt></span><span style="color: #000000;"><tt><font>&nbsp;</font></tt></span><span style="color: #0000ff;"><tt><font>false</font></tt></span><span style="color: #000000;"><tt><font>;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;scanf(</font></tt></span><span style="color: #000000;"><tt><font>"</font></tt></span><span style="color: #000000;"><tt><font>%d%d</font></tt></span><span style="color: #000000;"><tt><font>"</font></tt></span><span style="color: #000000;"><tt><font>,</font></tt></span><span style="color: #000000;"><tt><font>&amp;</font></tt></span><span style="color: #000000;"><tt><font>n,</font></tt></span><span style="color: #000000;"><tt><font>&amp;</font></tt></span><span style="color: #000000;"><tt><font>m);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font></tt></span><span style="color: #0000ff;"><tt><font>for</font></tt></span><span style="color: #000000;"><tt><font>(i&nbsp;</font></tt></span><span style="color: #000000;"><tt><font>=</font></tt></span><span style="color: #000000;"><tt><font>&nbsp;</font></tt></span><span style="color: #000000;"><tt><font>0</font></tt></span><span style="color: #000000;"><tt><font>;i&nbsp;</font></tt></span><span style="color: #000000;"><tt><font>&lt;</font></tt></span><span style="color: #000000;"><tt><font>&nbsp;n;&nbsp;</font></tt></span><span style="color: #000000;"><tt><font>++</font></tt></span><span style="color: #000000;"><tt><font>i){<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a[i].father&nbsp;</font></tt></span><span style="color: #000000;"><tt><font>=</font></tt></span><span style="color: #000000;"><tt><font>&nbsp;i,a[i].v&nbsp;</font></tt></span><span style="color: #000000;"><tt><font>=</font></tt></span><span style="color: #000000;"><tt><font>&nbsp;</font></tt></span><span style="color: #000000;"><tt><font>0</font></tt></span><span style="color: #000000;"><tt><font>;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;scanf(</font></tt></span><span style="color: #000000;"><tt><font>"</font></tt></span><span style="color: #000000;"><tt><font>%d</font></tt></span><span style="color: #000000;"><tt><font>"</font></tt></span><span style="color: #000000;"><tt><font>,</font></tt></span><span style="color: #000000;"><tt><font>&amp;</font></tt></span><span style="color: #000000;"><tt><font>a[i].num);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font></tt></span><span style="color: #0000ff;"><tt><font>while</font></tt></span><span style="color: #000000;"><tt><font>(m</font></tt></span><span style="color: #000000;"><tt><font>--</font></tt></span><span style="color: #000000;"><tt><font>){<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;scanf(</font></tt></span><span style="color: #000000;"><tt><font>"</font></tt></span><span style="color: #000000;"><tt><font>%d%d</font></tt></span><span style="color: #000000;"><tt><font>"</font></tt></span><span style="color: #000000;"><tt><font>,</font></tt></span><span style="color: #000000;"><tt><font>&amp;</font></tt></span><span style="color: #000000;"><tt><font>i,</font></tt></span><span style="color: #000000;"><tt><font>&amp;</font></tt></span><span style="color: #000000;"><tt><font>j);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Union(i,j);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font></tt></span><span style="color: #0000ff;"><tt><font>for</font></tt></span><span style="color: #000000;"><tt><font>(i&nbsp;</font></tt></span><span style="color: #000000;"><tt><font>=</font></tt></span><span style="color: #000000;"><tt><font>&nbsp;</font></tt></span><span style="color: #000000;"><tt><font>0</font></tt></span><span style="color: #000000;"><tt><font>;i&nbsp;</font></tt></span><span style="color: #000000;"><tt><font>&lt;</font></tt></span><span style="color: #000000;"><tt><font>&nbsp;n;&nbsp;</font></tt></span><span style="color: #000000;"><tt><font>++</font></tt></span><span style="color: #000000;"><tt><font>i){<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font></tt></span><span style="color: #0000ff;"><tt><font>int</font></tt></span><span style="color: #000000;"><tt><font>&nbsp;tep&nbsp;</font></tt></span><span style="color: #000000;"><tt><font>=</font></tt></span><span style="color: #000000;"><tt><font>&nbsp;find(i);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font></tt></span><span style="color: #0000ff;"><tt><font>int</font></tt></span><span style="color: #000000;"><tt><font>&nbsp;tt&nbsp;</font></tt></span><span style="color: #000000;"><tt><font>=</font></tt></span><span style="color: #000000;"><tt><font>&nbsp;a[i].num;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a[i].num&nbsp;</font></tt></span><span style="color: #000000;"><tt><font>-=</font></tt></span><span style="color: #000000;"><tt><font>&nbsp;tt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a[tep].num&nbsp;</font></tt></span><span style="color: #000000;"><tt><font>+=</font></tt></span><span style="color: #000000;"><tt><font>&nbsp;tt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font></tt></span><span style="color: #0000ff;"><tt><font>for</font></tt></span><span style="color: #000000;"><tt><font>(i&nbsp;</font></tt></span><span style="color: #000000;"><tt><font>=</font></tt></span><span style="color: #000000;"><tt><font>&nbsp;</font></tt></span><span style="color: #000000;"><tt><font>0</font></tt></span><span style="color: #000000;"><tt><font>;i&nbsp;</font></tt></span><span style="color: #000000;"><tt><font>&lt;</font></tt></span><span style="color: #000000;"><tt><font>&nbsp;n;&nbsp;i</font></tt></span><span style="color: #000000;"><tt><font>++</font></tt></span><span style="color: #000000;"><tt><font>)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font></tt></span><span style="color: #0000ff;"><tt><font>if</font></tt></span><span style="color: #000000;"><tt><font>(a[i].num&nbsp;</font></tt></span><span style="color: #000000;"><tt><font>!=</font></tt></span><span style="color: #000000;"><tt><font>&nbsp;</font></tt></span><span style="color: #000000;"><tt><font>0</font></tt></span><span style="color: #000000;"><tt><font>){<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;flag&nbsp;</font></tt></span><span style="color: #000000;"><tt><font>=</font></tt></span><span style="color: #000000;"><tt><font>&nbsp;</font></tt></span><span style="color: #0000ff;"><tt><font>true</font></tt></span><span style="color: #000000;"><tt><font>;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font></tt></span><span style="color: #0000ff;"><tt><font>break</font></tt></span><span style="color: #000000;"><tt><font>;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font></tt></span><span style="color: #0000ff;"><tt><font>if</font></tt></span><span style="color: #000000;"><tt><font>(flag)&nbsp;printf(</font></tt></span><span style="color: #000000;"><tt><font>"</font></tt></span><span style="color: #000000;"><tt><font>IMPOSSIBLE\n</font></tt></span><span style="color: #000000;"><tt><font>"</font></tt></span><span style="color: #000000;"><tt><font>);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font></tt></span><span style="color: #0000ff;"><tt><font>else</font></tt></span><span style="color: #000000;"><tt><font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf(</font></tt></span><span style="color: #000000;"><tt><font>"</font></tt></span><span style="color: #000000;"><tt><font>POSSIBLE\n</font></tt></span><span style="color: #000000;"><tt><font>"</font></tt></span><span style="color: #000000;"><tt><font>);<br>}<br><br></font></tt></span></div>
Code 2:</font></p>
<p><font face="Times New Roman">
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: #000000;"><tt><font>#include&nbsp;</font></tt></span><span style="color: #000000;"><tt><font>&lt;</font></tt></span><span style="color: #000000;"><tt><font>cstdio</font></tt></span><span style="color: #000000;"><tt><font>&gt;</font></tt></span><span style="color: #000000;"><tt><font><br>#include&nbsp;</font></tt></span><span style="color: #000000;"><tt><font>&lt;</font></tt></span><span style="color: #000000;"><tt><font>cstring</font></tt></span><span style="color: #000000;"><tt><font>&gt;</font></tt></span><span style="color: #000000;"><tt><font><br></font></tt></span><span style="color: #0000ff;"><tt><font>struct</font></tt></span><span style="color: #000000;"><tt><font>&nbsp;Node{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font></tt></span><span style="color: #0000ff;"><tt><font>int</font></tt></span><span style="color: #000000;"><tt><font>&nbsp;father,v,num;<br>}a[</font></tt></span><span style="color: #000000;"><tt><font>10002</font></tt></span><span style="color: #000000;"><tt><font>];<br></font></tt></span><span style="color: #0000ff;"><tt><font>int</font></tt></span><span style="color: #000000;"><tt><font>&nbsp;find(</font></tt></span><span style="color: #0000ff;"><tt><font>int</font></tt></span><span style="color: #000000;"><tt><font>&nbsp;n){<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font></tt></span><span style="color: #0000ff;"><tt><font>int</font></tt></span><span style="color: #000000;"><tt><font>&nbsp;m&nbsp;</font></tt></span><span style="color: #000000;"><tt><font>=</font></tt></span><span style="color: #000000;"><tt><font>&nbsp;n,tep;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font></tt></span><span style="color: #0000ff;"><tt><font>while</font></tt></span><span style="color: #000000;"><tt><font>(n&nbsp;</font></tt></span><span style="color: #000000;"><tt><font>!=</font></tt></span><span style="color: #000000;"><tt><font>&nbsp;a[n].father)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;n&nbsp;</font></tt></span><span style="color: #000000;"><tt><font>=</font></tt></span><span style="color: #000000;"><tt><font>&nbsp;a[n].father;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font></tt></span><span style="color: #0000ff;"><tt><font>while</font></tt></span><span style="color: #000000;"><tt><font>(m&nbsp;</font></tt></span><span style="color: #000000;"><tt><font>!=</font></tt></span><span style="color: #000000;"><tt><font>&nbsp;n){<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tep&nbsp;</font></tt></span><span style="color: #000000;"><tt><font>=</font></tt></span><span style="color: #000000;"><tt><font>&nbsp;a[m].father;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font></tt></span><span style="color: #0000ff;"><tt><font>int</font></tt></span><span style="color: #000000;"><tt><font>&nbsp;tt&nbsp;</font></tt></span><span style="color: #000000;"><tt><font>=</font></tt></span><span style="color: #000000;"><tt><font>&nbsp;a[m].num;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a[m].num&nbsp;</font></tt></span><span style="color: #000000;"><tt><font>-=</font></tt></span><span style="color: #000000;"><tt><font>&nbsp;tt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a[tep].num&nbsp;</font></tt></span><span style="color: #000000;"><tt><font>+=</font></tt></span><span style="color: #000000;"><tt><font>&nbsp;tt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a[m].father&nbsp;</font></tt></span><span style="color: #000000;"><tt><font>=</font></tt></span><span style="color: #000000;"><tt><font>&nbsp;n;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m&nbsp;</font></tt></span><span style="color: #000000;"><tt><font>=</font></tt></span><span style="color: #000000;"><tt><font>&nbsp;tep;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font></tt></span><span style="color: #0000ff;"><tt><font>return</font></tt></span><span style="color: #000000;"><tt><font>&nbsp;n;<br>}<br></font></tt></span><span style="color: #0000ff;"><tt><font>void</font></tt></span><span style="color: #000000;"><tt><font>&nbsp;Union(</font></tt></span><span style="color: #0000ff;"><tt><font>int</font></tt></span><span style="color: #000000;"><tt><font>&nbsp;root1,</font></tt></span><span style="color: #0000ff;"><tt><font>int</font></tt></span><span style="color: #000000;"><tt><font>&nbsp;root2){<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font></tt></span><span style="color: #0000ff;"><tt><font>int</font></tt></span><span style="color: #000000;"><tt><font>&nbsp;t1,t2;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;t1&nbsp;</font></tt></span><span style="color: #000000;"><tt><font>=</font></tt></span><span style="color: #000000;"><tt><font>&nbsp;find(root1),t2&nbsp;</font></tt></span><span style="color: #000000;"><tt><font>=</font></tt></span><span style="color: #000000;"><tt><font>&nbsp;find(root2);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font></tt></span><span style="color: #0000ff;"><tt><font>if</font></tt></span><span style="color: #000000;"><tt><font>(t1&nbsp;</font></tt></span><span style="color: #000000;"><tt><font>==</font></tt></span><span style="color: #000000;"><tt><font>&nbsp;t2)&nbsp;</font></tt></span><span style="color: #0000ff;"><tt><font>return</font></tt></span><span style="color: #000000;"><tt><font>&nbsp;;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font></tt></span><span style="color: #0000ff;"><tt><font>else</font></tt></span><span style="color: #000000;"><tt><font>{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font></tt></span><span style="color: #0000ff;"><tt><font>if</font></tt></span><span style="color: #000000;"><tt><font>(a[t1].v&nbsp;</font></tt></span><span style="color: #000000;"><tt><font>&gt;</font></tt></span><span style="color: #000000;"><tt><font>&nbsp;a[t2].v){<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a[t1].v&nbsp;</font></tt></span><span style="color: #000000;"><tt><font>+=</font></tt></span><span style="color: #000000;"><tt><font>&nbsp;a[t2].v;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a[t2].father&nbsp;</font></tt></span><span style="color: #000000;"><tt><font>=</font></tt></span><span style="color: #000000;"><tt><font>&nbsp;t1;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font></tt></span><span style="color: #0000ff;"><tt><font>else</font></tt></span><span style="color: #000000;"><tt><font>{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a[t2].v&nbsp;</font></tt></span><span style="color: #000000;"><tt><font>+=</font></tt></span><span style="color: #000000;"><tt><font>&nbsp;a[t1].v;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a[t1].father&nbsp;</font></tt></span><span style="color: #000000;"><tt><font>=</font></tt></span><span style="color: #000000;"><tt><font>&nbsp;t2;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>}<br></font></tt></span><span style="color: #0000ff;"><tt><font>int</font></tt></span><span style="color: #000000;"><tt><font>&nbsp;main()<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font></tt></span><span style="color: #0000ff;"><tt><font>int</font></tt></span><span style="color: #000000;"><tt><font>&nbsp;n,m,i,j;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font></tt></span><span style="color: #0000ff;"><tt><font>bool</font></tt></span><span style="color: #000000;"><tt><font>&nbsp;flag&nbsp;</font></tt></span><span style="color: #000000;"><tt><font>=</font></tt></span><span style="color: #000000;"><tt><font>&nbsp;</font></tt></span><span style="color: #0000ff;"><tt><font>false</font></tt></span><span style="color: #000000;"><tt><font>;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;scanf(</font></tt></span><span style="color: #000000;"><tt><font>"</font></tt></span><span style="color: #000000;"><tt><font>%d%d</font></tt></span><span style="color: #000000;"><tt><font>"</font></tt></span><span style="color: #000000;"><tt><font>,</font></tt></span><span style="color: #000000;"><tt><font>&amp;</font></tt></span><span style="color: #000000;"><tt><font>n,</font></tt></span><span style="color: #000000;"><tt><font>&amp;</font></tt></span><span style="color: #000000;"><tt><font>m);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font></tt></span><span style="color: #0000ff;"><tt><font>for</font></tt></span><span style="color: #000000;"><tt><font>(i&nbsp;</font></tt></span><span style="color: #000000;"><tt><font>=</font></tt></span><span style="color: #000000;"><tt><font>&nbsp;</font></tt></span><span style="color: #000000;"><tt><font>0</font></tt></span><span style="color: #000000;"><tt><font>;i&nbsp;</font></tt></span><span style="color: #000000;"><tt><font>&lt;</font></tt></span><span style="color: #000000;"><tt><font>&nbsp;n;&nbsp;</font></tt></span><span style="color: #000000;"><tt><font>++</font></tt></span><span style="color: #000000;"><tt><font>i){<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a[i].father&nbsp;</font></tt></span><span style="color: #000000;"><tt><font>=</font></tt></span><span style="color: #000000;"><tt><font>&nbsp;i,a[i].v&nbsp;</font></tt></span><span style="color: #000000;"><tt><font>=</font></tt></span><span style="color: #000000;"><tt><font>&nbsp;</font></tt></span><span style="color: #000000;"><tt><font>0</font></tt></span><span style="color: #000000;"><tt><font>;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;scanf(</font></tt></span><span style="color: #000000;"><tt><font>"</font></tt></span><span style="color: #000000;"><tt><font>%d</font></tt></span><span style="color: #000000;"><tt><font>"</font></tt></span><span style="color: #000000;"><tt><font>,</font></tt></span><span style="color: #000000;"><tt><font>&amp;</font></tt></span><span style="color: #000000;"><tt><font>a[i].num);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font></tt></span><span style="color: #0000ff;"><tt><font>while</font></tt></span><span style="color: #000000;"><tt><font>(m</font></tt></span><span style="color: #000000;"><tt><font>--</font></tt></span><span style="color: #000000;"><tt><font>){<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;scanf(</font></tt></span><span style="color: #000000;"><tt><font>"</font></tt></span><span style="color: #000000;"><tt><font>%d%d</font></tt></span><span style="color: #000000;"><tt><font>"</font></tt></span><span style="color: #000000;"><tt><font>,</font></tt></span><span style="color: #000000;"><tt><font>&amp;</font></tt></span><span style="color: #000000;"><tt><font>i,</font></tt></span><span style="color: #000000;"><tt><font>&amp;</font></tt></span><span style="color: #000000;"><tt><font>j);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Union(i,j);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font></tt></span><span style="color: #0000ff;"><tt><font>for</font></tt></span><span style="color: #000000;"><tt><font>(i&nbsp;</font></tt></span><span style="color: #000000;"><tt><font>=</font></tt></span><span style="color: #000000;"><tt><font>&nbsp;</font></tt></span><span style="color: #000000;"><tt><font>0</font></tt></span><span style="color: #000000;"><tt><font>;i&nbsp;</font></tt></span><span style="color: #000000;"><tt><font>&lt;</font></tt></span><span style="color: #000000;"><tt><font>&nbsp;n;&nbsp;</font></tt></span><span style="color: #000000;"><tt><font>++</font></tt></span><span style="color: #000000;"><tt><font>i)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font></tt></span><span style="color: #0000ff;"><tt><font>if</font></tt></span><span style="color: #000000;"><tt><font>(a[i].num&nbsp;</font></tt></span><span style="color: #000000;"><tt><font>!=</font></tt></span><span style="color: #000000;"><tt><font>&nbsp;</font></tt></span><span style="color: #000000;"><tt><font>0</font></tt></span><span style="color: #000000;"><tt><font>)&nbsp;find(i);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font></tt></span><span style="color: #0000ff;"><tt><font>for</font></tt></span><span style="color: #000000;"><tt><font>(i&nbsp;</font></tt></span><span style="color: #000000;"><tt><font>=</font></tt></span><span style="color: #000000;"><tt><font>&nbsp;</font></tt></span><span style="color: #000000;"><tt><font>0</font></tt></span><span style="color: #000000;"><tt><font>;i&nbsp;</font></tt></span><span style="color: #000000;"><tt><font>&lt;</font></tt></span><span style="color: #000000;"><tt><font>&nbsp;n;&nbsp;i</font></tt></span><span style="color: #000000;"><tt><font>++</font></tt></span><span style="color: #000000;"><tt><font>)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font></tt></span><span style="color: #0000ff;"><tt><font>if</font></tt></span><span style="color: #000000;"><tt><font>(a[i].num&nbsp;</font></tt></span><span style="color: #000000;"><tt><font>!=</font></tt></span><span style="color: #000000;"><tt><font>&nbsp;</font></tt></span><span style="color: #000000;"><tt><font>0</font></tt></span><span style="color: #000000;"><tt><font>){<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;flag&nbsp;</font></tt></span><span style="color: #000000;"><tt><font>=</font></tt></span><span style="color: #000000;"><tt><font>&nbsp;</font></tt></span><span style="color: #0000ff;"><tt><font>true</font></tt></span><span style="color: #000000;"><tt><font>;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font></tt></span><span style="color: #0000ff;"><tt><font>break</font></tt></span><span style="color: #000000;"><tt><font>;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font></tt></span><span style="color: #0000ff;"><tt><font>if</font></tt></span><span style="color: #000000;"><tt><font>(flag)&nbsp;printf(</font></tt></span><span style="color: #000000;"><tt><font>"</font></tt></span><span style="color: #000000;"><tt><font>IMPOSSIBLE\n</font></tt></span><span style="color: #000000;"><tt><font>"</font></tt></span><span style="color: #000000;"><tt><font>);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font></tt></span><span style="color: #0000ff;"><tt><font>else</font></tt></span><span style="color: #000000;"><tt><font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf(</font></tt></span><span style="color: #000000;"><tt><font>"</font></tt></span><span style="color: #000000;"><tt><font>POSSIBLE\n</font></tt></span><span style="color: #000000;"><tt><font>"</font></tt></span><span style="color: #000000;"><tt><font>);<br>}<br></font></tt></span></div>
<br><br></font></p>
<p><br><font face="Times New Roman"><span lang="en">
<h3><br></h3>
<br><tt><br></tt></span></font>         </p>
</pre>
</tt></span></font><br><br><img src ="http://www.cppblog.com/jie414341055/aggbug/119380.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/jie414341055/" target="_blank">M.J</a> 2010-07-05 21:08 <a href="http://www.cppblog.com/jie414341055/archive/2010/07/05/119380.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>TOJ 1688. Corporative Network 并查集</title><link>http://www.cppblog.com/jie414341055/archive/2010/07/05/119378.html</link><dc:creator>M.J</dc:creator><author>M.J</author><pubDate>Mon, 05 Jul 2010 12:48:00 GMT</pubDate><guid>http://www.cppblog.com/jie414341055/archive/2010/07/05/119378.html</guid><wfw:comment>http://www.cppblog.com/jie414341055/comments/119378.html</wfw:comment><comments>http://www.cppblog.com/jie414341055/archive/2010/07/05/119378.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/jie414341055/comments/commentRss/119378.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/jie414341055/services/trackbacks/119378.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 这道题题意很难懂，大意是有N个公司，每个公司有一个center，最初每个公司的center都在自己公司，然后有M次操作，每次操作 A , B (A保证是一个集合的center，B不一定) 表示将A所在的集合并到B所在的集合，且B的center成为了A的center。每次操作后两个公司的线的距离增加abs(A-B)%1000;<br>Sample Input: (E&nbsp; P表示查询P距离自己center的线的长度，I&nbsp;&nbsp; P&nbsp; Q 表示合并 P ,Q);<br><tt><font face="Times New Roman"><span lang="en"><tt>
<pre>1<br>4<br>E 3<br>I 3 1<br>E 3<br>I 1 2<br>E 3<br>I 2 4<br>E 3<br>O<br></pre>
</tt></span></font></tt>Sample Output:<br><tt><font face="Times New Roman"><span lang="en"><tt>
<pre>0<br>2<br>3<br>5<br><br>Code:</pre>
</tt></span></font></tt><span style="font-size: 10pt;"><tt><font face="Times New Roman"><span lang="en"><tt></tt></span></font></tt></span><span style="font-size: 8pt;"><tt><font face="Times New Roman"><span lang="en"><tt>
<pre>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><span style="color: #000000;"><tt>#include&nbsp;</tt></span><span style="color: #000000;"><tt>&lt;</tt></span><span style="color: #000000;"><tt>cstdio</tt></span><span style="color: #000000;"><tt>&gt;</tt></span><span style="color: #000000;"><tt><br>#include&nbsp;</tt></span><span style="color: #000000;"><tt>&lt;</tt></span><span style="color: #000000;"><tt>iostream</tt></span><span style="color: #000000;"><tt>&gt;</tt></span><span style="color: #000000;"><tt><br></tt></span><span style="color: #0000ff;"><tt>#define</tt></span><span style="color: #000000;"><tt>&nbsp;M&nbsp;20010</tt></span><span style="color: #000000;"><tt><br></tt></span><span style="color: #0000ff;"><tt>using</tt></span><span style="color: #000000;"><tt>&nbsp;</tt></span><span style="color: #0000ff;"><tt>namespace</tt></span><span style="color: #000000;"><tt>&nbsp;std;<br><br></tt></span><span style="color: #0000ff;"><tt>struct</tt></span><span style="color: #000000;"><tt>&nbsp;Node{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></span><span style="color: #0000ff;"><tt>int</tt></span><span style="color: #000000;"><tt>&nbsp;father,num;<br>}a[M];<br></tt></span><span style="color: #0000ff;"><tt>void</tt></span><span style="color: #000000;"><tt>&nbsp;initial(</tt></span><span style="color: #0000ff;"><tt>int</tt></span><span style="color: #000000;"><tt>&nbsp;n){<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></span><span style="color: #0000ff;"><tt>int</tt></span><span style="color: #000000;"><tt>&nbsp;i;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></span><span style="color: #0000ff;"><tt>for</tt></span><span style="color: #000000;"><tt>(i&nbsp;</tt></span><span style="color: #000000;"><tt>=</tt></span><span style="color: #000000;"><tt>&nbsp;</tt></span><span style="color: #000000;"><tt>1</tt></span><span style="color: #000000;"><tt>;i&nbsp;</tt></span><span style="color: #000000;"><tt>&lt;=</tt></span><span style="color: #000000;"><tt>&nbsp;n;&nbsp;i</tt></span><span style="color: #000000;"><tt>++</tt></span><span style="color: #000000;"><tt>){<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a[i].father&nbsp;</tt></span><span style="color: #000000;"><tt>=</tt></span><span style="color: #000000;"><tt>&nbsp;i;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a[i].num&nbsp;</tt></span><span style="color: #000000;"><tt>=</tt></span><span style="color: #000000;"><tt>&nbsp;</tt></span><span style="color: #000000;"><tt>0</tt></span><span style="color: #000000;"><tt>;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>}<br></tt></span><span style="color: #0000ff;"><tt>int</tt></span><span style="color: #000000;"><tt>&nbsp;find(</tt></span><span style="color: #0000ff;"><tt>int</tt></span><span style="color: #000000;"><tt>&nbsp;n){<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></span><span style="color: #0000ff;"><tt>int</tt></span><span style="color: #000000;"><tt>&nbsp;tep,m&nbsp;</tt></span><span style="color: #000000;"><tt>=</tt></span><span style="color: #000000;"><tt>&nbsp;n;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></span><span style="color: #0000ff;"><tt>if</tt></span><span style="color: #000000;"><tt>(n&nbsp;</tt></span><span style="color: #000000;"><tt>==</tt></span><span style="color: #000000;"><tt>&nbsp;a[n].father)&nbsp;</tt></span><span style="color: #0000ff;"><tt>return</tt></span><span style="color: #000000;"><tt>&nbsp;n;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;find(a[n].father);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;                     </tt></span><span style="color: #008000;"><tt>//</tt></span><span style="color: #008000;"><tt>递归查找n的祖先</tt></span><span style="color: #008000;"><tt><br></tt></span><span style="color: #000000;"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a[n].num&nbsp;</tt></span><span style="color: #000000;"><tt>+=</tt></span><span style="color: #000000;"><tt>&nbsp;a[a[n].father].num;&nbsp;&nbsp;</tt></span><span style="color: #008000;"><tt>                     //</tt></span><span style="color: #008000;"><tt>n的直需要更新(加上n的父亲的值)</tt></span><span style="color: #008000;"><tt><br></tt></span><span style="color: #000000;"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a[n].father&nbsp;</tt></span><span style="color: #000000;"><tt>=</tt></span><span style="color: #000000;"><tt>&nbsp;a[a[n].father].father;<br>}<br></tt></span><span style="color: #0000ff;"><tt>int</tt></span><span style="color: #000000;"><tt>&nbsp;main()<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></span><span style="color: #0000ff;"><tt>int</tt></span><span style="color: #000000;"><tt>&nbsp;T,n,i,j,k;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></span><span style="color: #0000ff;"><tt>char</tt></span><span style="color: #000000;"><tt>&nbsp;order[</tt></span><span style="color: #000000;"><tt>3</tt></span><span style="color: #000000;"><tt>];<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;scanf(</tt></span><span style="color: #000000;"><tt>"</tt></span><span style="color: #000000;"><tt>%d</tt></span><span style="color: #000000;"><tt>"</tt></span><span style="color: #000000;"><tt>,</tt></span><span style="color: #000000;"><tt>&amp;</tt></span><span style="color: #000000;"><tt>T);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></span><span style="color: #0000ff;"><tt>while</tt></span><span style="color: #000000;"><tt>(T</tt></span><span style="color: #000000;"><tt>--</tt></span><span style="color: #000000;"><tt>){<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;scanf(</tt></span><span style="color: #000000;"><tt>"</tt></span><span style="color: #000000;"><tt>%d</tt></span><span style="color: #000000;"><tt>"</tt></span><span style="color: #000000;"><tt>,</tt></span><span style="color: #000000;"><tt>&amp;</tt></span><span style="color: #000000;"><tt>n);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;initial(n);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></span><span style="color: #0000ff;"><tt>while</tt></span><span style="color: #000000;"><tt>(scanf(</tt></span><span style="color: #000000;"><tt>"</tt></span><span style="color: #000000;"><tt>%s</tt></span><span style="color: #000000;"><tt>"</tt></span><span style="color: #000000;"><tt>,order)){<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></span><span style="color: #0000ff;"><tt>if</tt></span><span style="color: #000000;"><tt>(order[</tt></span><span style="color: #000000;"><tt>0</tt></span><span style="color: #000000;"><tt>]</tt></span><span style="color: #000000;"><tt>==</tt></span><span style="color: #000000;"><tt>&nbsp;</tt></span><span style="color: #000000;"><tt>'</tt></span><span style="color: #000000;"><tt>O</tt></span><span style="color: #000000;"><tt>'</tt></span><span style="color: #000000;"><tt>)&nbsp;</tt></span><span style="color: #0000ff;"><tt>break</tt></span><span style="color: #000000;"><tt>;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></span><span style="color: #0000ff;"><tt>if</tt></span><span style="color: #000000;"><tt>(order[</tt></span><span style="color: #000000;"><tt>0</tt></span><span style="color: #000000;"><tt>]&nbsp;</tt></span><span style="color: #000000;"><tt>==</tt></span><span style="color: #000000;"><tt>&nbsp;</tt></span><span style="color: #000000;"><tt>'</tt></span><span style="color: #000000;"><tt>E</tt></span><span style="color: #000000;"><tt>'</tt></span><span style="color: #000000;"><tt>){<br>&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;scanf(</tt></span><span style="color: #000000;"><tt>"</tt></span><span style="color: #000000;"><tt>%d</tt></span><span style="color: #000000;"><tt>"</tt></span><span style="color: #000000;"><tt>,</tt></span><span style="color: #000000;"><tt>&amp;</tt></span><span style="color: #000000;"><tt>k);<br>&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;find(k);<br>&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;printf(</tt></span><span style="color: #000000;"><tt>"</tt></span><span style="color: #000000;"><tt>%d\n</tt></span><span style="color: #000000;"><tt>"</tt></span><span style="color: #000000;"><tt>,a[k].num);<br>&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>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></span><span style="color: #0000ff;"><tt>else</tt></span><span style="color: #000000;"><tt>{<br>&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;scanf(</tt></span><span style="color: #000000;"><tt>"</tt></span><span style="color: #000000;"><tt>%d%d</tt></span><span style="color: #000000;"><tt>"</tt></span><span style="color: #000000;"><tt>,</tt></span><span style="color: #000000;"><tt>&amp;</tt></span><span style="color: #000000;"><tt>j,</tt></span><span style="color: #000000;"><tt>&amp;</tt></span><span style="color: #000000;"><tt>k);<br>&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;</tt></span><span style="color: #0000ff;"><tt>int</tt></span><span style="color: #000000;"><tt>&nbsp;dis&nbsp;</tt></span><span style="color: #000000;"><tt>=</tt></span><span style="color: #000000;"><tt>&nbsp;abs(j</tt></span><span style="color: #000000;"><tt>-</tt></span><span style="color: #000000;"><tt>k)</tt></span><span style="color: #000000;"><tt>%</tt></span><span style="color: #000000;"><tt>1000</tt></span><span style="color: #000000;"><tt>;<br>&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;a[j].num&nbsp;</tt></span><span style="color: #000000;"><tt>=</tt></span><span style="color: #000000;"><tt>&nbsp;dis;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;      &nbsp; </tt></span><span style="color: #008000;"><tt>//</tt></span><span style="color: #008000;"><tt>该值dis为j的值</tt></span><span style="color: #008000;"><tt><br></tt></span><span style="color: #000000;"><tt>&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;a[j].father&nbsp;</tt></span><span style="color: #000000;"><tt>=</tt></span><span style="color: #000000;"><tt>&nbsp;k;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;      &nbsp;</tt></span><span style="color: #008000;"><tt>//</tt></span><span style="color: #008000;"><tt>k成为了j的父亲</tt></span><span style="color: #008000;"><tt><br></tt></span><span style="color: #000000;"><tt>&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>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>}<br><br><br></tt></span></div>
<br></pre>
</tt></span></font></tt><br></span><br><img src ="http://www.cppblog.com/jie414341055/aggbug/119378.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/jie414341055/" target="_blank">M.J</a> 2010-07-05 20:48 <a href="http://www.cppblog.com/jie414341055/archive/2010/07/05/119378.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>TOJ 2904【JAVA大数的进制问题】</title><link>http://www.cppblog.com/jie414341055/archive/2010/06/23/118574.html</link><dc:creator>M.J</dc:creator><author>M.J</author><pubDate>Wed, 23 Jun 2010 08:05:00 GMT</pubDate><guid>http://www.cppblog.com/jie414341055/archive/2010/06/23/118574.html</guid><wfw:comment>http://www.cppblog.com/jie414341055/comments/118574.html</wfw:comment><comments>http://www.cppblog.com/jie414341055/archive/2010/06/23/118574.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/jie414341055/comments/commentRss/118574.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/jie414341055/services/trackbacks/118574.html</trackback:ping><description><![CDATA[题目给定一个进制b，然后给两个b进制下的大数 m 和 n ，要求求出m % n的结果，用b进制表示。<br>最近在学JAVA，发现做起高精度简直太爽了~ 这个题有JAVA简直就是个水题，知道一些函数就好了。<br>BigInteger a = in.nextBigInteger(base);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //将一个大数按照base进制输入<br>a.mod(b) ;&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //a%b,其中a和b都是大数且结果为10进制，不管a和b是什么进制<br>String str= a.toString(base);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //将一个大数a转换成b进制的字符串<br><br>这个题就用到这些东西，代码就不贴了。~~<br>
<img src ="http://www.cppblog.com/jie414341055/aggbug/118574.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/jie414341055/" target="_blank">M.J</a> 2010-06-23 16:05 <a href="http://www.cppblog.com/jie414341055/archive/2010/06/23/118574.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>TOJ 1135 Matrix Chain Multiplication</title><link>http://www.cppblog.com/jie414341055/archive/2010/06/12/117744.html</link><dc:creator>M.J</dc:creator><author>M.J</author><pubDate>Sat, 12 Jun 2010 14:10:00 GMT</pubDate><guid>http://www.cppblog.com/jie414341055/archive/2010/06/12/117744.html</guid><wfw:comment>http://www.cppblog.com/jie414341055/comments/117744.html</wfw:comment><comments>http://www.cppblog.com/jie414341055/archive/2010/06/12/117744.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/jie414341055/comments/commentRss/117744.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/jie414341055/services/trackbacks/117744.html</trackback:ping><description><![CDATA[很简单的题，给定N个矩阵，然后给出一系列运算式，用括号来限制运算，最后求一共进行了多少次乘法运算。<br>R(m,s) 和Q(s,n)相乘，要进行m*s*n次～<br>处理运算先后的时候，用栈实现，即后进先出就可以了。<br>Sample Input:<br><tt><font face="Times New Roman"><span lang="en"><tt>
<pre>9<br>A 50 10<br>B 10 20<br>C 20 5<br>D 30 35<br>E 35 15<br>F 15 5<br>G 5 10<br>H 10 20<br>I 20 25<br>A<br>B<br>C<br>(AA)<br>(AB)<br>(AC)<br>(A(BC))<br>((AB)C)<br>(((((DE)F)G)H)I)<br>(D(E(F(G(HI)))))<br>((D(EF))((GH)I))<br>Sample Outout:<br><tt><font face="Times New Roman"><span lang="en"><tt>
<pre>0<br>0<br>0<br>error<br>10000<br>error<br>3500<br>15000<br>40500<br>47500<br>15125<br>Code:<br>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: #000000;"><tt>#include&nbsp;</tt></span><span style="color: #000000;"><tt>&lt;</tt></span><span style="color: #000000;"><tt>iostream</tt></span><span style="color: #000000;"><tt>&gt;</tt></span><span style="color: #000000;"><tt><br>#include&nbsp;</tt></span><span style="color: #000000;"><tt>&lt;</tt></span><span style="color: #000000;"><tt>cstdio</tt></span><span style="color: #000000;"><tt>&gt;</tt></span><span style="color: #000000;"><tt><br>#include&nbsp;</tt></span><span style="color: #000000;"><tt>&lt;</tt></span><span style="color: #0000ff;"><tt>string</tt></span><span style="color: #000000;"><tt>&gt;</tt></span><span style="color: #000000;"><tt><br>#include&nbsp;</tt></span><span style="color: #000000;"><tt>&lt;</tt></span><span style="color: #000000;"><tt>map</tt></span><span style="color: #000000;"><tt>&gt;</tt></span><span style="color: #000000;"><tt><br></tt></span><span style="color: #0000ff;"><tt>using</tt></span><span style="color: #000000;"><tt>&nbsp;</tt></span><span style="color: #0000ff;"><tt>namespace</tt></span><span style="color: #000000;"><tt>&nbsp;std;<br><br></tt></span><span style="color: #0000ff;"><tt>struct</tt></span><span style="color: #000000;"><tt>&nbsp;Matrx{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></span><span style="color: #0000ff;"><tt>char</tt></span><span style="color: #000000;"><tt>&nbsp;id;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></span><span style="color: #0000ff;"><tt>int</tt></span><span style="color: #000000;"><tt>&nbsp;x,y;<br>}a[</tt></span><span style="color: #000000;"><tt>30</tt></span><span style="color: #000000;"><tt>];<br>Matrx&nbsp;stack[</tt></span><span style="color: #000000;"><tt>100</tt></span><span style="color: #000000;"><tt>];<br></tt></span><span style="color: #0000ff;"><tt>int</tt></span><span style="color: #000000;"><tt>&nbsp;main()<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></span><span style="color: #0000ff;"><tt>int</tt></span><span style="color: #000000;"><tt>&nbsp;i,j,k,n,ans;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></span><span style="color: #0000ff;"><tt>bool</tt></span><span style="color: #000000;"><tt>&nbsp;flag;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;map</tt></span><span style="color: #000000;"><tt>&lt;</tt></span><span style="color: #0000ff;"><tt>char</tt></span><span style="color: #000000;"><tt>,</tt></span><span style="color: #0000ff;"><tt>int</tt></span><span style="color: #000000;"><tt>&gt;</tt></span><span style="color: #000000;"><tt>mark;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;scanf(</tt></span><span style="color: #000000;"><tt>"</tt></span><span style="color: #000000;"><tt>%d</tt></span><span style="color: #000000;"><tt>"</tt></span><span style="color: #000000;"><tt>,</tt></span><span style="color: #000000;"><tt>&amp;</tt></span><span style="color: #000000;"><tt>n);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></span><span style="color: #0000ff;"><tt>for</tt></span><span style="color: #000000;"><tt>(i&nbsp;</tt></span><span style="color: #000000;"><tt>=</tt></span><span style="color: #000000;"><tt>&nbsp;</tt></span><span style="color: #000000;"><tt>1</tt></span><span style="color: #000000;"><tt>;i&nbsp;</tt></span><span style="color: #000000;"><tt>&lt;=</tt></span><span style="color: #000000;"><tt>&nbsp;n;&nbsp;i</tt></span><span style="color: #000000;"><tt>++</tt></span><span style="color: #000000;"><tt>){<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cin&nbsp;</tt></span><span style="color: #000000;"><tt>&gt;&gt;</tt></span><span style="color: #000000;"><tt>&nbsp;a[i].id;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;scanf(</tt></span><span style="color: #000000;"><tt>"</tt></span><span style="color: #000000;"><tt>%d%d</tt></span><span style="color: #000000;"><tt>"</tt></span><span style="color: #000000;"><tt>,</tt></span><span style="color: #000000;"><tt>&amp;</tt></span><span style="color: #000000;"><tt>a[i].x,</tt></span><span style="color: #000000;"><tt>&amp;</tt></span><span style="color: #000000;"><tt>a[i].y);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mark[a[i].id]&nbsp;</tt></span><span style="color: #000000;"><tt>=</tt></span><span style="color: #000000;"><tt>&nbsp;i;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></span><span style="color: #0000ff;"><tt>string</tt></span><span style="color: #000000;"><tt>&nbsp;str;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></span><span style="color: #0000ff;"><tt>while</tt></span><span style="color: #000000;"><tt>(cin</tt></span><span style="color: #000000;"><tt>&gt;&gt;</tt></span><span style="color: #000000;"><tt>str){<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ans&nbsp;</tt></span><span style="color: #000000;"><tt>=</tt></span><span style="color: #000000;"><tt>&nbsp;</tt></span><span style="color: #000000;"><tt>0</tt></span><span style="color: #000000;"><tt>;&nbsp;flag&nbsp;</tt></span><span style="color: #000000;"><tt>=</tt></span><span style="color: #000000;"><tt>&nbsp;</tt></span><span style="color: #0000ff;"><tt>true</tt></span><span style="color: #000000;"><tt>;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></span><span style="color: #0000ff;"><tt>int</tt></span><span style="color: #000000;"><tt>&nbsp;len&nbsp;</tt></span><span style="color: #000000;"><tt>=</tt></span><span style="color: #000000;"><tt>&nbsp;str.length();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></span><span style="color: #0000ff;"><tt>int</tt></span><span style="color: #000000;"><tt>&nbsp;head,tail;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;head&nbsp;</tt></span><span style="color: #000000;"><tt>=</tt></span><span style="color: #000000;"><tt>&nbsp;tail&nbsp;</tt></span><span style="color: #000000;"><tt>=</tt></span><span style="color: #000000;"><tt>&nbsp;</tt></span><span style="color: #000000;"><tt>0</tt></span><span style="color: #000000;"><tt>;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></span><span style="color: #0000ff;"><tt>for</tt></span><span style="color: #000000;"><tt>(i&nbsp;</tt></span><span style="color: #000000;"><tt>=</tt></span><span style="color: #000000;"><tt>&nbsp;</tt></span><span style="color: #000000;"><tt>0</tt></span><span style="color: #000000;"><tt>;i&nbsp;</tt></span><span style="color: #000000;"><tt>&lt;</tt></span><span style="color: #000000;"><tt>len;&nbsp;i</tt></span><span style="color: #000000;"><tt>++</tt></span><span style="color: #000000;"><tt>){<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></span><span style="color: #0000ff;"><tt>if</tt></span><span style="color: #000000;"><tt>(str[i]&nbsp;</tt></span><span style="color: #000000;"><tt>==</tt></span><span style="color: #000000;"><tt>&nbsp;</tt></span><span style="color: #000000;"><tt>'</tt></span><span style="color: #000000;"><tt>(</tt></span><span style="color: #000000;"><tt>'</tt></span><span style="color: #000000;"><tt>)<br>&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;</tt></span><span style="color: #0000ff;"><tt>continue</tt></span><span style="color: #000000;"><tt>;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></span><span style="color: #0000ff;"><tt>else</tt></span><span style="color: #000000;"><tt>&nbsp;</tt></span><span style="color: #0000ff;"><tt>if</tt></span><span style="color: #000000;"><tt>(str[i]&nbsp;</tt></span><span style="color: #000000;"><tt>==</tt></span><span style="color: #000000;"><tt>&nbsp;</tt></span><span style="color: #000000;"><tt>'</tt></span><span style="color: #000000;"><tt>)</tt></span><span style="color: #000000;"><tt>'</tt></span><span style="color: #000000;"><tt>){&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></span><span style="color: #008000;"><tt>//</tt></span><span style="color: #008000;"><tt>pop</tt></span><span style="color: #008000;"><tt><br></tt></span><span style="color: #000000;"><tt>&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;</tt></span><span style="color: #0000ff;"><tt>if</tt></span><span style="color: #000000;"><tt>(head&nbsp;</tt></span><span style="color: #000000;"><tt>==</tt></span><span style="color: #000000;"><tt>&nbsp;</tt></span><span style="color: #000000;"><tt>1</tt></span><span style="color: #000000;"><tt>)<br>&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;head&nbsp;</tt></span><span style="color: #000000;"><tt>--</tt></span><span style="color: #000000;"><tt>;<br>&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;</tt></span><span style="color: #0000ff;"><tt>else</tt></span><span style="color: #000000;"><tt>&nbsp;</tt></span><span style="color: #0000ff;"><tt>if</tt></span><span style="color: #000000;"><tt>(head&nbsp;</tt></span><span style="color: #000000;"><tt>&gt;</tt></span><span style="color: #000000;"><tt>&nbsp;</tt></span><span style="color: #000000;"><tt>1</tt></span><span style="color: #000000;"><tt>){<br>&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></span><span style="color: #0000ff;"><tt>int</tt></span><span style="color: #000000;"><tt>&nbsp;tx&nbsp;</tt></span><span style="color: #000000;"><tt>=</tt></span><span style="color: #000000;"><tt>&nbsp;stack[head</tt></span><span style="color: #000000;"><tt>-</tt></span><span style="color: #000000;"><tt>2</tt></span><span style="color: #000000;"><tt>].x;<br>&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></span><span style="color: #0000ff;"><tt>int</tt></span><span style="color: #000000;"><tt>&nbsp;ty&nbsp;</tt></span><span style="color: #000000;"><tt>=</tt></span><span style="color: #000000;"><tt>&nbsp;stack[head</tt></span><span style="color: #000000;"><tt>-</tt></span><span style="color: #000000;"><tt>1</tt></span><span style="color: #000000;"><tt>].y;<br>&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></span><span style="color: #0000ff;"><tt>if</tt></span><span style="color: #000000;"><tt>(stack[head</tt></span><span style="color: #000000;"><tt>-</tt></span><span style="color: #000000;"><tt>2</tt></span><span style="color: #000000;"><tt>].y&nbsp;</tt></span><span style="color: #000000;"><tt>!=</tt></span><span style="color: #000000;"><tt>&nbsp;stack[head</tt></span><span style="color: #000000;"><tt>-</tt></span><span style="color: #000000;"><tt>1</tt></span><span style="color: #000000;"><tt>].x)&nbsp;flag&nbsp;</tt></span><span style="color: #000000;"><tt>=</tt></span><span style="color: #000000;"><tt>&nbsp;</tt></span><span style="color: #0000ff;"><tt>false</tt></span><span style="color: #000000;"><tt>;<br>&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ans&nbsp;</tt></span><span style="color: #000000;"><tt>+=</tt></span><span style="color: #000000;"><tt>&nbsp;stack[head</tt></span><span style="color: #000000;"><tt>-</tt></span><span style="color: #000000;"><tt>2</tt></span><span style="color: #000000;"><tt>].x</tt></span><span style="color: #000000;"><tt>*</tt></span><span style="color: #000000;"><tt>stack[head</tt></span><span style="color: #000000;"><tt>-</tt></span><span style="color: #000000;"><tt>2</tt></span><span style="color: #000000;"><tt>].y</tt></span><span style="color: #000000;"><tt>*</tt></span><span style="color: #000000;"><tt>stack[head</tt></span><span style="color: #000000;"><tt>-</tt></span><span style="color: #000000;"><tt>1</tt></span><span style="color: #000000;"><tt>].y;<br>&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;head&nbsp;</tt></span><span style="color: #000000;"><tt>-=</tt></span><span style="color: #000000;"><tt>&nbsp;</tt></span><span style="color: #000000;"><tt>2</tt></span><span style="color: #000000;"><tt>;<br>&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;stack[head].x&nbsp;</tt></span><span style="color: #000000;"><tt>=</tt></span><span style="color: #000000;"><tt>&nbsp;tx;<br>&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;stack[head</tt></span><span style="color: #000000;"><tt>++</tt></span><span style="color: #000000;"><tt>].y&nbsp;</tt></span><span style="color: #000000;"><tt>=</tt></span><span style="color: #000000;"><tt>&nbsp;ty;<br>&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>&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>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></span><span style="color: #0000ff;"><tt>else</tt></span><span style="color: #000000;"><tt>{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></span><span style="color: #008000;"><tt>//</tt></span><span style="color: #008000;"><tt>&nbsp;push</tt></span><span style="color: #008000;"><tt><br></tt></span><span style="color: #000000;"><tt>&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;stack[head</tt></span><span style="color: #000000;"><tt>++</tt></span><span style="color: #000000;"><tt>]&nbsp;</tt></span><span style="color: #000000;"><tt>=</tt></span><span style="color: #000000;"><tt>&nbsp;a[mark[str[i]]];<br><br>&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>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></span><span style="color: #0000ff;"><tt>if</tt></span><span style="color: #000000;"><tt>(</tt></span><span style="color: #000000;"><tt>!</tt></span><span style="color: #000000;"><tt>flag)&nbsp;printf(</tt></span><span style="color: #000000;"><tt>"</tt></span><span style="color: #000000;"><tt>error\n</tt></span><span style="color: #000000;"><tt>"</tt></span><span style="color: #000000;"><tt>);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></span><span style="color: #0000ff;"><tt>else</tt></span><span style="color: #000000;"><tt>&nbsp;printf(</tt></span><span style="color: #000000;"><tt>"</tt></span><span style="color: #000000;"><tt>%d\n</tt></span><span style="color: #000000;"><tt>"</tt></span><span style="color: #000000;"><tt>,ans);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>}<br></tt></span></div>
<br></pre>
</tt></span></font></tt><br></pre>
</tt></span></font></tt><br><br><img src ="http://www.cppblog.com/jie414341055/aggbug/117744.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/jie414341055/" target="_blank">M.J</a> 2010-06-12 22:10 <a href="http://www.cppblog.com/jie414341055/archive/2010/06/12/117744.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>【DP】TOJ 2820  How many different ways </title><link>http://www.cppblog.com/jie414341055/archive/2010/06/12/117696.html</link><dc:creator>M.J</dc:creator><author>M.J</author><pubDate>Sat, 12 Jun 2010 07:05:00 GMT</pubDate><guid>http://www.cppblog.com/jie414341055/archive/2010/06/12/117696.html</guid><wfw:comment>http://www.cppblog.com/jie414341055/comments/117696.html</wfw:comment><comments>http://www.cppblog.com/jie414341055/archive/2010/06/12/117696.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/jie414341055/comments/commentRss/117696.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/jie414341055/services/trackbacks/117696.html</trackback:ping><description><![CDATA[<p>给定从1 到 N的 N 个数，问有多少种不同方案划分这些数。比如N = 3，则有5种方案：<br>{{1},{2},{3}}<br>{{1,2},{3}}<br>{{1,3},{2}}<br>{{2,3},{1}}<br>{{1,2,3}}<br>最后的结果只保留后四位，即mod10000；<br>上网查了下，集合的划分的个数叫做bell数，bell数可以递归求解：<br>bell[0] = 1;<br>bell [n + 1] = sigma(C(n,k))*(bell[k]); (0&lt;=k&lt;=n)</p>
<p>&nbsp; <br>然而这个题却不可以这样做，因为N得范围是2000，这样做必定超时，于是想到了DP，如果用dp[i][j]表示i个数<br>划分成j个集合，那么便有dp[i][j] = j * dp[i-1][j] + dp[i-1][j-1];( i &gt; j )直观理解就是，将i个数划分成j个集合的个数，即为i-1个数划分到j个集合的数，再将多的那个依次放到j个集合中，所以乘以j，或者是i-1个数放在j-1个集合中，第j个集合为空，则正好将多的这个数放到这个集合中，于是便有上边的状态转移方程。<br>Code:</p>
<p>&nbsp;</p>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee">
<pre><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #000000">#include&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">cstdio</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>#include&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">iostream</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>#include&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">cmath</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></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><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;map[</span><span style="COLOR: #000000">2002</span><span style="COLOR: #000000">][</span><span style="COLOR: #000000">2002</span><span style="COLOR: #000000">];<br><img id=Codehighlighter1_107_364_Open_Image onclick="this.style.display='none'; Codehighlighter1_107_364_Open_Text.style.display='none'; Codehighlighter1_107_364_Closed_Image.style.display='inline'; Codehighlighter1_107_364_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_107_364_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_107_364_Closed_Text.style.display='none'; Codehighlighter1_107_364_Open_Image.style.display='inline'; Codehighlighter1_107_364_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;DP()</span><span id=Codehighlighter1_107_364_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"></span><span id=Codehighlighter1_107_364_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;memset(map,</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">,</span><span style="COLOR: #0000ff">sizeof</span><span style="COLOR: #000000">(map));<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;i,j,k;<br><img id=Codehighlighter1_184_236_Open_Image onclick="this.style.display='none'; Codehighlighter1_184_236_Open_Text.style.display='none'; Codehighlighter1_184_236_Closed_Image.style.display='inline'; Codehighlighter1_184_236_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_184_236_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_184_236_Closed_Text.style.display='none'; Codehighlighter1_184_236_Open_Image.style.display='inline'; Codehighlighter1_184_236_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">(i&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;i&nbsp;</span><span style="COLOR: #000000">&lt;=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">2000</span><span style="COLOR: #000000">;&nbsp;i</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">)</span><span id=Codehighlighter1_184_236_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"></span><span id=Codehighlighter1_184_236_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;map[i][i]&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;map[i][</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><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">(i&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;i&nbsp;</span><span style="COLOR: #000000">&lt;=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">2000</span><span style="COLOR: #000000">&nbsp;;i</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">)<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">(j&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;&nbsp;j&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">&nbsp;i;&nbsp;j</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">)<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;map[i][j]&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;(j&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;map[i</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">][j]&nbsp;</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">&nbsp;map[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">])</span><span style="COLOR: #000000">%</span><span style="COLOR: #000000">10000</span><span style="COLOR: #000000">;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;main()<br><img id=Codehighlighter1_377_742_Open_Image onclick="this.style.display='none'; Codehighlighter1_377_742_Open_Text.style.display='none'; Codehighlighter1_377_742_Closed_Image.style.display='inline'; Codehighlighter1_377_742_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_377_742_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_377_742_Closed_Text.style.display='none'; Codehighlighter1_377_742_Open_Image.style.display='inline'; Codehighlighter1_377_742_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span id=Codehighlighter1_377_742_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"></span><span id=Codehighlighter1_377_742_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;i,j,k,n;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;DP();<br><img id=Codehighlighter1_433_740_Open_Image onclick="this.style.display='none'; Codehighlighter1_433_740_Open_Text.style.display='none'; Codehighlighter1_433_740_Closed_Image.style.display='inline'; Codehighlighter1_433_740_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_433_740_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_433_740_Closed_Text.style.display='none'; Codehighlighter1_433_740_Open_Image.style.display='inline'; Codehighlighter1_433_740_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&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),n)</span><span id=Codehighlighter1_433_740_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"></span><span id=Codehighlighter1_433_740_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;ans&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">(i&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;i&nbsp;</span><span style="COLOR: #000000">&lt;=</span><span style="COLOR: #000000">&nbsp;n;&nbsp;i</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">)<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ans&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;(ans&nbsp;</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">&nbsp;map[n][i])</span><span style="COLOR: #000000">%</span><span style="COLOR: #000000">10000</span><span style="COLOR: #000000">;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">string</span><span style="COLOR: #000000">&nbsp;str&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">0000</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;str[</span><span style="COLOR: #000000">3</span><span style="COLOR: #000000">]&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;ans</span><span style="COLOR: #000000">%</span><span style="COLOR: #000000">10</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">;&nbsp;ans</span><span style="COLOR: #000000">/=</span><span style="COLOR: #000000">10</span><span style="COLOR: #000000">;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;str[</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">]&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;ans</span><span style="COLOR: #000000">%</span><span style="COLOR: #000000">10</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">;&nbsp;ans</span><span style="COLOR: #000000">/=</span><span style="COLOR: #000000">10</span><span style="COLOR: #000000">;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;str[</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">]&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;ans</span><span style="COLOR: #000000">%</span><span style="COLOR: #000000">10</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">;&nbsp;ans</span><span style="COLOR: #000000">/=</span><span style="COLOR: #000000">10</span><span style="COLOR: #000000">;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;str[</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">]&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;ans</span><span style="COLOR: #000000">%</span><span style="COLOR: #000000">10</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">;&nbsp;ans</span><span style="COLOR: #000000">/=</span><span style="COLOR: #000000">10</span><span style="COLOR: #000000">;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout</span><span style="COLOR: #000000">&lt;&lt;</span><span style="COLOR: #000000">str</span><span style="COLOR: #000000">&lt;&lt;</span><span style="COLOR: #000000">endl;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span></pre>
</div>
<img src ="http://www.cppblog.com/jie414341055/aggbug/117696.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/jie414341055/" target="_blank">M.J</a> 2010-06-12 15:05 <a href="http://www.cppblog.com/jie414341055/archive/2010/06/12/117696.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Dilworth定理及相关题目</title><link>http://www.cppblog.com/jie414341055/archive/2010/05/28/116632.html</link><dc:creator>M.J</dc:creator><author>M.J</author><pubDate>Fri, 28 May 2010 10:35:00 GMT</pubDate><guid>http://www.cppblog.com/jie414341055/archive/2010/05/28/116632.html</guid><wfw:comment>http://www.cppblog.com/jie414341055/comments/116632.html</wfw:comment><comments>http://www.cppblog.com/jie414341055/archive/2010/05/28/116632.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/jie414341055/comments/commentRss/116632.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/jie414341055/services/trackbacks/116632.html</trackback:ping><description><![CDATA[<span style="WIDOWS: 2; TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: medium Simsun; WHITE-SPACE: normal; ORPHANS: 2; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" class=Apple-style-span><span style="LINE-HEIGHT: 30px; FONT-FAMILY: verdana, Arial, helvetica, sans-seriff; COLOR: rgb(75,75,75); FONT-SIZE: 12pt" class=Apple-style-span>偏序集的两个定理：<br>定理1) 令（X,&#8804;）是一个有限偏序集，并令r是其最大链的大小。则X可以被划分成r个但不能再少的反链。<br>其对偶定理称为Dilworth定理：<br>定理2) 令（X,&#8804;）是一个有限偏序集，并令m是反链的最大的大小。则X可以被划分成m个但不能再少的链。<br>&nbsp;即：链的最少划分数=反链的最长长度<br>相关的题目有pku 1065，pku 3636，pku 1548<br>POJ 3636:<br>
<div style="BORDER-BOTTOM: #cccccc 1px solid; BORDER-LEFT: #cccccc 1px solid; PADDING-BOTTOM: 4px; BACKGROUND-COLOR: #eeeeee; PADDING-LEFT: 4px; WIDTH: 98%; PADDING-RIGHT: 5px; FONT-SIZE: 13px; WORD-BREAK: break-all; BORDER-TOP: #cccccc 1px solid; BORDER-RIGHT: #cccccc 1px solid; PADDING-TOP: 4px">
<pre><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/None.gif"><span style="COLOR: #000000">#include</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">iostream</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/None.gif">#include</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">algorithm</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/None.gif"></span><span style="COLOR: #0000ff">#define</span><span style="COLOR: #000000">&nbsp;M&nbsp;20002</span><span style="COLOR: #000000"><br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/None.gif"></span><span style="COLOR: #0000ff">using</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">namespace</span><span style="COLOR: #000000">&nbsp;std;<br><img id=Codehighlighter1_87_99_Open_Image onclick="this.style.display='none'; Codehighlighter1_87_99_Open_Text.style.display='none'; Codehighlighter1_87_99_Closed_Image.style.display='inline'; Codehighlighter1_87_99_Closed_Text.style.display='inline';" align=top src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif"><img style="DISPLAY: none" id=Codehighlighter1_87_99_Closed_Image onclick="this.style.display='none'; Codehighlighter1_87_99_Closed_Text.style.display='none'; Codehighlighter1_87_99_Open_Image.style.display='inline'; Codehighlighter1_87_99_Open_Text.style.display='inline';" align=top src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif"></span><span style="COLOR: #0000ff">struct</span><span style="COLOR: #000000">&nbsp;Node</span><span style="BORDER-BOTTOM: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BACKGROUND-COLOR: #ffffff; DISPLAY: none; BORDER-TOP: #808080 1px solid; BORDER-RIGHT: #808080 1px solid" id=Codehighlighter1_87_99_Closed_Text><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_87_99_Open_Text><span style="COLOR: #000000">{<br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;h,w;<br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif">}</span></span><span style="COLOR: #000000">a[M];<br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/None.gif"></span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;tail[M],n;<br><img id=Codehighlighter1_136_598_Open_Image onclick="this.style.display='none'; Codehighlighter1_136_598_Open_Text.style.display='none'; Codehighlighter1_136_598_Closed_Image.style.display='inline'; Codehighlighter1_136_598_Closed_Text.style.display='inline';" align=top src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif"><img style="DISPLAY: none" id=Codehighlighter1_136_598_Closed_Image onclick="this.style.display='none'; Codehighlighter1_136_598_Closed_Text.style.display='none'; Codehighlighter1_136_598_Open_Image.style.display='inline'; Codehighlighter1_136_598_Open_Text.style.display='inline';" align=top src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif"></span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;LIS(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;n)</span><span style="BORDER-BOTTOM: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BACKGROUND-COLOR: #ffffff; DISPLAY: none; BORDER-TOP: #808080 1px solid; BORDER-RIGHT: #808080 1px solid" id=Codehighlighter1_136_598_Closed_Text><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_136_598_Open_Text><span style="COLOR: #000000">{<br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;i,j,m,len,mid,low,high;<br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;len</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">;tail[</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">]</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">a[</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">].h;<br><img id=Codehighlighter1_211_548_Open_Image onclick="this.style.display='none'; Codehighlighter1_211_548_Open_Text.style.display='none'; Codehighlighter1_211_548_Closed_Image.style.display='inline'; Codehighlighter1_211_548_Closed_Text.style.display='inline';" align=top src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="DISPLAY: none" id=Codehighlighter1_211_548_Closed_Image onclick="this.style.display='none'; Codehighlighter1_211_548_Closed_Text.style.display='none'; Codehighlighter1_211_548_Open_Image.style.display='inline'; Codehighlighter1_211_548_Open_Text.style.display='inline';" align=top src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">(i</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">;i</span><span style="COLOR: #000000">&lt;=</span><span style="COLOR: #000000">n;i</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">)</span><span style="BORDER-BOTTOM: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BACKGROUND-COLOR: #ffffff; DISPLAY: none; BORDER-TOP: #808080 1px solid; BORDER-RIGHT: #808080 1px solid" id=Codehighlighter1_211_548_Closed_Text><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_211_548_Open_Text><span style="COLOR: #000000">{<br><img id=Codehighlighter1_243_302_Open_Image onclick="this.style.display='none'; Codehighlighter1_243_302_Open_Text.style.display='none'; Codehighlighter1_243_302_Closed_Image.style.display='inline'; Codehighlighter1_243_302_Closed_Text.style.display='inline';" align=top src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="DISPLAY: none" id=Codehighlighter1_243_302_Closed_Image onclick="this.style.display='none'; Codehighlighter1_243_302_Closed_Text.style.display='none'; Codehighlighter1_243_302_Open_Image.style.display='inline'; Codehighlighter1_243_302_Open_Text.style.display='inline';" align=top src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(tail[len]</span><span style="COLOR: #000000">&lt;=</span><span style="COLOR: #000000">a[i].h)&nbsp;</span><span style="BORDER-BOTTOM: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BACKGROUND-COLOR: #ffffff; DISPLAY: none; BORDER-TOP: #808080 1px solid; BORDER-RIGHT: #808080 1px solid" id=Codehighlighter1_243_302_Closed_Text><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_243_302_Open_Text><span style="COLOR: #000000">{<br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;len</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">;<br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tail[len]</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">a[i].h;<br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img id=Codehighlighter1_316_542_Open_Image onclick="this.style.display='none'; Codehighlighter1_316_542_Open_Text.style.display='none'; Codehighlighter1_316_542_Closed_Image.style.display='inline'; Codehighlighter1_316_542_Closed_Text.style.display='inline';" align=top src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="DISPLAY: none" id=Codehighlighter1_316_542_Closed_Image onclick="this.style.display='none'; Codehighlighter1_316_542_Closed_Text.style.display='none'; Codehighlighter1_316_542_Open_Image.style.display='inline'; Codehighlighter1_316_542_Open_Text.style.display='inline';" align=top src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">else</span><span style="BORDER-BOTTOM: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BACKGROUND-COLOR: #ffffff; DISPLAY: none; BORDER-TOP: #808080 1px solid; BORDER-RIGHT: #808080 1px solid" id=Codehighlighter1_316_542_Closed_Text><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_316_542_Open_Text><span style="COLOR: #000000">{<br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;low</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">;high</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">len;&nbsp;<br><img id=Codehighlighter1_374_502_Open_Image onclick="this.style.display='none'; Codehighlighter1_374_502_Open_Text.style.display='none'; Codehighlighter1_374_502_Closed_Image.style.display='inline'; Codehighlighter1_374_502_Closed_Text.style.display='inline';" align=top src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="DISPLAY: none" id=Codehighlighter1_374_502_Closed_Image onclick="this.style.display='none'; Codehighlighter1_374_502_Closed_Text.style.display='none'; Codehighlighter1_374_502_Open_Image.style.display='inline'; Codehighlighter1_374_502_Open_Text.style.display='inline';" align=top src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">while</span><span style="COLOR: #000000">(low</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">high)</span><span style="BORDER-BOTTOM: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BACKGROUND-COLOR: #ffffff; DISPLAY: none; BORDER-TOP: #808080 1px solid; BORDER-RIGHT: #808080 1px solid" id=Codehighlighter1_374_502_Closed_Text><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_374_502_Open_Text><span style="COLOR: #000000">{<br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mid</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">(low</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">high)</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">;<br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(a[i].h</span><span style="COLOR: #000000">&gt;=</span><span style="COLOR: #000000">tail[mid])&nbsp;low</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">mid</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">;<br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">else</span><span style="COLOR: #000000">&nbsp;high</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">mid;<br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tail[low]</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">a[i].h;<br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif">&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&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">,len);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif">}</span></span><span style="COLOR: #000000"><br><img id=Codehighlighter1_623_676_Open_Image onclick="this.style.display='none'; Codehighlighter1_623_676_Open_Text.style.display='none'; Codehighlighter1_623_676_Closed_Image.style.display='inline'; Codehighlighter1_623_676_Closed_Text.style.display='inline';" align=top src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif"><img style="DISPLAY: none" id=Codehighlighter1_623_676_Closed_Image onclick="this.style.display='none'; Codehighlighter1_623_676_Closed_Text.style.display='none'; Codehighlighter1_623_676_Open_Image.style.display='inline'; Codehighlighter1_623_676_Open_Text.style.display='inline';" align=top src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif"></span><span style="COLOR: #0000ff">bool</span><span style="COLOR: #000000">&nbsp;cmp(Node&nbsp;a,Node&nbsp;b)</span><span style="BORDER-BOTTOM: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BACKGROUND-COLOR: #ffffff; DISPLAY: none; BORDER-TOP: #808080 1px solid; BORDER-RIGHT: #808080 1px solid" id=Codehighlighter1_623_676_Closed_Text><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_623_676_Open_Text><span style="COLOR: #000000">{<br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(a.w</span><span style="COLOR: #000000">!=</span><span style="COLOR: #000000">b.w)</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;a.w</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000">b.w;<br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">else</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;a.h</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">b.h;<br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif">}</span></span><span style="COLOR: #000000"><br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/None.gif"></span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;main()<br><img id=Codehighlighter1_689_881_Open_Image onclick="this.style.display='none'; Codehighlighter1_689_881_Open_Text.style.display='none'; Codehighlighter1_689_881_Closed_Image.style.display='inline'; Codehighlighter1_689_881_Closed_Text.style.display='inline';" align=top src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif"><img style="DISPLAY: none" id=Codehighlighter1_689_881_Closed_Image onclick="this.style.display='none'; Codehighlighter1_689_881_Closed_Text.style.display='none'; Codehighlighter1_689_881_Open_Image.style.display='inline'; Codehighlighter1_689_881_Open_Text.style.display='inline';" align=top src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif"></span><span style="BORDER-BOTTOM: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BACKGROUND-COLOR: #ffffff; DISPLAY: none; BORDER-TOP: #808080 1px solid; BORDER-RIGHT: #808080 1px solid" id=Codehighlighter1_689_881_Closed_Text><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_689_881_Open_Text><span style="COLOR: #000000">{<br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;i,j,k,cas;<br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;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">cas);&nbsp;&nbsp;&nbsp;&nbsp;<br><img id=Codehighlighter1_740_848_Open_Image onclick="this.style.display='none'; Codehighlighter1_740_848_Open_Text.style.display='none'; Codehighlighter1_740_848_Closed_Image.style.display='inline'; Codehighlighter1_740_848_Closed_Text.style.display='inline';" align=top src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="DISPLAY: none" id=Codehighlighter1_740_848_Closed_Image onclick="this.style.display='none'; Codehighlighter1_740_848_Closed_Text.style.display='none'; Codehighlighter1_740_848_Open_Image.style.display='inline'; Codehighlighter1_740_848_Open_Text.style.display='inline';" align=top src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">while</span><span style="COLOR: #000000">(cas</span><span style="COLOR: #000000">--</span><span style="COLOR: #000000">)</span><span style="BORDER-BOTTOM: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BACKGROUND-COLOR: #ffffff; DISPLAY: none; BORDER-TOP: #808080 1px solid; BORDER-RIGHT: #808080 1px solid" id=Codehighlighter1_740_848_Closed_Text><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_740_848_Open_Text><span style="COLOR: #000000">{<br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;scanf(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">%d</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">n);<br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">(i</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">;i</span><span style="COLOR: #000000">&lt;=</span><span style="COLOR: #000000">n;i</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">)<br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;scanf(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">%d%d</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">a[i].w,</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">a[i].h);<br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sort(a</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">,a</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">n,cmp);<br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LIS(n);<br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif">&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">system("pause");</span><span style="COLOR: #008000"><br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"></span><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><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif">}</span></span></pre>
</div>
</span></span>POJ&nbsp; 1548:<br>
<div style="BORDER-BOTTOM: #cccccc 1px solid; BORDER-LEFT: #cccccc 1px solid; PADDING-BOTTOM: 4px; BACKGROUND-COLOR: #eeeeee; PADDING-LEFT: 4px; WIDTH: 98%; PADDING-RIGHT: 5px; FONT-SIZE: 13px; WORD-BREAK: break-all; BORDER-TOP: #cccccc 1px solid; BORDER-RIGHT: #cccccc 1px solid; PADDING-TOP: 4px">
<pre><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/None.gif"><span style="COLOR: #000000">#include</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">iostream</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/None.gif">#include</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">algorithm</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/None.gif"></span><span style="COLOR: #0000ff">using</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">namespace</span><span style="COLOR: #000000">&nbsp;std;<br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/None.gif"></span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;k,a[</span><span style="COLOR: #000000">700</span><span style="COLOR: #000000">],tail[</span><span style="COLOR: #000000">800</span><span style="COLOR: #000000">],b[</span><span style="COLOR: #000000">860</span><span style="COLOR: #000000">];<br><img id=Codehighlighter1_101_599_Open_Image onclick="this.style.display='none'; Codehighlighter1_101_599_Open_Text.style.display='none'; Codehighlighter1_101_599_Closed_Image.style.display='inline'; Codehighlighter1_101_599_Closed_Text.style.display='inline';" align=top src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif"><img style="DISPLAY: none" id=Codehighlighter1_101_599_Closed_Image onclick="this.style.display='none'; Codehighlighter1_101_599_Closed_Text.style.display='none'; Codehighlighter1_101_599_Open_Image.style.display='inline'; Codehighlighter1_101_599_Open_Text.style.display='inline';" align=top src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif"></span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;LIS()</span><span style="BORDER-BOTTOM: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BACKGROUND-COLOR: #ffffff; DISPLAY: none; BORDER-TOP: #808080 1px solid; BORDER-RIGHT: #808080 1px solid" id=Codehighlighter1_101_599_Closed_Text><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_101_599_Open_Text><span style="COLOR: #000000">{<br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;i,j,m,n,len,mid,left,right;<br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;n</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">;<br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">(i</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">k</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">;i</span><span style="COLOR: #000000">&gt;=</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">;i</span><span style="COLOR: #000000">--</span><span style="COLOR: #000000">)&nbsp;b[n</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">]</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">a[i];<br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;n</span><span style="COLOR: #000000">--</span><span style="COLOR: #000000">;<br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;len</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">;tail[</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">]</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">b[</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">];<br><img id=Codehighlighter1_227_549_Open_Image onclick="this.style.display='none'; Codehighlighter1_227_549_Open_Text.style.display='none'; Codehighlighter1_227_549_Closed_Image.style.display='inline'; Codehighlighter1_227_549_Closed_Text.style.display='inline';" align=top src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="DISPLAY: none" id=Codehighlighter1_227_549_Closed_Image onclick="this.style.display='none'; Codehighlighter1_227_549_Closed_Text.style.display='none'; Codehighlighter1_227_549_Open_Image.style.display='inline'; Codehighlighter1_227_549_Open_Text.style.display='inline';" align=top src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">(i</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">;i</span><span style="COLOR: #000000">&lt;=</span><span style="COLOR: #000000">n;</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">i)</span><span style="BORDER-BOTTOM: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BACKGROUND-COLOR: #ffffff; DISPLAY: none; BORDER-TOP: #808080 1px solid; BORDER-RIGHT: #808080 1px solid" id=Codehighlighter1_227_549_Closed_Text><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_227_549_Open_Text><span style="COLOR: #000000">{<br><img id=Codehighlighter1_249_282_Open_Image onclick="this.style.display='none'; Codehighlighter1_249_282_Open_Text.style.display='none'; Codehighlighter1_249_282_Closed_Image.style.display='inline'; Codehighlighter1_249_282_Closed_Text.style.display='inline';" align=top src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="DISPLAY: none" id=Codehighlighter1_249_282_Closed_Image onclick="this.style.display='none'; Codehighlighter1_249_282_Closed_Text.style.display='none'; Codehighlighter1_249_282_Open_Image.style.display='inline'; Codehighlighter1_249_282_Open_Text.style.display='inline';" align=top src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(b[i]</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000">tail[len])</span><span style="BORDER-BOTTOM: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BACKGROUND-COLOR: #ffffff; DISPLAY: none; BORDER-TOP: #808080 1px solid; BORDER-RIGHT: #808080 1px solid" id=Codehighlighter1_249_282_Closed_Text><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_249_282_Open_Text><span style="COLOR: #000000">{<br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;len</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">;<br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tail[len]</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">b[i];<br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img id=Codehighlighter1_290_545_Open_Image onclick="this.style.display='none'; Codehighlighter1_290_545_Open_Text.style.display='none'; Codehighlighter1_290_545_Closed_Image.style.display='inline'; Codehighlighter1_290_545_Closed_Text.style.display='inline';" align=top src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="DISPLAY: none" id=Codehighlighter1_290_545_Closed_Image onclick="this.style.display='none'; Codehighlighter1_290_545_Closed_Text.style.display='none'; Codehighlighter1_290_545_Open_Image.style.display='inline'; Codehighlighter1_290_545_Open_Text.style.display='inline';" align=top src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">else</span><span style="BORDER-BOTTOM: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BACKGROUND-COLOR: #ffffff; DISPLAY: none; BORDER-TOP: #808080 1px solid; BORDER-RIGHT: #808080 1px solid" id=Codehighlighter1_290_545_Closed_Text><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_290_545_Open_Text><span style="COLOR: #000000">{<br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;left</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">;right</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">len;<br><img id=Codehighlighter1_345_491_Open_Image onclick="this.style.display='none'; Codehighlighter1_345_491_Open_Text.style.display='none'; Codehighlighter1_345_491_Closed_Image.style.display='inline'; Codehighlighter1_345_491_Closed_Text.style.display='inline';" align=top src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="DISPLAY: none" id=Codehighlighter1_345_491_Closed_Image onclick="this.style.display='none'; Codehighlighter1_345_491_Closed_Text.style.display='none'; Codehighlighter1_345_491_Open_Image.style.display='inline'; Codehighlighter1_345_491_Open_Text.style.display='inline';" align=top src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">while</span><span style="COLOR: #000000">(left</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">right)</span><span style="BORDER-BOTTOM: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BACKGROUND-COLOR: #ffffff; DISPLAY: none; BORDER-TOP: #808080 1px solid; BORDER-RIGHT: #808080 1px solid" id=Codehighlighter1_345_491_Closed_Text><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_345_491_Open_Text><span style="COLOR: #000000">{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">二分查找插入的位置&nbsp;</span><span style="COLOR: #008000"><br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mid</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">(left</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">right)</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">;<br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(tail[mid]</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">b[i])&nbsp;left</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">mid</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">;<br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">else</span><span style="COLOR: #000000">&nbsp;&nbsp;right</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">mid;<br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tail[left]</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">b[i];&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">插入&nbsp;</span><span style="COLOR: #008000"><br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif"></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000">&nbsp;<br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif">&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&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">,len);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif">}</span></span><span style="COLOR: #000000"><br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/None.gif"></span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;main()<br><img id=Codehighlighter1_612_807_Open_Image onclick="this.style.display='none'; Codehighlighter1_612_807_Open_Text.style.display='none'; Codehighlighter1_612_807_Closed_Image.style.display='inline'; Codehighlighter1_612_807_Closed_Text.style.display='inline';" align=top src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif"><img style="DISPLAY: none" id=Codehighlighter1_612_807_Closed_Image onclick="this.style.display='none'; Codehighlighter1_612_807_Closed_Text.style.display='none'; Codehighlighter1_612_807_Open_Image.style.display='inline'; Codehighlighter1_612_807_Open_Text.style.display='inline';" align=top src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif"></span><span style="BORDER-BOTTOM: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BACKGROUND-COLOR: #ffffff; DISPLAY: none; BORDER-TOP: #808080 1px solid; BORDER-RIGHT: #808080 1px solid" id=Codehighlighter1_612_807_Closed_Text><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_612_807_Open_Text><span style="COLOR: #000000">{<br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;i,j,m,n;<br><img id=Codehighlighter1_637_805_Open_Image onclick="this.style.display='none'; Codehighlighter1_637_805_Open_Text.style.display='none'; Codehighlighter1_637_805_Closed_Image.style.display='inline'; Codehighlighter1_637_805_Closed_Text.style.display='inline';" align=top src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="DISPLAY: none" id=Codehighlighter1_637_805_Closed_Image onclick="this.style.display='none'; Codehighlighter1_637_805_Closed_Text.style.display='none'; Codehighlighter1_637_805_Open_Image.style.display='inline'; Codehighlighter1_637_805_Open_Text.style.display='inline';" align=top src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">while</span><span style="COLOR: #000000">(</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">)</span><span style="BORDER-BOTTOM: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BACKGROUND-COLOR: #ffffff; DISPLAY: none; BORDER-TOP: #808080 1px solid; BORDER-RIGHT: #808080 1px solid" id=Codehighlighter1_637_805_Closed_Text><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_637_805_Open_Text><span style="COLOR: #000000">{<br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;k</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">;<br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;scanf(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">%d%d</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">i,</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">j);<br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(i</span><span style="COLOR: #000000">==-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">&amp;&amp;</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: #0000ff">break</span><span style="COLOR: #000000">;<br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a[k</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">]</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">j;<br><img id=Codehighlighter1_735_801_Open_Image onclick="this.style.display='none'; Codehighlighter1_735_801_Open_Text.style.display='none'; Codehighlighter1_735_801_Closed_Image.style.display='inline'; Codehighlighter1_735_801_Closed_Text.style.display='inline';" align=top src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="DISPLAY: none" id=Codehighlighter1_735_801_Closed_Image onclick="this.style.display='none'; Codehighlighter1_735_801_Closed_Text.style.display='none'; Codehighlighter1_735_801_Open_Image.style.display='inline'; Codehighlighter1_735_801_Open_Text.style.display='inline';" align=top src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">while</span><span style="COLOR: #000000">(scanf(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">%d%d</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">i,</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">j))</span><span style="BORDER-BOTTOM: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BACKGROUND-COLOR: #ffffff; DISPLAY: none; BORDER-TOP: #808080 1px solid; BORDER-RIGHT: #808080 1px solid" id=Codehighlighter1_735_801_Closed_Text><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_735_801_Open_Text><span style="COLOR: #000000">{<br><img id=Codehighlighter1_755_784_Open_Image onclick="this.style.display='none'; Codehighlighter1_755_784_Open_Text.style.display='none'; Codehighlighter1_755_784_Closed_Image.style.display='inline'; Codehighlighter1_755_784_Closed_Text.style.display='inline';" align=top src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="DISPLAY: none" id=Codehighlighter1_755_784_Closed_Image onclick="this.style.display='none'; Codehighlighter1_755_784_Closed_Text.style.display='none'; Codehighlighter1_755_784_Open_Image.style.display='inline'; Codehighlighter1_755_784_Open_Text.style.display='inline';" align=top src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(i</span><span style="COLOR: #000000">==</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">&amp;&amp;</span><span style="COLOR: #000000">j</span><span style="COLOR: #000000">==</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">&nbsp;)</span><span style="BORDER-BOTTOM: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BACKGROUND-COLOR: #ffffff; DISPLAY: none; BORDER-TOP: #808080 1px solid; BORDER-RIGHT: #808080 1px solid" id=Codehighlighter1_755_784_Closed_Text><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_755_784_Open_Text><span style="COLOR: #000000">{<br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LIS();<br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">break</span><span style="COLOR: #000000">;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a[k</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">]</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">j;<br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;<br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif">&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif">}</span></span></pre>
</div>
<img src ="http://www.cppblog.com/jie414341055/aggbug/116632.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/jie414341055/" target="_blank">M.J</a> 2010-05-28 18:35 <a href="http://www.cppblog.com/jie414341055/archive/2010/05/28/116632.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>