<?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 &#187; HNOI</title>
	<atom:link href="http://www.cnphil.com/archives/tag/hnoi/feed" rel="self" type="application/rss+xml" />
	<link>http://www.cnphil.com</link>
	<description>In Pursuit of Excellence</description>
	<lastBuildDate>Fri, 09 Jul 2010 06:17:15 +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>HNOI 2010 解题报告</title>
		<link>http://www.cnphil.com/archives/270</link>
		<comments>http://www.cnphil.com/archives/270#comments</comments>
		<pubDate>Mon, 05 Jul 2010 08:29:33 +0000</pubDate>
		<dc:creator>Phil</dc:creator>
				<category><![CDATA[Informatics]]></category>
		<category><![CDATA[HNOI]]></category>
		<category><![CDATA[NOI]]></category>

		<guid isPermaLink="false">http://www.cnphil.com/?p=270</guid>
		<description><![CDATA[由于题目的版权问题, 这里并不会出现题目描述, 请通过其他渠道获取题目描述. 合唱队 Chorus 很容易的区间DP, 设 分别表示当前状态为区间 , 最后一个放的元素在区间的左侧和右侧的方案数. 时间复杂度 . 平面图判定 Planar 判定存在 Hamilton 回路的平面图, 实际上就是判定能否把区间(边)分成两个集合, 使得每个集合内的元素互不相交(但可以严格包含). 这道题其实是有 的解法的, 但是这道题的点数过少, 也有很方便的解法. 根据欧拉定理, 平面图的边数 和点数 满足 . 那我们可以把边数的规模降低, 然后可以用 的染色解决此题. 物品调度 Fsk 假设我们已经知道了终止状态, 如何求得最小步数呢. 我们可以用 的时间求出这个置换的每个循环. 对于每个长度大于1的循环, 若其中含有0元素, 那么最少需 步, 否则需要 步. 现在的问题是如何求出终止状态, 观察题意发现, 每个元素的终止状态是放在 之后第一个非空的模 剩余系中, 并且放在这个模 剩余系中当前位置的下一个可行位置, 因此我们可以用链表/平衡树维护每个模 剩余系的情况以及每个模 剩余系内部的情况. 可以做到 的复杂度. [...]]]></description>
			<content:encoded><![CDATA[<p>由于题目的版权问题, 这里并不会出现题目描述, 请通过其他渠道获取题目描述.</p>
<h3>合唱队 Chorus</h3>
<p>很容易的区间DP, 设 <img src="http://www.cnphil.com/wp-content/cache/tex_98134f615641ebfd0bd86ca3c668d1bf.png" align="absmiddle" class="tex" alt="F_{i, j}, G_{i, j}" /> 分别表示当前状态为区间 <img src="http://www.cnphil.com/wp-content/cache/tex_3674a78404758341a58c373fc8c51e3b.png" align="absmiddle" class="tex" alt="[i, j]" />, 最后一个放的元素在区间的左侧和右侧的方案数. 时间复杂度 <img src="http://www.cnphil.com/wp-content/cache/tex_9f84a66d88d24c3b1bc91df5b5346a13.png" align="absmiddle" class="tex" alt="O(n^2)" /> .</p>
<h3>平面图判定 Planar</h3>
<p>判定存在 Hamilton 回路的平面图, 实际上就是判定能否把区间(边)分成两个集合, 使得每个集合内的元素互不相交(但可以严格包含).</p>
<p>这道题其实是有 <img src="http://www.cnphil.com/wp-content/cache/tex_d344075a2c690847a757434e9e7fa128.png" align="absmiddle" class="tex" alt="O(nlogn)" /> 的解法的, 但是这道题的点数过少, 也有很方便的解法. 根据欧拉定理, 平面图的边数 <img src="http://www.cnphil.com/wp-content/cache/tex_5a77ee935e0e92da10ac46b3e8fa3273.png" align="absmiddle" class="tex" alt="|e|" /> 和点数 <img src="http://www.cnphil.com/wp-content/cache/tex_7b6d1dcc41e92c04a62cda4a1c98837c.png" align="absmiddle" class="tex" alt="|v|" /> 满足 <img src="http://www.cnphil.com/wp-content/cache/tex_6339930bf3daa952909b37a4a7a61fd1.png" align="absmiddle" class="tex" alt="|e| \leq 3|v| - 6" />. 那我们可以把边数的规模降低, 然后可以用 <img src="http://www.cnphil.com/wp-content/cache/tex_9f84a66d88d24c3b1bc91df5b5346a13.png" align="absmiddle" class="tex" alt="O(n^2)" /> 的染色解决此题.</p>
<h3>物品调度 Fsk</h3>
<p>假设我们已经知道了终止状态, 如何求得最小步数呢. 我们可以用 <img src="http://www.cnphil.com/wp-content/cache/tex_7ba55e7c64a9405a0b39a1107e90ca94.png" align="absmiddle" class="tex" alt="O(n)" /> 的时间求出这个置换的每个循环. 对于每个长度大于1的循环, 若其中含有0元素, 那么最少需 <img src="http://www.cnphil.com/wp-content/cache/tex_67859e2bac0f41b9f4817fdbce559333.png" align="absmiddle" class="tex" alt="length - 1" /> 步, 否则需要 <img src="http://www.cnphil.com/wp-content/cache/tex_be333cd642b4c852dd922ae96ecd80c7.png" align="absmiddle" class="tex" alt="length + 1" /> 步.</p>
<p>现在的问题是如何求出终止状态, 观察题意发现, 每个元素的终止状态是放在 <img src="http://www.cnphil.com/wp-content/cache/tex_550e68a03e5684a67a35c39c57808c84.png" align="absmiddle" class="tex" alt=" C_i~mod~gcd(n, d)" /> 之后第一个非空的模 <img src="http://www.cnphil.com/wp-content/cache/tex_686c584776b1babbd63d1191ef94723d.png" align="absmiddle" class="tex" alt="gcd(n, d)" /> 剩余系中, 并且放在这个模 <img src="http://www.cnphil.com/wp-content/cache/tex_686c584776b1babbd63d1191ef94723d.png" align="absmiddle" class="tex" alt="gcd(n, d)" /> 剩余系中当前位置的下一个可行位置, 因此我们可以用链表/平衡树维护每个模 <img src="http://www.cnphil.com/wp-content/cache/tex_686c584776b1babbd63d1191ef94723d.png" align="absmiddle" class="tex" alt="gcd(n, d)" /> 剩余系的情况以及每个模 <img src="http://www.cnphil.com/wp-content/cache/tex_686c584776b1babbd63d1191ef94723d.png" align="absmiddle" class="tex" alt="gcd(n, d)" /> 剩余系内部的情况. 可以做到 <img src="http://www.cnphil.com/wp-content/cache/tex_38f1579266c3a62f192f91449e149fba.png" align="absmiddle" class="tex" alt="O(n) " /> 的复杂度.</p>
<h3>公交线路 Bus</h3>
<p>我们可以用每辆车到一个点的距离集合来表示一个状态, 由于不能有空位以及车之间没有区别, 实际状态集合的最多只有 <img src="http://www.cnphil.com/wp-content/cache/tex_69fe3a935642bb20591053f85c28932a.png" align="absmiddle" class="tex" alt="C(9, 5) = 126 " /> 个之少.</p>
<p>我们可以用矩阵乘法来优化转移, 复杂度最多为 <img src="http://www.cnphil.com/wp-content/cache/tex_9a85dade61634d3c47e8f6cef75a9eb3.png" align="absmiddle" class="tex" alt="O(126^3 * logn)" />.</p>
<h3>取石子游戏 Stone</h3>
<p>解法未知.</p>
<h3>城市建设 City</h3>
<p>解法未知.</p>
<h3>弹飞绵羊 Bounce</h3>
<p>首先这道题只能往后跳, 所以我们用块状链表维护每个点在块内和块外的情况即可用<img src="http://www.cnphil.com/wp-content/cache/tex_c07a405260ac28c5c9d6897b8561f9fb.png" align="absmiddle" class="tex" alt="O(n\sqrt{n})" /> 的时间解决此题.</p>
<p>正解之一是利用括号序列, 每次操作都是把一棵子树砍下并且接在某个结点上, 那么我们可以维护括号序列整段移动来完成这个操作. 同时为了回答询问我们需要知道每个左括号的左边有几个未匹配的左括号, Splay 可以维护这个值, 时间复杂度 <img src="http://www.cnphil.com/wp-content/cache/tex_d344075a2c690847a757434e9e7fa128.png" align="absmiddle" class="tex" alt="O(nlogn)" />.</p>
<h3>矩阵 Matrix</h3>
<p>设给定的矩阵是 <img src="http://www.cnphil.com/wp-content/cache/tex_9d5ed678fe57bcca610140957afab571.png" align="absmiddle" class="tex" alt="B" />, 原矩阵是 <img src="http://www.cnphil.com/wp-content/cache/tex_7fc56270e7a70fa81a5935b72eacbe29.png" align="absmiddle" class="tex" alt="A" />, 另设 <img src="http://www.cnphil.com/wp-content/cache/tex_0d61f8370cad1d412f80b84d143e1257.png" align="absmiddle" class="tex" alt="C" /> 矩阵, 其中:</p>
<p><img src="http://www.cnphil.com/wp-content/cache/tex_0d61f8370cad1d412f80b84d143e1257.png" align="absmiddle" class="tex" alt="C" /> 的第一行和第一列均是0, 且 <img src="http://www.cnphil.com/wp-content/cache/tex_c5363ec386e47df40f98f6f073578270.png" align="absmiddle" class="tex" alt="C_{i, j}=B_{i, j} - C_{i - 1, j} - C_{i, j - 1} - C_{i - 1, j - 1}" />.</p>
<p>同时满足 <img src="http://www.cnphil.com/wp-content/cache/tex_69979c45bc7f3b250d1c96209538812a.png" align="absmiddle" class="tex" alt=" A_{i, j} = C_{i, j} + (-1) ^ {i - 1} A_{1, j} + (-1) ^ {j - 1} A_{i, 1} + (-1) ^ {i + j - 1} A_{1, 1}" />. 证明在<a href="http://hi.baidu.com/winterlegend/blog/item/405177946be530017af48064.html">此</a>(外链打开请谨慎).</p>
<p>那么我们搜索 <img src="http://www.cnphil.com/wp-content/cache/tex_7fc56270e7a70fa81a5935b72eacbe29.png" align="absmiddle" class="tex" alt="A" /> 的第一行, 在枚举 <img src="http://www.cnphil.com/wp-content/cache/tex_b25ae89ecf5f3c6af6cdce9e4ddad000.png" align="absmiddle" class="tex" alt="A_{1, j}" /> 时检查第 <img src="http://www.cnphil.com/wp-content/cache/tex_363b122c528f54df4a0446b6bab05515.png" align="absmiddle" class="tex" alt="j" /> 列并更新第一列的可行集合来剪枝. 这样就可以通过这道题了.</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%2F270&amp;title=HNOI%202010%20%E8%A7%A3%E9%A2%98%E6%8A%A5%E5%91%8A&amp;annotation=%E7%94%B1%E4%BA%8E%E9%A2%98%E7%9B%AE%E7%9A%84%E7%89%88%E6%9D%83%E9%97%AE%E9%A2%98%2C%20%E8%BF%99%E9%87%8C%E5%B9%B6%E4%B8%8D%E4%BC%9A%E5%87%BA%E7%8E%B0%E9%A2%98%E7%9B%AE%E6%8F%8F%E8%BF%B0%2C%20%E8%AF%B7%E9%80%9A%E8%BF%87%E5%85%B6%E4%BB%96%E6%B8%A0%E9%81%93%E8%8E%B7%E5%8F%96%E9%A2%98%E7%9B%AE%E6%8F%8F%E8%BF%B0.%0D%0A%E5%90%88%E5%94%B1%E9%98%9F%20Chorus%0D%0A%E5%BE%88%E5%AE%B9%E6%98%93%E7%9A%84%E5%8C%BA%E9%97%B4DP%2C%20%E8%AE%BE%20%24%24F_%7Bi%2C%20j%7D%2C%20G_%7Bi%2C%20j%7D%24%24%20%E5%88%86%E5%88%AB%E8%A1%A8%E7%A4%BA%E5%BD%93%E5%89%8D%E7%8A%B6%E6%80%81%E4%B8%BA%E5%8C%BA%E9%97%B4%20%24%24%5Bi%2C%20j%5D%24%24%2C%20%E6%9C%80%E5%90%8E%E4%B8%80%E4%B8%AA%E6%94%BE%E7%9A%84%E5%85%83%E7%B4%A0%E5%9C%A8%E5%8C%BA%E9" 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%2F270&amp;title=HNOI%202010%20%E8%A7%A3%E9%A2%98%E6%8A%A5%E5%91%8A&amp;notes=%E7%94%B1%E4%BA%8E%E9%A2%98%E7%9B%AE%E7%9A%84%E7%89%88%E6%9D%83%E9%97%AE%E9%A2%98%2C%20%E8%BF%99%E9%87%8C%E5%B9%B6%E4%B8%8D%E4%BC%9A%E5%87%BA%E7%8E%B0%E9%A2%98%E7%9B%AE%E6%8F%8F%E8%BF%B0%2C%20%E8%AF%B7%E9%80%9A%E8%BF%87%E5%85%B6%E4%BB%96%E6%B8%A0%E9%81%93%E8%8E%B7%E5%8F%96%E9%A2%98%E7%9B%AE%E6%8F%8F%E8%BF%B0.%0D%0A%E5%90%88%E5%94%B1%E9%98%9F%20Chorus%0D%0A%E5%BE%88%E5%AE%B9%E6%98%93%E7%9A%84%E5%8C%BA%E9%97%B4DP%2C%20%E8%AE%BE%20%24%24F_%7Bi%2C%20j%7D%2C%20G_%7Bi%2C%20j%7D%24%24%20%E5%88%86%E5%88%AB%E8%A1%A8%E7%A4%BA%E5%BD%93%E5%89%8D%E7%8A%B6%E6%80%81%E4%B8%BA%E5%8C%BA%E9%97%B4%20%24%24%5Bi%2C%20j%5D%24%24%2C%20%E6%9C%80%E5%90%8E%E4%B8%80%E4%B8%AA%E6%94%BE%E7%9A%84%E5%85%83%E7%B4%A0%E5%9C%A8%E5%8C%BA%E9" 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%2F270&amp;t=HNOI%202010%20%E8%A7%A3%E9%A2%98%E6%8A%A5%E5%91%8A" 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=HNOI%202010%20%E8%A7%A3%E9%A2%98%E6%8A%A5%E5%91%8A&amp;link=http%3A%2F%2Fwww.cnphil.com%2Farchives%2F270" 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=HNOI%202010%20%E8%A7%A3%E9%A2%98%E6%8A%A5%E5%91%8A%20-%20http%3A%2F%2Fwww.cnphil.com%2Farchives%2F270" 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%2F270&title=HNOI%202010%20%E8%A7%A3%E9%A2%98%E6%8A%A5%E5%91%8A" 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/177" title="NOIp 2009 解题报告">NOIp 2009 解题报告</a></li><li><a href="http://www.cnphil.com/archives/73" title="NOI 2009 冬令营 · 笔记 (二)">NOI 2009 冬令营 · 笔记 (二)</a></li><li><a href="http://www.cnphil.com/archives/70" title="NOI 2009 冬令营 · 笔记 (一)">NOI 2009 冬令营 · 笔记 (一)</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.cnphil.com/archives/270/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
	</channel>
</rss>
