<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>cnPhil :: My Blog &#187; Informatics</title>
	<atom:link href="http://www.cnphil.com/archives/tag/informatics/feed" rel="self" type="application/rss+xml" />
	<link>http://www.cnphil.com</link>
	<description>In Pursuit of Excellence</description>
	<lastBuildDate>Mon, 16 May 2011 04:27:41 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>长郡NOIp2008停课集训试题解题报告&amp;测试数据 &#8211; 10月28日</title>
		<link>http://www.cnphil.com/archives/48</link>
		<comments>http://www.cnphil.com/archives/48#comments</comments>
		<pubDate>Tue, 28 Oct 2008 12:44:27 +0000</pubDate>
		<dc:creator>Phil</dc:creator>
				<category><![CDATA[Informatics]]></category>
		<category><![CDATA[NOIp]]></category>

		<guid isPermaLink="false">http://www.cnphil.com/?p=48</guid>
		<description><![CDATA[测试数据和完整解题报告在此下载： DropBox &#124; Skydrive 正文： 10月28日_G122_cnPhil_的解题报告 先看哈： 选手列表 编号 姓名 总分 02.mt 02.mt 400.00 standard standard 400.00 &#8211;测试器上一角，Orz mt大牛。 简单题目 Easy 时间限制：1s 空间限制：128M 【题目背景】 经典题目自有经典算法。   【题目描述】 给你一个N*M（N,M&#60;=1000）的01矩形，求一个面积最大的不包含数字1的矩形。   【输入数据】 第一行两个数N，M。 接下来N行，每行M个数为0或1。   【输出数据】 一个数ans表示最大空矩形的面积。 Sample Easy.in 2 4 1 0 0 0 0 1 1 0   Easy.out 3 Solve: 这道题，我是用类动规方法做的。对于一个点，记录其竖直向上、水平向左两条最大可以达到多长，再根据这个点左边、上面的点的值求出以这个点为右下角的矩形最大能达到多少。mlj的方法：枚举每列，求出每两个1或边界之间的最大可取矩形。（预处理时标记每点最左最右双向可取长度） SB题 SB 时间限制：1s [...]]]></description>
			<content:encoded><![CDATA[<p>测试数据和完整解题报告在此下载： <a href="http://dl-client.getdropbox.com/u/99058/cnPhil/OI/081028/20081028_All.rar">DropBox</a> | <a href="http://cid-773a3e6c915e47b9.skydrive.live.com/self.aspx/Public/OI/20081028%7C_All.rar">Skydrive</a></p>
<p>正文：</p>
<p><span><span><span><span><span><span><strong><span>10月28日_G122_cnPhil_的解题报告</span></strong></span></span></span></span></span></span></p>
<p><span><span><span><span><span><span><strong><span>先看哈：</span></strong></span></span></span></span></span></span></p>
<p><span><span><span><span><span><span><span>选手列表</span></span></span></span></span></span></span></p>
<p><span><span><span><span><span><span><span>编号 姓名 总分</span></span></span></span></span></span></span></p>
<p><span><span><span><span><span><span><span>02.mt 02.mt 400.00</span></span></span></span></span></span></span></p>
<p><span><span><span><span><span><span><span>standard standard 400.00</span></span></span></span></span></span></span></p>
<p><span><span><span><span><span><span><span>&#8211;测试器上一角，Orz mt大牛。</span></span></span></span></span></span></span></p>
<p><span><span><span><span><span><span><strong><span>简单题目</span></strong></span></span></span></span></span></span></p>
<p><span><span><span><span><span><span><strong><span lang="EN-US" xml:lang="EN-US">Easy</span></strong></span></span></span></span></span></span></p>
<p><span><span><span><span><span><span><strong><span>时间限制：</span></strong></span></span></span></span></span></span><span><span><span><span><span><span><strong><span lang="EN-US" xml:lang="EN-US">1s</span></strong></span></span></span></span></span></span></p>
<p><span><span><span><span><span><span><strong><span>空间限制：</span></strong></span></span></span></span></span></span><span><span><span><span><span><span><strong><span lang="EN-US" xml:lang="EN-US">128M</span></strong></span></span></span></span></span></span></p>
<p><span><span><span><span><span><span><span>【题目背景】</span></span></span></span></span></span></span></p>
<p><span><span><span><span><span><span><span>经典题目自有经典算法。</span></span></span></span></span></span></span></p>
<p> </p>
<p><span><span><span><span><span><span><span>【题目描述】</span></span></span></span></span></span></span></p>
<p><span><span><span><span><span><span><span>给你一个</span></span></span></span></span></span></span><span><span><span><span><span><span><span lang="EN-US" xml:lang="EN-US">N*M</span></span></span></span></span></span></span><span><span><span><span><span><span><span>（</span></span></span></span></span></span></span><span><span><span><span><span><span><span lang="EN-US" xml:lang="EN-US">N,M&lt;=1000</span></span></span></span></span></span></span><span><span><span><span><span><span><span>）的</span></span></span></span></span></span></span><span><span><span><span><span><span><span lang="EN-US" xml:lang="EN-US">01</span></span></span></span></span></span></span><span><span><span><span><span><span><span>矩形，求一个面积最大的不包含数字</span></span></span></span></span></span></span><span><span><span><span><span><span><span lang="EN-US" xml:lang="EN-US">1</span></span></span></span></span></span></span><span><span><span><span><span><span><span>的矩形。</span></span></span></span></span></span></span></p>
<p> </p>
<p><span><span><span><span><span><span><span>【输入数据】</span></span></span></span></span></span></span></p>
<p><span><span><span><span><span><span><span>第一行两个数</span></span></span></span></span></span></span><span><span><span><span><span><span><span lang="EN-US" xml:lang="EN-US">N</span></span></span></span></span></span></span><span><span><span><span><span><span><span>，</span></span></span></span></span></span></span><span><span><span><span><span><span><span lang="EN-US" xml:lang="EN-US">M</span></span></span></span></span></span></span><span><span><span><span><span><span><span>。</span></span></span></span></span></span></span></p>
<p><span><span><span><span><span><span><span>接下来</span></span></span></span></span></span></span><span><span><span><span><span><span><span lang="EN-US" xml:lang="EN-US">N</span></span></span></span></span></span></span><span><span><span><span><span><span><span>行，每行</span></span></span></span></span></span></span><span><span><span><span><span><span><span lang="EN-US" xml:lang="EN-US">M</span></span></span></span></span></span></span><span><span><span><span><span><span><span>个数为</span></span></span></span></span></span></span><span><span><span><span><span><span><span lang="EN-US" xml:lang="EN-US">0</span></span></span></span></span></span></span><span><span><span><span><span><span><span>或</span></span></span></span></span></span></span><span><span><span><span><span><span><span lang="EN-US" xml:lang="EN-US">1</span></span></span></span></span></span></span><span><span><span><span><span><span><span>。</span></span></span></span></span></span></span></p>
<p> </p>
<p><span><span><span><span><span><span><span>【输出数据】</span></span></span></span></span></span></span></p>
<p><span><span><span><span><span><span><span>一个数</span><span lang="EN-US" xml:lang="EN-US">ans</span></span></span></span></span></span></span><span><span><span><span><span><span><span>表示最大空矩形的面积。</span></span></span></span></span></span></span></p>
<p><span><span><span><span><span><span><span lang="EN-US" xml:lang="EN-US">Sample</span></span></span></span></span></span></span></p>
<p><span><span><span><span><span><span><span lang="EN-US" xml:lang="EN-US">Easy.in</span></span></span></span></span></span></span></p>
<p><span><span><span><span><span><span><span lang="EN-US" xml:lang="EN-US">2 4</span></span></span></span></span></span></span></p>
<p><span><span><span><span><span><span><span lang="EN-US" xml:lang="EN-US">1 0 0 0</span></span></span></span></span></span></span></p>
<p><span><span><span><span><span><span><span lang="EN-US" xml:lang="EN-US">0 1 1 0</span></span></span></span></span></span></span></p>
<p> </p>
<p><span><span><span><span><span><span><span lang="EN-US" xml:lang="EN-US">Easy.out</span></span></span></span></span></span></span></p>
<p><span><span><span><span><span><span><span lang="EN-US" xml:lang="EN-US">3</span></span></span></span></span></span></span></p>
<p><span><span><span><span><span><span><span><span lang="EN-US" xml:lang="EN-US"><span style="color: #ff0000;">Solve:</span></span></span></span></span></span></span></span></span></p>
<p><span><span><span><span><span><span><span lang="EN-US" xml:lang="EN-US"><span style="color: #ff0000;">这道题，我是用类动规方法做的。对于一个点，记录其竖直向上、水平向左两条最大可以达到多长，再根据这个点左边、上面的点的值求出以这个点为右下角的矩形最大能达到多少。mlj的方法：枚举每列，求出每两个1或边界之间的最大可取矩形。（预处理时标记每点最左最右双向可取长度）</span></span></span></span></span></span></span></span></p>
<p><span><span><span><span><span><span><strong><span lang="EN-US" xml:lang="EN-US">SB</span></strong></span></span></span></span></span></span><span><span><span><span><span><span><strong><span>题</span></strong></span></span></span></span></span></span></p>
<p><span><span><span><span><span><span><strong><span lang="EN-US" xml:lang="EN-US">SB</span></strong></span></span></span></span></span></span></p>
<p><span><span><span><span><span><span><strong><span>时间限制：</span></strong></span></span></span></span></span></span><span><span><span><span><span><span><strong><span lang="EN-US" xml:lang="EN-US">1s</span></strong></span></span></span></span></span></span></p>
<p><span><span><span><span><span><span><strong><span>空间限制：</span></strong></span></span></span></span></span></span><span><span><span><span><span><span><strong><span lang="EN-US" xml:lang="EN-US">128M</span></strong></span></span></span></span></span></span></p>
<p><span><span><span><span><span><span><span>【题目背景】</span></span></span></span></span></span></span></p>
<p><span><span><span><span><span><span><span>题如其名啦……</span></span></span></span></span></span></span></p>
<p><span><span><span><span><span><span><span>【题目描述】</span></span></span></span></span></span></span></p>
<p><span><span><span><span><span><span><span>给你一棵</span></span></span></span></span></span></span><span><span><span><span><span><span><span lang="EN-US" xml:lang="EN-US">N</span></span></span></span></span></span></span><span><span><span><span><span><span><span>（</span></span></span></span></span></span></span><span><span><span><span><span><span><span lang="EN-US" xml:lang="EN-US">N&lt;=10000</span></span></span></span></span></span></span><span><span><span><span><span><span><span>）个节点的树，求每个点到其他点的最大距离。</span></span></span></span></span></span></span></p>
<p><span><span><span><span><span><span><span>【输入数据】</span></span></span></span></span></span></span></p>
<p><span><span><span><span><span><span><span>第一行一个数</span></span></span></span></span></span></span><span><span><span><span><span><span><span lang="EN-US" xml:lang="EN-US">N</span></span></span></span></span></span></span><span><span><span><span><span><span><span>。</span></span></span></span></span></span></span></p>
<p><span><span><span><span><span><span><span>接下来若干行每行两个数</span></span></span></span></span></span></span><span><span><span><span><span><span><span lang="EN-US" xml:lang="EN-US">k</span></span></span></span></span></span></span><span><span><span><span><span><span><span>，</span></span></span></span></span></span></span><span><span><span><span><span><span><span lang="EN-US" xml:lang="EN-US">t</span></span></span></span></span></span></span><span><span><span><span><span><span><span>描述一条点</span></span></span></span></span></span></span><span><span><span><span><span><span><span lang="EN-US" xml:lang="EN-US">k</span></span></span></span></span></span></span><span><span><span><span><span><span><span>到点</span></span></span></span></span></span></span><span><span><span><span><span><span><span lang="EN-US" xml:lang="EN-US">t</span></span></span></span></span></span></span><span><span><span><span><span><span><span>的边（输入数据保证无重复边）。</span></span></span></span></span></span></span></p>
<p><span><span><span><span><span><span><span>【输出数据】</span></span></span></span></span></span></span></p>
<p><span><span><span><span><span><span><span lang="EN-US" xml:lang="EN-US">N</span></span></span></span></span></span></span><span><span><span><span><span><span><span>行每行一个数表示每个点到其他点的最大距离。</span></span></span></span></span></span></span></p>
<p><span><span><span><span><span><span><span lang="EN-US" xml:lang="EN-US">Sample</span></span></span></span></span></span></span></p>
<p><span><span><span><span><span><span><span lang="EN-US" xml:lang="EN-US">SB.in</span></span></span></span></span></span></span></p>
<p><span><span><span><span><span><span><span lang="EN-US" xml:lang="EN-US">5</span></span></span></span></span></span></span></p>
<p><span><span><span><span><span><span><span lang="EN-US" xml:lang="EN-US">1 2</span></span></span></span></span></span></span></p>
<p><span><span><span><span><span><span><span lang="EN-US" xml:lang="EN-US">1 3</span></span></span></span></span></span></span></p>
<p><span><span><span><span><span><span><span lang="EN-US" xml:lang="EN-US">1 4</span></span></span></span></span></span></span></p>
<p><span><span><span><span><span><span><span lang="EN-US" xml:lang="EN-US">4 5</span></span></span></span></span></span></span></p>
<p><span><span><span><span><span><span><span lang="EN-US" xml:lang="EN-US">SB.out</span></span></span></span></span></span></span></p>
<p><span><span><span><span><span><span><span lang="EN-US" xml:lang="EN-US">2</span></span></span></span></span></span></span></p>
<p><span><span><span><span><span><span><span lang="EN-US" xml:lang="EN-US">3</span></span></span></span></span></span></span></p>
<p><span><span><span><span><span><span><span lang="EN-US" xml:lang="EN-US">3</span></span></span></span></span></span></span></p>
<p><span><span><span><span><span><span><span lang="EN-US" xml:lang="EN-US">2</span></span></span></span></span></span></span></p>
<p><span><span><span><span><span><span><span lang="EN-US" xml:lang="EN-US">3</span></span></span></span></span></span></span></p>
<p><span><span><span><span><span><span><span lang="EN-US" xml:lang="EN-US"><span style="color: #ff0000;">Solve:</span></span></span></span></span></span></span></span></p>
<p><span><span><span><span><span><span><span lang="EN-US" xml:lang="EN-US"><span style="color: #ff0000;">这道题，有个两遍深搜的方法：首先对于每个点，先构造树结构（任选一点作为根），回溯时求出它到底层的最长路和次长路，然后再对于每个点i，枚举这个点到根的每个点j，若这一段ij不在j的最长路上，那么用ij长+j的最长路更新i点值，若这一段ij在j的最长路上，那么用ij长+j的次长路更新i点值。</span><del>另外还有一个树形动规的方法，貌似很难实现：从底层到根，一层一层来，对于一条边u,v，求出去除其后，以u为根，最长的一条 <span><strong>路径（有边就是路，不管是子是父）</strong>就等于u连出的边的目标点的最长路径值，然后对v为根也做一遍。最后，加一个废点指向根，求出经过根的最长路径。</span></del><span><span style="color: #ff0000;">这个方法被指有误！不知道是我听错了还是怎么地。哪位大牛能给我讲讲这个树形动规的方法？</span></span></span></span></span></span></span></span></span></p>
<p><span><span><span><span><span><span><strong><span>判断</span></strong></span></span></span></span></span></span></p>
<p><span><span><span><span><span><span><strong><span lang="EN-US" xml:lang="EN-US">Compare</span></strong></span></span></span></span></span></span></p>
<p><span><span><span><span><span><span><strong><span>时间限制：</span></strong></span></span></span></span></span></span><span><span><span><span><span><span><strong><span lang="EN-US" xml:lang="EN-US">1s</span></strong></span></span></span></span></span></span></p>
<p><span><span><span><span><span><span><strong><span>空间限制：</span></strong></span></span></span></span></span></span><span><span><span><span><span><span><strong><span lang="EN-US" xml:lang="EN-US">128M</span></strong></span></span></span></span></span></span></p>
<p><span><span><span><span><span><span><span>【题目背景】</span></span></span></span></span></span></span></p>
<p><span><span><span><span><span><span><span>这不是道水题！这真的不是道水题！这绝对不是道水题！！！</span></span></span></span></span></span></span></p>
<p><span><span><span><span><span><span><span>【题目描述】</span></span></span></span></span></span></span></p>
<p><span><span><span><span><span><span><span>给你一个</span><span lang="EN-US" xml:lang="EN-US">n(n&lt;=1000)</span></span></span></span></span></span></span><span><span><span><span><span><span><span>个点</span><span lang="EN-US" xml:lang="EN-US">m(m&lt;=n*</span></span></span></span></span></span></span><span><span><span><span><span><span><span>（</span><span lang="EN-US" xml:lang="EN-US">n-1</span></span></span></span></span></span></span><span><span><span><span><span><span><span>）</span><span lang="EN-US" xml:lang="EN-US">/2)</span></span></span></span></span></span></span><span><span><span><span><span><span><span>条边的图和</span><span lang="EN-US" xml:lang="EN-US">k(k&lt;=100)</span></span></span></span></span></span></span><span><span><span><span><span><span><span>个<strong>程序</strong>对这个图做从点</span><span lang="EN-US" xml:lang="EN-US">1</span></span></span></span></span></span></span><span><span><span><span><span><span><span>到点</span><span lang="EN-US" xml:lang="EN-US">n</span></span></span></span></span></span></span><span><span><span><span><span><span><span>的最短路后得到的的结果，写一个</span><span lang="EN-US" xml:lang="EN-US">compare</span></span></span></span></span></span></span><span><span><span><span><span><span><span>判断谁的输出最优。</span></span></span></span></span></span></span></p>
<p><span><span><span><span><span><span><span>【输入数据】</span></span></span></span></span></span></span></p>
<p><span><span><span><span><span><span><span>第一行三个数</span><span lang="EN-US" xml:lang="EN-US">n</span></span></span></span></span></span></span><span><span><span><span><span><span><span>，</span><span lang="EN-US" xml:lang="EN-US">m</span></span></span></span></span></span></span><span><span><span><span><span><span><span>，</span><span lang="EN-US" xml:lang="EN-US">k</span></span></span></span></span></span></span><span><span><span><span><span><span><span>。</span></span></span></span></span></span></span></p>
<p><span><span><span><span><span><span><span>接下来</span><span lang="EN-US" xml:lang="EN-US">m</span></span></span></span></span></span></span><span><span><span><span><span><span><span>行，每行三个数</span><span lang="EN-US" xml:lang="EN-US">a</span></span></span></span></span></span></span><span><span><span><span><span><span><span>，</span><span lang="EN-US" xml:lang="EN-US">b</span></span></span></span></span></span></span><span><span><span><span><span><span><span>，</span><span lang="EN-US" xml:lang="EN-US">data</span></span></span></span></span></span></span><span><span><span><span><span><span><span>表示点</span><span lang="EN-US" xml:lang="EN-US">a</span></span></span></span></span></span></span><span><span><span><span><span><span><span>到点</span><span lang="EN-US" xml:lang="EN-US">b</span></span></span></span></span></span></span><span><span><span><span><span><span><span>有一条长度为</span><span lang="EN-US" xml:lang="EN-US">data</span></span></span></span></span></span></span><span><span><span><span><span><span><span>的无向边（任意两点间最多只有一条边）。</span></span></span></span></span></span></span></p>
<p><span><span><span><span><span><span><span>接下来</span><span lang="EN-US" xml:lang="EN-US">k</span></span></span></span></span></span></span><span><span><span><span><span><span><span>行，每行为一个<strong>程序</strong>得到的路径方案</span><span lang="EN-US" xml:lang="EN-US">(</span></span></span></span></span></span></span><span><span><span><span><span><span><span>保证路径方案的长度不超过</span><span lang="EN-US" xml:lang="EN-US">2000)</span></span></span></span></span></span></span><span><span><span><span><span><span><span>。</span></span></span></span></span></span></span></p>
<p><span><span><span><span><span><span><span>【输出数据】</span></span></span></span></span></span></span></p>
<p><span><span><span><span><span><span><span>如果所有输出均不合法，输出&#8217;<span lang="EN-US" xml:lang="EN-US">Wrong</span>&#8216;，否则输出一个保留<span lang="EN-US" xml:lang="EN-US">4</span>位小数的实数，表示<span lang="EN-US" xml:lang="EN-US">k</span>个人得出结果中最小的一条合法路径长度。</span></span></span></span></span></span></span></p>
<p><span><span><span><span><span><span><span lang="EN-US" xml:lang="EN-US">Sample</span></span></span></span></span></span></span></p>
<p><span><span><span><span><span><span><span lang="EN-US" xml:lang="EN-US">Compare.in</span></span></span></span></span></span></span></p>
<p><span><span><span><span><span><span><span lang="EN-US" xml:lang="EN-US">3 3 4</span></span></span></span></span></span></span></p>
<p><span><span><span><span><span><span><span lang="EN-US" xml:lang="EN-US">1 2 5.2000</span></span></span></span></span></span></span></p>
<p><span><span><span><span><span><span><span lang="EN-US" xml:lang="EN-US">2 3 3.5000</span></span></span></span></span></span></span></p>
<p><span><span><span><span><span><span><span lang="EN-US" xml:lang="EN-US">3 2 6.0000</span></span></span></span></span></span></span></p>
<p><span><span><span><span><span><span><span lang="EN-US" xml:lang="EN-US">1 2 3 2 3 2 3 2 3 2 3 2 3</span></span></span></span></span></span></span></p>
<p><span><span><span><span><span><span><span lang="EN-US" xml:lang="EN-US">1 2 2 3 3 3</span></span></span></span></span></span></span></p>
<p><span><span><span><span><span><span><span lang="EN-US" xml:lang="EN-US">1 3</span></span></span></span></span></span></span></p>
<p><span><span><span><span><span><span><span lang="EN-US" xml:lang="EN-US">1 3 2 3</span></span></span></span></span></span></span></p>
<p><span><span><span><span><span><span><span lang="EN-US" xml:lang="EN-US">Compare.out</span></span></span></span></span></span></span></p>
<p><span><span><span><span><span><span><span lang="EN-US" xml:lang="EN-US">8.7000</span></span></span></span></span></span></span></p>
<p><span><span><span><span><span><span><span lang="EN-US" xml:lang="EN-US"><span style="color: #ff0000;">Solve:</span></span></span></span></span></span></span></span></p>
<p><span><span><span><span><span><span><span lang="EN-US" xml:lang="EN-US"><span style="color: #ff0000;">我觉得这道题目内容和上一道题的标题很配。</span></span></span></span></span></span></span></span></p>
<p><span><span><span><span><span><span><strong><span>最优序列</span></strong></span></span></span></span></span></span></p>
<p><strong><span lang="EN-US" xml:lang="EN-US">Best</span></strong></p>
<p><strong><span>时间限制：<span lang="EN-US" xml:lang="EN-US">1s</span></span></strong></p>
<p><strong><span>空间限制：<span lang="EN-US" xml:lang="EN-US">128M</span></span></strong></p>
<p><span>【题目背景】</span></p>
<p><span>背景的意义就是没人看得懂</span><span lang="EN-US" xml:lang="EN-US">……</span></p>
<p><span>题目的意义就是没人做得出</span><span lang="EN-US" xml:lang="EN-US">……</span></p>
<p><span>【题目描述】</span></p>
<p><span>给出一个长度为n(n&lt;=1000)</span> <span>的正整数序列，求一个子序列，使得原序列中任意长度为m</span> <span>的子串中被选出的元素不超过</span><span lang="EN-US" xml:lang="EN-US">k(k&lt;=m&lt;=10)</span> <span>个，并且选出的元素之和最大。</span></p>
<p><span>【输入数据】</span></p>
<p><span>第一行三个数</span><span lang="EN-US" xml:lang="EN-US">n,m,k</span> <span>。</span></p>
<p><span>第二行</span><span lang="EN-US" xml:lang="EN-US">n</span> <span>个数，表示各元素数值大小。</span></p>
<p><span>【输出数据】</span></p>
<p><span>一个数，表示最大元素和。</span></p>
<p><span lang="EN-US" xml:lang="EN-US">Sample:</span></p>
<p><span lang="EN-US" xml:lang="EN-US">Best.in</span></p>
<p><span lang="EN-US" xml:lang="EN-US">10 4 2</span></p>
<p><span lang="EN-US" xml:lang="EN-US">7 3 4 8 2 6 5 7 4 8</span></p>
<p><span lang="EN-US" xml:lang="EN-US">Best.out</span></p>
<p><span lang="EN-US" xml:lang="EN-US">36</span></p>
<p><span lang="EN-US" xml:lang="EN-US"><span style="color: #ff0000;">Solve:</span></span></p>
<p><span lang="EN-US" xml:lang="EN-US"><span style="color: #ff0000;">与其说是动规，还不如说是搜索。以一个二进制串表示状态情况，然后考虑第i个取不取时，若第i-m个状态值为0，那么这个i状态值一定为0，否则枚举0,1。冷吧！</span></span></p>



Share and Enjoy:


	<a rel="nofollow"  target="_blank" href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fwww.cnphil.com%2Farchives%2F48&amp;title=%E9%95%BF%E9%83%A1NOIp2008%E5%81%9C%E8%AF%BE%E9%9B%86%E8%AE%AD%E8%AF%95%E9%A2%98%E8%A7%A3%E9%A2%98%E6%8A%A5%E5%91%8A%26%E6%B5%8B%E8%AF%95%E6%95%B0%E6%8D%AE%20-%2010%E6%9C%8828%E6%97%A5&amp;annotation=%E6%B5%8B%E8%AF%95%E6%95%B0%E6%8D%AE%E5%92%8C%E5%AE%8C%E6%95%B4%E8%A7%A3%E9%A2%98%E6%8A%A5%E5%91%8A%E5%9C%A8%E6%AD%A4%E4%B8%8B%E8%BD%BD%EF%BC%9A%20DropBox%20%7C%20Skydrive%0D%0A%0D%0A%E6%AD%A3%E6%96%87%EF%BC%9A%0D%0A%0D%0A10%E6%9C%8828%E6%97%A5_G122_cnPhil_%E7%9A%84%E8%A7%A3%E9%A2%98%E6%8A%A5%E5%91%8A%0D%0A%0D%0A%E5%85%88%E7%9C%8B%E5%93%88%EF%BC%9A%0D%0A%0D%0A%E9%80%89%E6%89%8B%E5%88%97%E8%A1%A8%0D%0A%0D%0A%E7%BC%96%E5%8F%B7%20%E5%A7%93%E5%90%8D%20%E6%80%BB%E5%88%86%0D%0A%0D%0A02.mt%2002.mt%20400.00%0D%0A%0D%0Astandard%20standard%20400.00%0D%0A%0D%0A--%E6%B5%8B%E8%AF%95%E5%99%A8%E4%B8%8A%E4%B8%80%E8" title="Google Bookmarks"><img src="http://www.cnphil.com/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fwww.cnphil.com%2Farchives%2F48&amp;title=%E9%95%BF%E9%83%A1NOIp2008%E5%81%9C%E8%AF%BE%E9%9B%86%E8%AE%AD%E8%AF%95%E9%A2%98%E8%A7%A3%E9%A2%98%E6%8A%A5%E5%91%8A%26%E6%B5%8B%E8%AF%95%E6%95%B0%E6%8D%AE%20-%2010%E6%9C%8828%E6%97%A5&amp;notes=%E6%B5%8B%E8%AF%95%E6%95%B0%E6%8D%AE%E5%92%8C%E5%AE%8C%E6%95%B4%E8%A7%A3%E9%A2%98%E6%8A%A5%E5%91%8A%E5%9C%A8%E6%AD%A4%E4%B8%8B%E8%BD%BD%EF%BC%9A%20DropBox%20%7C%20Skydrive%0D%0A%0D%0A%E6%AD%A3%E6%96%87%EF%BC%9A%0D%0A%0D%0A10%E6%9C%8828%E6%97%A5_G122_cnPhil_%E7%9A%84%E8%A7%A3%E9%A2%98%E6%8A%A5%E5%91%8A%0D%0A%0D%0A%E5%85%88%E7%9C%8B%E5%93%88%EF%BC%9A%0D%0A%0D%0A%E9%80%89%E6%89%8B%E5%88%97%E8%A1%A8%0D%0A%0D%0A%E7%BC%96%E5%8F%B7%20%E5%A7%93%E5%90%8D%20%E6%80%BB%E5%88%86%0D%0A%0D%0A02.mt%2002.mt%20400.00%0D%0A%0D%0Astandard%20standard%20400.00%0D%0A%0D%0A--%E6%B5%8B%E8%AF%95%E5%99%A8%E4%B8%8A%E4%B8%80%E8" title="del.icio.us"><img src="http://www.cnphil.com/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.cnphil.com%2Farchives%2F48&amp;t=%E9%95%BF%E9%83%A1NOIp2008%E5%81%9C%E8%AF%BE%E9%9B%86%E8%AE%AD%E8%AF%95%E9%A2%98%E8%A7%A3%E9%A2%98%E6%8A%A5%E5%91%8A%26%E6%B5%8B%E8%AF%95%E6%95%B0%E6%8D%AE%20-%2010%E6%9C%8828%E6%97%A5" title="Facebook"><img src="http://www.cnphil.com/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.friendfeed.com/share?title=%E9%95%BF%E9%83%A1NOIp2008%E5%81%9C%E8%AF%BE%E9%9B%86%E8%AE%AD%E8%AF%95%E9%A2%98%E8%A7%A3%E9%A2%98%E6%8A%A5%E5%91%8A%26%E6%B5%8B%E8%AF%95%E6%95%B0%E6%8D%AE%20-%2010%E6%9C%8828%E6%97%A5&amp;link=http%3A%2F%2Fwww.cnphil.com%2Farchives%2F48" title="FriendFeed"><img src="http://www.cnphil.com/wp-content/plugins/sociable/images/friendfeed.png" title="FriendFeed" alt="FriendFeed" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://twitter.com/home?status=%E9%95%BF%E9%83%A1NOIp2008%E5%81%9C%E8%AF%BE%E9%9B%86%E8%AE%AD%E8%AF%95%E9%A2%98%E8%A7%A3%E9%A2%98%E6%8A%A5%E5%91%8A%26%E6%B5%8B%E8%AF%95%E6%95%B0%E6%8D%AE%20-%2010%E6%9C%8828%E6%97%A5%20-%20http%3A%2F%2Fwww.cnphil.com%2Farchives%2F48" title="Twitter"><img src="http://www.cnphil.com/wp-content/plugins/sociable/images/twitter.png" title="Twitter" alt="Twitter" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.douban.com/recommend/?url=http%3A%2F%2Fwww.cnphil.com%2Farchives%2F48&title=%E9%95%BF%E9%83%A1NOIp2008%E5%81%9C%E8%AF%BE%E9%9B%86%E8%AE%AD%E8%AF%95%E9%A2%98%E8%A7%A3%E9%A2%98%E6%8A%A5%E5%91%8A%26%E6%B5%8B%E8%AF%95%E6%95%B0%E6%8D%AE%20-%2010%E6%9C%8828%E6%97%A5" title="豆瓣"><img src="http://www.cnphil.com/wp-content/plugins/sociable/images/douban.png" title="豆瓣" alt="豆瓣" class="sociable-hovers" /></a>


<br/><br/><h3  class="related_post_title">Related Posts</h3><ul class="related_post"><li><a href="http://www.cnphil.com/archives/44" title="长郡NOIp2008停课集训测试解题报告 &#8211; 10月27日">长郡NOIp2008停课集训测试解题报告 &#8211; 10月27日</a></li><li><a href="http://www.cnphil.com/archives/177" title="NOIp 2009 解题报告">NOIp 2009 解题报告</a></li><li><a href="http://www.cnphil.com/archives/78" title="CCF 是对的 &mdash; 一个信息学竞赛选手的自白">CCF 是对的 &mdash; 一个信息学竞赛选手的自白</a></li><li><a href="http://www.cnphil.com/archives/20" title="NOIp 模拟测试解题报告（1）">NOIp 模拟测试解题报告（1）</a></li><li><a href="http://www.cnphil.com/archives/15" title="NOIp 2000 提高组解题报告">NOIp 2000 提高组解题报告</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.cnphil.com/archives/48/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>长郡NOIp2008停课集训测试解题报告 &#8211; 10月27日</title>
		<link>http://www.cnphil.com/archives/44</link>
		<comments>http://www.cnphil.com/archives/44#comments</comments>
		<pubDate>Mon, 27 Oct 2008 13:20:18 +0000</pubDate>
		<dc:creator>Phil</dc:creator>
				<category><![CDATA[Informatics]]></category>
		<category><![CDATA[NOIp]]></category>

		<guid isPermaLink="false">http://www.cnphil.com/?p=44</guid>
		<description><![CDATA[呃，今天电脑有点卡。 测试数据和解题报告完整版在这里下载：DropBox, Skydrive 正文： 老师的询问 题目描述： 东汉末年，颖川书院，有一日老夫子给他的学生出了一道问题，书院中有一口清澈见底的池塘（什么都看得见），老夫子要吃鱼，池塘里有很多很多鱼，而池塘是一个n*m的矩形，他希望放置最少的挡板，将池塘分成很多个矩形（包括正方形），使得每个矩形里有且只有一条鱼，而作为老夫子学生的郭嘉很想完成这个任务，所以他把这个任务交给了你，他相信作为长郡中学未来希望的你肯定不差，希望你能很快地解决问题。 例如： 　　n=4，m=3时的一种情况（0表示小方格内无鱼，1表示有鱼）。 0 1 0 0 0 0 1 0 1 0 0 0 　　可以这么分： 0 1 0 0 0 0 &#8212;&#8212; 1&#124;0 1 0&#124;0 0 　　由于池塘边框不需要放置挡板，所以这个分割方案所需的挡板总长度为5。 输入数据： 第一行有两个整数n和m（1≤n,m≤32），描述池塘规模。接下来的n行，每行有m个数字（非“0”即“1”）。每两个数字之间用空格隔开。 输出数据： 对于每组输入数据，输出一行：一个数字，所需挡板的最短总长度。 输入样例： 4 3 0 1 0 0 0 0 1 0 1 0 0 0 输出样例： 5 [...]]]></description>
			<content:encoded><![CDATA[<p>呃，今天电脑有点卡。</p>
<p>测试数据和解题报告完整版在这里下载：<a href="http://dl-client.getdropbox.com/u/99058/cnPhil/OI/081027/20081027_All.rar">DropBox</a>, <a href="http://cid-773a3e6c915e47b9.skydrive.live.com/self.aspx/Public/OI/20081027%7C_All.rar">Skydrive</a></p>
<p>正文：</p>
<div class="Section1">
<h2><span>老师的询问</span><span lang="EN-US"><br />
</span><span>题目描述：</span><span class="tpccontent1"></span></h2>
<p class="MsoNormal"><span class="tpccontent1"><span>东汉末年，颖川书院，有一日老夫子给他的学生出了一道问题，书院中有一口清澈见底的池塘（什么都看得见），老夫子要吃鱼，池塘里有很多很多鱼，而池塘是一个<span lang="EN-US">n*m</span>的矩形，他希望放置最少的挡板，将池塘分成很多个矩形（包括正方形），使得每个矩形里有且只有一条鱼，而作为老夫子学生的郭嘉很想完成这个任务，所以他把这个任务交给了你，他相信作为长郡中学未来希望的你肯定不差，希望你能很快地解决问题。</span></span></p>
<p class="MsoNormal"><span class="tpccontent1"><span>例如：</span></span><span lang="EN-US"><br />
</span><span class="tpccontent1"><span>　　<span lang="EN-US">n=4</span>，<span lang="EN-US">m=3</span>时的一种情况（<span lang="EN-US">0</span>表示小方格内无鱼，<span lang="EN-US">1</span>表示有鱼）。</span></span><span lang="EN-US"><br />
<span class="tpccontent1"><span>0 1 0</span></span><br />
<span class="tpccontent1"><span>0 0 0</span></span><br />
<span class="tpccontent1"><span>1 0 1</span></span><br />
<span class="tpccontent1"><span>0 0 0</span></span><br />
</span><span class="tpccontent1"><span>　　可以这么分：</span></span></p>
<p class="MsoNormal"><span class="tpccontent1"><span lang="EN-US">0 1 0</span></span></p>
<p class="MsoNormal"><span class="tpccontent1"><span lang="EN-US">0 0 0</span></span></p>
<p class="MsoNormal"><span class="tpccontent1"><span lang="EN-US">&#8212;&#8212;</span></span><span lang="EN-US"><br />
<span class="tpccontent1"><span>1|0 1</span></span><br />
<span class="tpccontent1"><span>0|0 0</span></span><br />
</span><span class="tpccontent1"><span>　　由于池塘边框不需要放置挡板，所以这个分割方案所需的挡板总长度为<span lang="EN-US">5</span>。</span></span><span lang="EN-US"><br />
</span><span class="tpccontent1"><span>输入数据：</span></span><span lang="EN-US"><br />
</span><span class="tpccontent1"><span>第一行有两个整数<span lang="EN-US">n</span>和<span lang="EN-US">m</span>（<span lang="EN-US">1</span>≤<span lang="EN-US">n,m</span>≤<span lang="EN-US">32</span>），描述池塘规模。接下来的<span lang="EN-US">n</span>行，每行有<span lang="EN-US">m</span>个数字（非“<span lang="EN-US">0</span>”即“<span lang="EN-US">1</span>”）。每两个数字之间用空格隔开。</span></span></p>
<p><span class="tpccontent1"><span>输出数据：</span></span><span lang="EN-US"><br />
</span><span class="tpccontent1"><span>对于每组输入数据，输出一行：一个数字，所需挡板的最短总长度。</span></span></p>
<p><span class="tpccontent1"><span>输入样例：</span></span><span lang="EN-US"><br />
<span class="tpccontent1"><span>4 3</span></span></span></p>
<p class="MsoNormal"><span class="tpccontent1"><span lang="EN-US">0 1 0</span></span><span lang="EN-US"><br />
0 0 0</span></p>
<p class="MsoNormal"><span class="tpccontent1"><span lang="EN-US">1 0 1</span></span><span lang="EN-US"><br />
<span class="tpccontent1"><span>0 0 0</span></span></span></p>
<p><span class="tpccontent1"></span></p>
<p class="MsoNormal"><span class="tpccontent1"><span>输出样例：</span></span><span lang="EN-US"><br />
<span class="tpccontent1"><span>5</span></span></span></p>
<p class="MsoNormal" align="left"><span class="tpccontent1"><span lang="EN-US"><span style="color: #ff0000;">Solve:</span></span></span></p>
<p class="MsoNormal" align="left"><span class="tpccontent1"><span lang="EN-US"><span><span style="color: #ff0000;">    </span></span></span></span><span class="tpccontent1"><span><span style="color: #ff0000;">这一道题</span><span lang="EN-US"><span style="color: #ff0000;">mt</span></span><span style="color: #ff0000;">大牛说用类</span><span lang="EN-US"><span style="color: #ff0000;">A*</span></span><span style="color: #ff0000;">算法，先广搜（枚举每条鱼的矩形），检验状态重复，然后用貌似很不必要的方法剪枝。</span></span></span></p>
<h2><span class="tpccontent1"><span>袁绍的刁难</span></span></h2>
<p class="MsoNormal" align="left"><span>题目描述：</span></p>
<p class="MsoNormal" align="left"><span>黄巾之乱后，郭嘉到了袁绍的统辖地区，结果袁绍想给我们的郭嘉大大一个下马威，且正值他招募将领的时候，于是乎，袁绍就让郭嘉大大去替他招募将领。<span lang="EN-US"><br />
</span><span class="tpccontent1"><span>　　这时候有很多很多的将领到袁绍处报到（别人家底厚，四世三公哪<span lang="EN-US">~~</span>），每个将领的编号依次为<span lang="EN-US">1</span>、<span lang="EN-US">2</span>、<span lang="EN-US">3</span>……<span lang="EN-US">N</span>，第<span lang="EN-US">i</span>个将领的武力值为<span lang="EN-US">3^(i-1)</span>。</span></span><span lang="EN-US"><br />
</span><span class="tpccontent1"><span>　　袁绍需要我们的郭嘉大大招纳任意个将领，而郭嘉选中的将领有一个“总武力值”为各个将领的武力值之和。例如：郭嘉这一次招募了第一个将领和第三个将领，那么“总武力值”为<span lang="EN-US">1+9=10</span>。</span></span><span lang="EN-US"><br />
</span><span class="tpccontent1"><span>　　袁绍想知道，他可以获得的第<span lang="EN-US">k</span>小的“总武力值”是多少，请你帮助我们的郭嘉大大告诉袁绍这个第<span lang="EN-US">k</span>大的“总武力值”。</span></span><span lang="EN-US"><br />
</span><span class="tpccontent1"><span>　　从文件中读入<span lang="EN-US">k</span>，输出郭嘉能够获得的，第<span lang="EN-US">k</span>大的“总武力值”。</span></span></span></p>
<p><span class="tpccontent1"><span>输入：</span></span><span lang="EN-US"><br />
</span><span class="tpccontent1"><span>　　数据包含<span lang="EN-US">n+1</span>行，第一行读入<span lang="EN-US">n(n</span>≤<span lang="EN-US">100)</span>。以下<span lang="EN-US">n</span>行每行包含一个<span lang="EN-US">k</span>。</span></span></p>
<p><span class="tpccontent1"><span>输出：</span></span><span lang="EN-US"><br />
</span><span class="tpccontent1"><span>　　输出包含<span lang="EN-US">n</span>行，每行输出一个对应的结果。 </span></span></p>
<p><span class="tpccontent1"><span>输入样例：</span></span><span lang="EN-US"><br />
<span class="tpccontent1"><span>1</span></span><br />
<span class="tpccontent1"><span>7</span></span></span></p>
<p><span class="tpccontent1"><span>输出样例：</span></span><span lang="EN-US"><br />
<span class="tpccontent1"><span>13</span></span></span></p>
<p><span class="tpccontent1"><span>样例说明：</span></span><span lang="EN-US"><br />
</span><span class="tpccontent1"><span>　　郭嘉能够拿到的总武力值从小到大为<span lang="EN-US">1</span>、<span lang="EN-US">3</span>、<span lang="EN-US">4</span>、<span lang="EN-US">9</span>、<span lang="EN-US">10</span>、<span lang="EN-US">12</span>、<span lang="EN-US">13</span>……所以第<span lang="EN-US">7</span>小的总武力值是<span lang="EN-US">13</span>。</span></span><span lang="EN-US"><br />
</span><span class="tpccontent1"><span>　　对于<span lang="EN-US">50%</span>的输入文件，有<span lang="EN-US">k</span>≤<span lang="EN-US">5000</span>。</span></span><span lang="EN-US"><br />
</span><span class="tpccontent1"><span>　　对于<span lang="EN-US">100%</span>的输入文件，有<span lang="EN-US">k</span>≤<span lang="EN-US">2^31-1</span>。</span></span><span lang="EN-US"><br />
</span><span lang="EN-US"><span style="color: #ff0000;">Solve:</span></span></p>
<p class="MsoNormal" align="left"><span><span style="color: #ff0000;">这道题是很典型的数学归纳题，类似</span><span lang="EN-US"><span style="color: #ff0000;">NOIp2006</span></span><span style="color: #ff0000;">普及组的第三题，把每一个</span><span lang="EN-US"><span style="color: #ff0000;">k</span></span><span style="color: #ff0000;">请求转成</span><span lang="EN-US"><span style="color: #ff0000;">2</span></span><span style="color: #ff0000;">进制，再把这个二进制数乘以三进制的位权（</span><span lang="EN-US"><span style="color: #ff0000;">101=&gt;1*3^2+0*3^1+1*3^0</span></span><span style="color: #ff0000;">），这样就是结果。这是应用排列组合的方法。自己多模拟模拟就可以发现规律。</span></span></p>
<h2><span>游历的路线</span></h2>
<p class="MsoNormal" align="left"><span>题目描述：</span></p>
<p class="MsoNormal"><span lang="EN-US"><span>    </span></span><span>我们的郭嘉大大经过一段时间发现了袁绍这个人干大事而惜身，见小利而忘义，又逢曹操在招兵买马，决定逃离袁绍去投曹操，而我们的曹操在第<span lang="EN-US">M</span>天招募良材，我们的郭嘉大大既不能早去，也不能晚去，于是乎，他就趁着这一段时间到其他的城市游历一番，而每两个城市之间只能坐马车来往，由于我们的郭嘉大大很贪钱，他想用最少的费用，所以需要我们帮他求出这一个最小的费用。</span></p>
<p class="MsoNormal" align="left"><span>输入：</span></p>
<p class="MsoNormal"><span>第一行包含两个数<span lang="EN-US">n</span>，<span lang="EN-US">m</span>， 表示有<span lang="EN-US">n</span>个城市，和<span lang="EN-US">m</span>天后曹操招纳良材。城市一就是郭嘉所在的城市，城市<span lang="EN-US">n</span>就是曹操处。接下来<span lang="EN-US">n * (n – 1)</span>行描述马车乘坐表。第<span lang="EN-US">2</span>到第<span lang="EN-US">n</span>行就是描述的城市<span lang="EN-US">1</span>到<span lang="EN-US">2… n</span>的马车乘坐表，第<span lang="EN-US">n + 1</span>到第<span lang="EN-US">2n-1</span>行描述的城市<span lang="EN-US">2</span>到城市<span lang="EN-US">1</span>，<span lang="EN-US">3..n</span>的马车乘坐表<span lang="EN-US">… … </span>对每一行，首先有一个数<span lang="EN-US">T</span>，表示城市<span lang="EN-US">I</span>到城市<span lang="EN-US">J</span>的马车以<span lang="EN-US">T</span>为周期，接下来有<span lang="EN-US">T</span>个数，表示每天的马车的价格，如果价格为<span lang="EN-US">0</span>则表示没有马车可坐。</span></p>
<p class="MsoNormal" align="left"><span>（<span lang="EN-US">n &lt;= 100,<span>  </span>m &lt;= 200,<span>  </span>T &lt;= 20</span>，<span lang="EN-US"> Price &lt;= 50000</span>）<span lang="EN-US"><br />
</span></span><span>输出</span><span lang="EN-US">:</span></p>
<p class="MsoNormal"><span>如果存在这样的路线使郭嘉第<span lang="EN-US">m</span>天到达曹操处，则输出最少的费用，否则输出<span lang="EN-US">0</span>！</span></p>
<p class="MsoNormal"><span>输入</span><span class="tpccontent1"><span>样例：</span></span><span lang="EN-US"><span>                             </span></span></p>
<p class="MsoNormal"><span lang="EN-US">3 5<span>                                       </span></span></p>
<p class="MsoNormal"><span lang="EN-US">2 130 150</span></p>
<p class="MsoNormal"><span lang="EN-US">3 75 0 80</span></p>
<p class="MsoNormal"><span lang="EN-US">2 110 100</span></p>
<p class="MsoNormal"><span lang="EN-US">4 60 70 60 50</span></p>
<p class="MsoNormal"><span lang="EN-US">3 0 135 140</span></p>
<p class="MsoNormal"><span lang="EN-US">2 70 80</span></p>
<p class="MsoNormal"><span>输出</span><span class="tpccontent1"><span>样例：</span></span></p>
<p class="MsoNormal"><span lang="EN-US">355</span></p>
<p class="MsoNormal"><span lang="EN-US"><span style="color: #ff0000;">Solve:</span></span></p>
<p class="MsoNormal"><span lang="EN-US"><span><span style="color: #ff0000;">    </span></span></span><span><span style="color: #ff0000;">设</span><span lang="EN-US"><span style="color: #ff0000;">F[i,j]</span></span><span style="color: #ff0000;">表示第</span><span lang="EN-US"><span style="color: #ff0000;">i</span></span><span style="color: #ff0000;">天到第</span><span lang="EN-US"><span style="color: #ff0000;">j</span></span><span style="color: #ff0000;">个城市的最小花费，</span><span lang="EN-US"></span></span></p>
<p class="MsoNormal"><span lang="EN-US"><span><span style="color: #ff0000;">    </span></span></span><span><span style="color: #ff0000;">则有：</span><span lang="EN-US"><span style="color: #ff0000;">F[i,j]=Min{F[i-1,k]+Effort(i-1,k,j)}</span><span><span style="color: #ff0000;">  </span></span><span style="color: #ff0000;">1&lt;=k&lt;=n</span></span></span></p>
<p class="MsoNormal"><span lang="EN-US"><span><span style="color: #ff0000;">    </span></span><span style="color: #ff0000;">F[n,m]</span></span><span><span style="color: #ff0000;">即为所求。</span></span></p>
<h2><span>消息的传递</span></h2>
<p class="MsoNormal" align="left"><span>题目描述：</span></p>
<p class="MsoNormal"><span>我们的郭嘉大大在曹操这过得逍遥自在，但是有一天曹操给了他一个任务，在建邺城内有<span lang="EN-US">N</span>（<span lang="EN-US">&lt;=1000</span>）个袁绍的奸细，将他们从<span lang="EN-US">1</span>到<span lang="EN-US">N</span>进行编号，同时他们之间存在一种传递关系，即若<span lang="EN-US">C[i</span>，<span lang="EN-US">j]=1</span>，则奸细<span lang="EN-US">i</span>能将消息直接传递给奸细<span lang="EN-US">j</span>。</span></p>
<p class="MsoNormal"><span>现在曹操要发布一个假消息，需要传达给所有奸细，而我们的郭嘉大大则需要传递给尽量少的奸细使所有的奸细都知道这一个消息，问我们至少要传给几个奸细</span></p>
<p class="MsoNormal" align="left"><span>输入：</span></p>
<p class="MsoNormal"><span lang="EN-US"><span>    </span></span><span>文件的第一行为<span lang="EN-US">N</span>，第二行至第<span lang="EN-US">N+1</span>行为<span lang="EN-US">N*N</span>的矩阵（若第<span lang="EN-US">I</span>行第<span lang="EN-US">J</span>列为<span lang="EN-US">1</span>，则奸细<span lang="EN-US">I</span>能将消息直接传递给奸细<span lang="EN-US">J</span>，若第<span lang="EN-US">I</span>行第<span lang="EN-US">J</span>列为<span lang="EN-US">0</span>，则奸细<span lang="EN-US">I</span>不能将消息直接传递给奸细<span lang="EN-US">J</span>）。</span></p>
<p class="MsoNormal" align="left"><span>输出</span><span lang="EN-US">:</span></p>
<p class="MsoNormal"><span lang="EN-US"><span>    </span></span><span>输出文件只有一行：即我们的郭嘉大大首先至少要传递的奸细个数。</span></p>
<p class="MsoNormal"><span lang="EN-US"> </span></p>
<p class="MsoNormal"><span>输入</span><span class="tpccontent1"><span>样例：</span></span><span lang="EN-US"><span>                             </span></span></p>
<p class="MsoNormal"><span lang="EN-US">8</span></p>
<p class="MsoNormal"><span lang="EN-US">0 0 1 0 0 0 0 0<span> </span></span></p>
<p class="MsoNormal"><span lang="EN-US">1 0 0 1 0 0 0 0<span> </span></span></p>
<p class="MsoNormal"><span lang="EN-US">0 1 0 1 1 0 0 0<span> </span></span></p>
<p class="MsoNormal"><span lang="EN-US">0 0 0 0 0 1 0 0<span> </span></span></p>
<p class="MsoNormal"><span lang="EN-US">0 0 0 1 0 0 0 0<span> </span></span></p>
<p class="MsoNormal"><span lang="EN-US">0 0 0 1 0 0 0 0<span> </span></span></p>
<p class="MsoNormal"><span lang="EN-US">0 0 0 1 0 0 0 1</span></p>
<p class="MsoNormal"><span lang="EN-US">0 0 0 0 0 0 1 0</span></p>
<p class="MsoNormal"><span>输出</span><span class="tpccontent1"><span>样例：</span></span></p>
<p class="MsoNormal"><span lang="EN-US">2</span></p>
<p class="MsoNormal"><span lang="EN-US"><span style="color: #ff0000;">Solve:</span></span></p>
<p class="MsoNormal"><span lang="EN-US"><span><span style="color: #ff0000;">    </span></span></span><span><span style="color: #ff0000;">很经典的图论题目哦。</span><span lang="EN-US"></span></span></p>
<p class="MsoNormal"><span lang="EN-US"><span><span style="color: #ff0000;">    </span></span></span><span><span style="color: #ff0000;">首先，求出图中所有</span><strong><span style="color: #ff0000;">强连通分量</span><span lang="EN-US"><span style="color: #ff0000;">(Strongly Connected Component, SCC)</span></span></strong><span style="color: #ff0000;">，然后把每个强连通分量缩为一个“点</span><span lang="EN-US"><span style="color: #ff0000;">”</span></span><span style="color: #ff0000;">，此时原图就变成了一个标准的拓扑图。入度为</span><span lang="EN-US"><span style="color: #ff0000;">0</span></span><span style="color: #ff0000;">的“点”即为所求。</span><strong><span lang="EN-US"></span></strong></span></p>
<p class="MsoNormal"><span lang="EN-US"><span><span style="color: #ff0000;">    </span></span></span><span><span style="color: #ff0000;">强连通分量的求法：（这里给出刘铮同学的求出一个点所在的强连通分量的过程）</span><span lang="EN-US"></span></span></p>
<p class="MsoNormal"><strong><span lang="EN-US">procedure zuo(r:longint);</span></strong></p>
<p class="MsoNormal"><strong><span lang="EN-US">var</span></strong></p>
<p class="MsoNormal"><strong><span lang="EN-US"><span>  </span>i,j,q:longint;</span></strong></p>
<p class="MsoNormal"><strong><span lang="EN-US">begin</span></strong></p>
<p class="MsoNormal"><strong><span lang="EN-US"><span>  </span>inc(p);<span>  </span>//</span></strong><strong><span>建栈</span></strong><strong></strong></p>
<p class="MsoNormal"><strong><span lang="EN-US"><span>  </span>b[p]:=r;//r</span></strong><strong><span>点入栈</span></strong><strong></strong></p>
<p class="MsoNormal"><strong><span lang="EN-US"><span>  </span>a[r]:=p;//r</span></strong><strong><span>点在栈中的位置</span></strong><strong></strong></p>
<p class="MsoNormal"><strong><span lang="EN-US"><span>  </span>c[r]:=p;//r</span></strong><strong><span>点能连出的最前的点，初值为自己。（</span></strong><strong><span lang="EN-US">link</span></strong><strong><span>）</span></strong><strong></strong></p>
<p class="MsoNormal"><strong><span lang="EN-US"><span>  </span>i:=v3[r];//</span></strong><strong><span>选边集数组中</span></strong><strong><span lang="EN-US">r</span></strong><strong><span>出的一条边。</span></strong><strong></strong></p>
<p class="MsoNormal"><strong><span lang="EN-US"><span>  </span>while i&lt;&gt;0 do begin</span></strong></p>
<p class="MsoNormal"><strong><span lang="EN-US"><span>    </span>j:=v1[i];//</span></strong><strong><span>得到当前边的目标结点</span></strong><strong></strong></p>
<p class="MsoNormal"><strong><span lang="EN-US"><span>    </span>if(d[j]=0)then begin//</span></strong><strong><span>如果</span></strong><strong><span lang="EN-US">j</span></strong><strong><span>点当前不属于任何强连通分量</span></strong><strong></strong></p>
<p class="MsoNormal"><strong><span lang="EN-US"><span>      </span>if a[j]=0 then zuo(j);//</span></strong><strong><span>并且</span></strong><strong><span lang="EN-US">j</span></strong><strong><span>没有进栈，则求</span></strong><strong><span lang="EN-US">j</span></strong><strong><span>的强连通分量</span></strong><strong></strong></p>
<p class="MsoNormal"><strong><span lang="EN-US"><span>      </span>if(c[j]&lt;c[r])and(a[j]&lt;&gt;0) then c[r]:=c[j];//</span></strong><strong><span>若</span></strong><strong><span lang="EN-US">j</span></strong><strong><span>的</span></strong><strong><span lang="EN-US">link</span></strong><strong><span>值在</span></strong><strong><span lang="EN-US">r</span></strong><strong><span>之前，且</span></strong><strong><span lang="EN-US">j</span></strong><strong><span>未出栈，则更新</span></strong><strong><span lang="EN-US">link</span></strong><strong><span>值</span></strong><strong></strong></p>
<p class="MsoNormal"><strong><span lang="EN-US"><span>    </span>end;</span></strong></p>
<p class="MsoNormal"><strong><span lang="EN-US"><span>    </span>i:=v2[i];//</span></strong><strong><span>下一条</span></strong><strong><span lang="EN-US">r</span></strong><strong><span>出的边</span></strong><strong></strong></p>
<p class="MsoNormal"><strong><span lang="EN-US"><span>  </span>end;</span></strong></p>
<p class="MsoNormal"><strong><span lang="EN-US"><span>  </span>if c[r]=a[r] then begin//</span></strong><strong><span>若</span></strong><strong><span lang="EN-US">r</span></strong><strong><span>不能连到前面，则</span></strong><strong><span lang="EN-US">r</span></strong><strong><span>和</span></strong><strong><span lang="EN-US">r</span></strong><strong><span>栈以后的点全部出栈。</span></strong><strong></strong></p>
<p class="MsoNormal"><strong><span lang="EN-US"><span>      </span>q:=a[r];</span></strong></p>
<p class="MsoNormal"><strong><span lang="EN-US"><span>      </span>for i:=a[r] to p do begin</span></strong></p>
<p class="MsoNormal"><strong><span lang="EN-US"><span>        </span>d[b[i]]:=r;</span></strong></p>
<p class="MsoNormal"><strong><span lang="EN-US"><span>        </span>a[b[i]]:=0;</span></strong></p>
<p class="MsoNormal"><strong><span lang="EN-US"><span>        </span>c[b[i]]:=0;</span></strong></p>
<p class="MsoNormal"><strong><span lang="EN-US"><span>      </span>end;</span></strong></p>
<p class="MsoNormal"><strong><span lang="EN-US"><span>      </span>p:=q-1;</span></strong></p>
<p class="MsoNormal"><strong><span lang="EN-US"><span>  </span>end;</span></strong></p>
<p class="MsoNormal"><strong><span lang="EN-US">end;</span></strong></p>
</div>



Share and Enjoy:


	<a rel="nofollow"  target="_blank" href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fwww.cnphil.com%2Farchives%2F44&amp;title=%E9%95%BF%E9%83%A1NOIp2008%E5%81%9C%E8%AF%BE%E9%9B%86%E8%AE%AD%E6%B5%8B%E8%AF%95%E8%A7%A3%E9%A2%98%E6%8A%A5%E5%91%8A%20-%2010%E6%9C%8827%E6%97%A5&amp;annotation=%E5%91%83%EF%BC%8C%E4%BB%8A%E5%A4%A9%E7%94%B5%E8%84%91%E6%9C%89%E7%82%B9%E5%8D%A1%E3%80%82%0D%0A%0D%0A%E6%B5%8B%E8%AF%95%E6%95%B0%E6%8D%AE%E5%92%8C%E8%A7%A3%E9%A2%98%E6%8A%A5%E5%91%8A%E5%AE%8C%E6%95%B4%E7%89%88%E5%9C%A8%E8%BF%99%E9%87%8C%E4%B8%8B%E8%BD%BD%EF%BC%9ADropBox%2C%20Skydrive%0D%0A%0D%0A%E6%AD%A3%E6%96%87%EF%BC%9A%0D%0A%0D%0A%E8%80%81%E5%B8%88%E7%9A%84%E8%AF%A2%E9%97%AE%0D%0A%E9%A2%98%E7%9B%AE%E6%8F%8F%E8%BF%B0%EF%BC%9A%0D%0A%E4%B8%9C%E6%B1%89%E6%9C%AB%E5%B9%B4%EF%BC%8C%E9%A2%96%E5%B7%9D%E4%B9%A6%E9%99%A2%EF%BC%8C%E6%9C%89%E4%B8%80%E6%97%A5%E8%80%81%E5%A4%AB%E5%AD%90%E7%BB%99%E4%BB%96%E7%9A%84%E5%AD%A6%E7%94%9F%E5%87%BA%E4%BA%86%E4%B8%80%E9%81%93%E9%97%AE%E9%A2%98%EF%BC%8C%E4%B9%A6%E9%99%A2%E4%B8%AD%E6" title="Google Bookmarks"><img src="http://www.cnphil.com/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fwww.cnphil.com%2Farchives%2F44&amp;title=%E9%95%BF%E9%83%A1NOIp2008%E5%81%9C%E8%AF%BE%E9%9B%86%E8%AE%AD%E6%B5%8B%E8%AF%95%E8%A7%A3%E9%A2%98%E6%8A%A5%E5%91%8A%20-%2010%E6%9C%8827%E6%97%A5&amp;notes=%E5%91%83%EF%BC%8C%E4%BB%8A%E5%A4%A9%E7%94%B5%E8%84%91%E6%9C%89%E7%82%B9%E5%8D%A1%E3%80%82%0D%0A%0D%0A%E6%B5%8B%E8%AF%95%E6%95%B0%E6%8D%AE%E5%92%8C%E8%A7%A3%E9%A2%98%E6%8A%A5%E5%91%8A%E5%AE%8C%E6%95%B4%E7%89%88%E5%9C%A8%E8%BF%99%E9%87%8C%E4%B8%8B%E8%BD%BD%EF%BC%9ADropBox%2C%20Skydrive%0D%0A%0D%0A%E6%AD%A3%E6%96%87%EF%BC%9A%0D%0A%0D%0A%E8%80%81%E5%B8%88%E7%9A%84%E8%AF%A2%E9%97%AE%0D%0A%E9%A2%98%E7%9B%AE%E6%8F%8F%E8%BF%B0%EF%BC%9A%0D%0A%E4%B8%9C%E6%B1%89%E6%9C%AB%E5%B9%B4%EF%BC%8C%E9%A2%96%E5%B7%9D%E4%B9%A6%E9%99%A2%EF%BC%8C%E6%9C%89%E4%B8%80%E6%97%A5%E8%80%81%E5%A4%AB%E5%AD%90%E7%BB%99%E4%BB%96%E7%9A%84%E5%AD%A6%E7%94%9F%E5%87%BA%E4%BA%86%E4%B8%80%E9%81%93%E9%97%AE%E9%A2%98%EF%BC%8C%E4%B9%A6%E9%99%A2%E4%B8%AD%E6" title="del.icio.us"><img src="http://www.cnphil.com/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.cnphil.com%2Farchives%2F44&amp;t=%E9%95%BF%E9%83%A1NOIp2008%E5%81%9C%E8%AF%BE%E9%9B%86%E8%AE%AD%E6%B5%8B%E8%AF%95%E8%A7%A3%E9%A2%98%E6%8A%A5%E5%91%8A%20-%2010%E6%9C%8827%E6%97%A5" title="Facebook"><img src="http://www.cnphil.com/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.friendfeed.com/share?title=%E9%95%BF%E9%83%A1NOIp2008%E5%81%9C%E8%AF%BE%E9%9B%86%E8%AE%AD%E6%B5%8B%E8%AF%95%E8%A7%A3%E9%A2%98%E6%8A%A5%E5%91%8A%20-%2010%E6%9C%8827%E6%97%A5&amp;link=http%3A%2F%2Fwww.cnphil.com%2Farchives%2F44" title="FriendFeed"><img src="http://www.cnphil.com/wp-content/plugins/sociable/images/friendfeed.png" title="FriendFeed" alt="FriendFeed" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://twitter.com/home?status=%E9%95%BF%E9%83%A1NOIp2008%E5%81%9C%E8%AF%BE%E9%9B%86%E8%AE%AD%E6%B5%8B%E8%AF%95%E8%A7%A3%E9%A2%98%E6%8A%A5%E5%91%8A%20-%2010%E6%9C%8827%E6%97%A5%20-%20http%3A%2F%2Fwww.cnphil.com%2Farchives%2F44" title="Twitter"><img src="http://www.cnphil.com/wp-content/plugins/sociable/images/twitter.png" title="Twitter" alt="Twitter" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.douban.com/recommend/?url=http%3A%2F%2Fwww.cnphil.com%2Farchives%2F44&title=%E9%95%BF%E9%83%A1NOIp2008%E5%81%9C%E8%AF%BE%E9%9B%86%E8%AE%AD%E6%B5%8B%E8%AF%95%E8%A7%A3%E9%A2%98%E6%8A%A5%E5%91%8A%20-%2010%E6%9C%8827%E6%97%A5" title="豆瓣"><img src="http://www.cnphil.com/wp-content/plugins/sociable/images/douban.png" title="豆瓣" alt="豆瓣" class="sociable-hovers" /></a>


<br/><br/><h3  class="related_post_title">Related Posts</h3><ul class="related_post"><li><a href="http://www.cnphil.com/archives/48" title="长郡NOIp2008停课集训试题解题报告&#038;测试数据 &#8211; 10月28日">长郡NOIp2008停课集训试题解题报告&#038;测试数据 &#8211; 10月28日</a></li><li><a href="http://www.cnphil.com/archives/177" title="NOIp 2009 解题报告">NOIp 2009 解题报告</a></li><li><a href="http://www.cnphil.com/archives/78" title="CCF 是对的 &mdash; 一个信息学竞赛选手的自白">CCF 是对的 &mdash; 一个信息学竞赛选手的自白</a></li><li><a href="http://www.cnphil.com/archives/20" title="NOIp 模拟测试解题报告（1）">NOIp 模拟测试解题报告（1）</a></li><li><a href="http://www.cnphil.com/archives/15" title="NOIp 2000 提高组解题报告">NOIp 2000 提高组解题报告</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.cnphil.com/archives/44/feed</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
	</channel>
</rss>

