﻿<?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++博客-Omni Inspirations</title><link>http://www.cppblog.com/jsn1993/</link><description>problems &amp; programs ~</description><language>zh-cn</language><lastBuildDate>Sat, 04 Apr 2026 17:17:09 GMT</lastBuildDate><pubDate>Sat, 04 Apr 2026 17:17:09 GMT</pubDate><ttl>60</ttl><item><title>此OI博客废弃</title><link>http://www.cppblog.com/jsn1993/archive/2010/08/21/124177.html</link><dc:creator>jsn1993</dc:creator><author>jsn1993</author><pubDate>Sat, 21 Aug 2010 06:09:00 GMT</pubDate><guid>http://www.cppblog.com/jsn1993/archive/2010/08/21/124177.html</guid><wfw:comment>http://www.cppblog.com/jsn1993/comments/124177.html</wfw:comment><comments>http://www.cppblog.com/jsn1993/archive/2010/08/21/124177.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/jsn1993/comments/commentRss/124177.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/jsn1993/services/trackbacks/124177.html</trackback:ping><description><![CDATA[rt 请勿再来访问<br><img src ="http://www.cppblog.com/jsn1993/aggbug/124177.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/jsn1993/" target="_blank">jsn1993</a> 2010-08-21 14:09 <a href="http://www.cppblog.com/jsn1993/archive/2010/08/21/124177.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>NOI完挂，不解释</title><link>http://www.cppblog.com/jsn1993/archive/2010/08/11/123063.html</link><dc:creator>jsn1993</dc:creator><author>jsn1993</author><pubDate>Wed, 11 Aug 2010 06:19:00 GMT</pubDate><guid>http://www.cppblog.com/jsn1993/archive/2010/08/11/123063.html</guid><wfw:comment>http://www.cppblog.com/jsn1993/comments/123063.html</wfw:comment><comments>http://www.cppblog.com/jsn1993/archive/2010/08/11/123063.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/jsn1993/comments/commentRss/123063.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/jsn1993/services/trackbacks/123063.html</trackback:ping><description><![CDATA[<a href="http://hi.baidu.com/jsn1993/blog/item/dc909f3cf436080dbba16734.html">http://hi.baidu.com/jsn1993/blog/item/dc909f3cf436080dbba16734.html</a>
<img src ="http://www.cppblog.com/jsn1993/aggbug/123063.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/jsn1993/" target="_blank">jsn1993</a> 2010-08-11 14:19 <a href="http://www.cppblog.com/jsn1993/archive/2010/08/11/123063.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>NOI bless</title><link>http://www.cppblog.com/jsn1993/archive/2010/08/01/121899.html</link><dc:creator>jsn1993</dc:creator><author>jsn1993</author><pubDate>Sun, 01 Aug 2010 13:24:00 GMT</pubDate><guid>http://www.cppblog.com/jsn1993/archive/2010/08/01/121899.html</guid><wfw:comment>http://www.cppblog.com/jsn1993/comments/121899.html</wfw:comment><comments>http://www.cppblog.com/jsn1993/archive/2010/08/01/121899.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/jsn1993/comments/commentRss/121899.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/jsn1993/services/trackbacks/121899.html</trackback:ping><description><![CDATA[bless.<br><img src ="http://www.cppblog.com/jsn1993/aggbug/121899.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/jsn1993/" target="_blank">jsn1993</a> 2010-08-01 21:24 <a href="http://www.cppblog.com/jsn1993/archive/2010/08/01/121899.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>来除草 关于ceoi</title><link>http://www.cppblog.com/jsn1993/archive/2010/07/27/121368.html</link><dc:creator>jsn1993</dc:creator><author>jsn1993</author><pubDate>Tue, 27 Jul 2010 00:56:00 GMT</pubDate><guid>http://www.cppblog.com/jsn1993/archive/2010/07/27/121368.html</guid><wfw:comment>http://www.cppblog.com/jsn1993/comments/121368.html</wfw:comment><comments>http://www.cppblog.com/jsn1993/archive/2010/07/27/121368.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/jsn1993/comments/commentRss/121368.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/jsn1993/services/trackbacks/121368.html</trackback:ping><description><![CDATA[ceoi day1,2 我就没把该拿的分都拿了<br><br>day1 网络流除了建图考细节 其他没trick 解方程那个我忘记判了1*1的情况导致只有10分 第三题不会..<br>day2 mp3题太长了 第二题容斥D=1, 2, 3都是对的, D=4的时候因为G[4]打成F[4]然后挂了30分.. 第三题问了hyc才成了个水题....本来只会45分的<br><br>总之 我就是个傻子<br><br><img src ="http://www.cppblog.com/jsn1993/aggbug/121368.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/jsn1993/" target="_blank">jsn1993</a> 2010-07-27 08:56 <a href="http://www.cppblog.com/jsn1993/archive/2010/07/27/121368.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>COCI难题大作战</title><link>http://www.cppblog.com/jsn1993/archive/2010/07/17/120628.html</link><dc:creator>jsn1993</dc:creator><author>jsn1993</author><pubDate>Sat, 17 Jul 2010 07:23:00 GMT</pubDate><guid>http://www.cppblog.com/jsn1993/archive/2010/07/17/120628.html</guid><wfw:comment>http://www.cppblog.com/jsn1993/comments/120628.html</wfw:comment><comments>http://www.cppblog.com/jsn1993/archive/2010/07/17/120628.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/jsn1993/comments/commentRss/120628.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/jsn1993/services/trackbacks/120628.html</trackback:ping><description><![CDATA[难 实在是难..<br><img src ="http://www.cppblog.com/jsn1993/aggbug/120628.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/jsn1993/" target="_blank">jsn1993</a> 2010-07-17 15:23 <a href="http://www.cppblog.com/jsn1993/archive/2010/07/17/120628.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ceoi 2010 bless</title><link>http://www.cppblog.com/jsn1993/archive/2010/07/14/120321.html</link><dc:creator>jsn1993</dc:creator><author>jsn1993</author><pubDate>Wed, 14 Jul 2010 05:42:00 GMT</pubDate><guid>http://www.cppblog.com/jsn1993/archive/2010/07/14/120321.html</guid><wfw:comment>http://www.cppblog.com/jsn1993/comments/120321.html</wfw:comment><comments>http://www.cppblog.com/jsn1993/archive/2010/07/14/120321.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/jsn1993/comments/commentRss/120321.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/jsn1993/services/trackbacks/120321.html</trackback:ping><description><![CDATA[bless<br><img src ="http://www.cppblog.com/jsn1993/aggbug/120321.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/jsn1993/" target="_blank">jsn1993</a> 2010-07-14 13:42 <a href="http://www.cppblog.com/jsn1993/archive/2010/07/14/120321.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>饶了我吧！！</title><link>http://www.cppblog.com/jsn1993/archive/2010/07/04/119315.html</link><dc:creator>jsn1993</dc:creator><author>jsn1993</author><pubDate>Sun, 04 Jul 2010 14:15:00 GMT</pubDate><guid>http://www.cppblog.com/jsn1993/archive/2010/07/04/119315.html</guid><wfw:comment>http://www.cppblog.com/jsn1993/comments/119315.html</wfw:comment><comments>http://www.cppblog.com/jsn1993/archive/2010/07/04/119315.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/jsn1993/comments/commentRss/119315.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/jsn1993/services/trackbacks/119315.html</trackback:ping><description><![CDATA[CAVLI我知道你是个牛题虐倒无数人&nbsp; 就让我过了吧。。饶了我吧&nbsp; CAVLI！！<br><img src ="http://www.cppblog.com/jsn1993/aggbug/119315.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/jsn1993/" target="_blank">jsn1993</a> 2010-07-04 22:15 <a href="http://www.cppblog.com/jsn1993/archive/2010/07/04/119315.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>各种被虐</title><link>http://www.cppblog.com/jsn1993/archive/2010/07/02/119182.html</link><dc:creator>jsn1993</dc:creator><author>jsn1993</author><pubDate>Fri, 02 Jul 2010 08:23:00 GMT</pubDate><guid>http://www.cppblog.com/jsn1993/archive/2010/07/02/119182.html</guid><wfw:comment>http://www.cppblog.com/jsn1993/comments/119182.html</wfw:comment><comments>http://www.cppblog.com/jsn1993/archive/2010/07/02/119182.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/jsn1993/comments/commentRss/119182.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/jsn1993/services/trackbacks/119182.html</trackback:ping><description><![CDATA[KRTICA 想不出<br>CAVLI 写不出<br><br>再写不出就不出去了<br><br><img src ="http://www.cppblog.com/jsn1993/aggbug/119182.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/jsn1993/" target="_blank">jsn1993</a> 2010-07-02 16:23 <a href="http://www.cppblog.com/jsn1993/archive/2010/07/02/119182.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>继续被虐</title><link>http://www.cppblog.com/jsn1993/archive/2010/06/30/118962.html</link><dc:creator>jsn1993</dc:creator><author>jsn1993</author><pubDate>Wed, 30 Jun 2010 01:32:00 GMT</pubDate><guid>http://www.cppblog.com/jsn1993/archive/2010/06/30/118962.html</guid><wfw:comment>http://www.cppblog.com/jsn1993/comments/118962.html</wfw:comment><comments>http://www.cppblog.com/jsn1993/archive/2010/06/30/118962.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/jsn1993/comments/commentRss/118962.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/jsn1993/services/trackbacks/118962.html</trackback:ping><description><![CDATA[教主的模拟赛题太牛了。。<br><br>ALADIN太难写了。。<br><br>PALACINKE太难想了。。<br><br>如果这种题noi放出来 我就弯蛋了<br><br><img src ="http://www.cppblog.com/jsn1993/aggbug/118962.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/jsn1993/" target="_blank">jsn1993</a> 2010-06-30 09:32 <a href="http://www.cppblog.com/jsn1993/archive/2010/06/30/118962.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>这两天净被虐</title><link>http://www.cppblog.com/jsn1993/archive/2010/06/24/118606.html</link><dc:creator>jsn1993</dc:creator><author>jsn1993</author><pubDate>Thu, 24 Jun 2010 01:58:00 GMT</pubDate><guid>http://www.cppblog.com/jsn1993/archive/2010/06/24/118606.html</guid><wfw:comment>http://www.cppblog.com/jsn1993/comments/118606.html</wfw:comment><comments>http://www.cppblog.com/jsn1993/archive/2010/06/24/118606.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/jsn1993/comments/commentRss/118606.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/jsn1993/services/trackbacks/118606.html</trackback:ping><description><![CDATA[做的我脑残死了....<br><br>话说SDOI2010 round2 的 k短路 数据也太弱了吧....<br><br><img src ="http://www.cppblog.com/jsn1993/aggbug/118606.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/jsn1993/" target="_blank">jsn1993</a> 2010-06-24 09:58 <a href="http://www.cppblog.com/jsn1993/archive/2010/06/24/118606.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>COI 2010  hrastovi</title><link>http://www.cppblog.com/jsn1993/archive/2010/06/20/118306.html</link><dc:creator>jsn1993</dc:creator><author>jsn1993</author><pubDate>Sun, 20 Jun 2010 06:07:00 GMT</pubDate><guid>http://www.cppblog.com/jsn1993/archive/2010/06/20/118306.html</guid><wfw:comment>http://www.cppblog.com/jsn1993/comments/118306.html</wfw:comment><comments>http://www.cppblog.com/jsn1993/archive/2010/06/20/118306.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/jsn1993/comments/commentRss/118306.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/jsn1993/services/trackbacks/118306.html</trackback:ping><description><![CDATA[蛋疼无聊来发个水题<br><br>题意：给定N个点，M个询问，每次询问(x1,y1)与(x2,y2)为对点构成的正方形严格边缘上有多少个点。<br><br>做法：<br>把问题转化成求一条线段上的点个数 对于每个询问只要查找四条直线上有多少点即可。<br>这个很简单，排序+二分即可。（注意处理细节，最好想好区间的开闭再写）<br>我偷懒用了lower_bound和upper_bound..<br><span style="color: #000000;"><br>
<div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: #008080;">&nbsp;1</span>&nbsp;<span style="color: #000000;">#include&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">cstdio</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br></span><span style="color: #008080;">&nbsp;2</span>&nbsp;<span style="color: #000000;">#include&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">vector</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br></span><span style="color: #008080;">&nbsp;3</span>&nbsp;<span style="color: #000000;">#include&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">cstdlib</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br></span><span style="color: #008080;">&nbsp;4</span>&nbsp;<span style="color: #000000;">#include&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">algorithm</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br></span><span style="color: #008080;">&nbsp;5</span>&nbsp;<span style="color: #000000;"></span><span style="color: #0000ff;">using</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">namespace</span><span style="color: #000000;">&nbsp;std;<br></span><span style="color: #008080;">&nbsp;6</span>&nbsp;<span style="color: #000000;">vector</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">pair</span><span style="color: #000000;">&lt;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">,</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;X,Y;<br></span><span style="color: #008080;">&nbsp;7</span>&nbsp;<span style="color: #000000;"></span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;N,Que,x,y,x1,y1,x2,y2;<br></span><span style="color: #008080;">&nbsp;8</span>&nbsp;<span style="color: #000000;">inline&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;Q_fow(vector</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">pair</span><span style="color: #000000;">&lt;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">,</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">&amp;</span><span style="color: #000000;">P,</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;y1,</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;y2)<br></span><span style="color: #008080;">&nbsp;9</span>&nbsp;<span style="color: #000000;">{<br></span><span style="color: #008080;">10</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;upper_bound(P.begin(),P.end(),make_pair(x,y2))</span><span style="color: #000000;">-</span><span style="color: #000000;">upper_bound(P.begin(),P.end(),make_pair(x,y1));<br></span><span style="color: #008080;">11</span>&nbsp;<span style="color: #000000;">}<br></span><span style="color: #008080;">12</span>&nbsp;<span style="color: #000000;">inline&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;Q_rev(vector</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">pair</span><span style="color: #000000;">&lt;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">,</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">&amp;</span><span style="color: #000000;">P,</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;y1,</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;y2)<br></span><span style="color: #008080;">13</span>&nbsp;<span style="color: #000000;">{<br></span><span style="color: #008080;">14</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;lower_bound(P.begin(),P.end(),make_pair(x,y2))</span><span style="color: #000000;">-</span><span style="color: #000000;">lower_bound(P.begin(),P.end(),make_pair(x,y1));<br></span><span style="color: #008080;">15</span>&nbsp;<span style="color: #000000;">}<br></span><span style="color: #008080;">16</span>&nbsp;<span style="color: #000000;"></span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;main()<br></span><span style="color: #008080;">17</span>&nbsp;<span style="color: #000000;">{<br></span><span style="color: #008080;">18</span>&nbsp;<span style="color: #000000;">&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></span><span style="color: #008080;">19</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">for</span><span style="color: #000000;">&nbsp;(</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;i</span><span style="color: #000000;">=</span><span style="color: #000000;">0</span><span style="color: #000000;">;i</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">N;</span><span style="color: #000000;">++</span><span style="color: #000000;">i)<br></span><span style="color: #008080;">20</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;{<br></span><span style="color: #008080;">21</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;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;">x,</span><span style="color: #000000;">&amp;</span><span style="color: #000000;">y);<br></span><span style="color: #008080;">22</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;X.push_back(make_pair(x,y));<br></span><span style="color: #008080;">23</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Y.push_back(make_pair(y,x));<br></span><span style="color: #008080;">24</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;}<br></span><span style="color: #008080;">25</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;sort(X.begin(),X.end());<br></span><span style="color: #008080;">26</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;sort(Y.begin(),Y.end());<br></span><span style="color: #008080;">27</span>&nbsp;<span style="color: #000000;">&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;">Que);<br></span><span style="color: #008080;">28</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">for</span><span style="color: #000000;">&nbsp;(;Que</span><span style="color: #000000;">--</span><span style="color: #000000;">;)<br></span><span style="color: #008080;">29</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;{<br></span><span style="color: #008080;">30</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;scanf(</span><span style="color: #000000;">"</span><span style="color: #000000;">%d%d%d%d</span><span style="color: #000000;">"</span><span style="color: #000000;">,</span><span style="color: #000000;">&amp;</span><span style="color: #000000;">x1,</span><span style="color: #000000;">&amp;</span><span style="color: #000000;">y1,</span><span style="color: #000000;">&amp;</span><span style="color: #000000;">x2,</span><span style="color: #000000;">&amp;</span><span style="color: #000000;">y2);<br></span><span style="color: #008080;">31</span>&nbsp;<span style="color: #000000;">&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;">,Q_fow(X,x1,y1,y2)</span><span style="color: #000000;">+</span><span style="color: #000000;">Q_fow(Y,y2,x1,x2)</span><span style="color: #000000;">+</span><span style="color: #000000;">Q_rev(X,x2,y1,y2)</span><span style="color: #000000;">+</span><span style="color: #000000;">Q_rev(Y,y1,x1,x2));<br></span><span style="color: #008080;">32</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;}<br></span><span style="color: #008080;">33</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">0</span><span style="color: #000000;">;<br></span><span style="color: #008080;">34</span>&nbsp;<span style="color: #000000;">}&nbsp;&nbsp;&nbsp;&nbsp;<br></span><span style="color: #008080;">35</span>&nbsp;<span style="color: #000000;"></span></div>
<br></span><img src ="http://www.cppblog.com/jsn1993/aggbug/118306.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/jsn1993/" target="_blank">jsn1993</a> 2010-06-20 14:07 <a href="http://www.cppblog.com/jsn1993/archive/2010/06/20/118306.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>吐槽吐槽  发泄心中不爽</title><link>http://www.cppblog.com/jsn1993/archive/2010/06/16/118022.html</link><dc:creator>jsn1993</dc:creator><author>jsn1993</author><pubDate>Wed, 16 Jun 2010 09:05:00 GMT</pubDate><guid>http://www.cppblog.com/jsn1993/archive/2010/06/16/118022.html</guid><wfw:comment>http://www.cppblog.com/jsn1993/comments/118022.html</wfw:comment><comments>http://www.cppblog.com/jsn1993/archive/2010/06/16/118022.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/jsn1993/comments/commentRss/118022.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/jsn1993/services/trackbacks/118022.html</trackback:ping><description><![CDATA[tmd昨天那个TLE还没解决<br><br>今天这道要求O(N)的题目我连nlogn都调不好想不通<br><br>唉...太2了<br><br><img src ="http://www.cppblog.com/jsn1993/aggbug/118022.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/jsn1993/" target="_blank">jsn1993</a> 2010-06-16 17:05 <a href="http://www.cppblog.com/jsn1993/archive/2010/06/16/118022.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>没事来吐sxngt</title><link>http://www.cppblog.com/jsn1993/archive/2010/06/16/118018.html</link><dc:creator>jsn1993</dc:creator><author>jsn1993</author><pubDate>Wed, 16 Jun 2010 06:27:00 GMT</pubDate><guid>http://www.cppblog.com/jsn1993/archive/2010/06/16/118018.html</guid><wfw:comment>http://www.cppblog.com/jsn1993/comments/118018.html</wfw:comment><comments>http://www.cppblog.com/jsn1993/archive/2010/06/16/118018.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/jsn1993/comments/commentRss/118018.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/jsn1993/services/trackbacks/118018.html</trackback:ping><description><![CDATA[朝鲜队v5<br><br>【4X+2】年的六月份总是这么带有激情...<br><br>上午看总决赛&nbsp; 中间有个画面大概说1962年和1966年都是世界杯+总决赛<br>同样的lakers vs celtics 同样的3:2 同样的第六场lakers赢 同样的celtics总冠军....<br><br>放这个东西的人意思是今年celtics拿总冠军是宿命?还在湖人主场比赛的时候这么放?.<br><br>好吧我想多了<br><br><img src ="http://www.cppblog.com/jsn1993/aggbug/118018.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/jsn1993/" target="_blank">jsn1993</a> 2010-06-16 14:27 <a href="http://www.cppblog.com/jsn1993/archive/2010/06/16/118018.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>youdao nanti4</title><link>http://www.cppblog.com/jsn1993/archive/2010/06/15/117953.html</link><dc:creator>jsn1993</dc:creator><author>jsn1993</author><pubDate>Tue, 15 Jun 2010 02:53:00 GMT</pubDate><guid>http://www.cppblog.com/jsn1993/archive/2010/06/15/117953.html</guid><wfw:comment>http://www.cppblog.com/jsn1993/comments/117953.html</wfw:comment><comments>http://www.cppblog.com/jsn1993/archive/2010/06/15/117953.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/jsn1993/comments/commentRss/117953.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/jsn1993/services/trackbacks/117953.html</trackback:ping><description><![CDATA[这场比赛就tmd一坨屎。。。。<br><br>在1:24 ACRush第一个过了CTSC2006的投篮游戏<br>然后当我想去看世界杯的时候&nbsp; 他说第一题改成单组评分 后两题也单组评分<br><br>然后我就被有道骗分大赛弄傻了<br><br>然后的然后我就只有72分 最后就掉出了300名。<br><br>结果我就这么被虐傻了<br><br><img src ="http://www.cppblog.com/jsn1993/aggbug/117953.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/jsn1993/" target="_blank">jsn1993</a> 2010-06-15 10:53 <a href="http://www.cppblog.com/jsn1993/archive/2010/06/15/117953.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>...after 6.9 holy-war</title><link>http://www.cppblog.com/jsn1993/archive/2010/06/10/117525.html</link><dc:creator>jsn1993</dc:creator><author>jsn1993</author><pubDate>Thu, 10 Jun 2010 01:24:00 GMT</pubDate><guid>http://www.cppblog.com/jsn1993/archive/2010/06/10/117525.html</guid><wfw:comment>http://www.cppblog.com/jsn1993/comments/117525.html</wfw:comment><comments>http://www.cppblog.com/jsn1993/archive/2010/06/10/117525.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/jsn1993/comments/commentRss/117525.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/jsn1993/services/trackbacks/117525.html</trackback:ping><description><![CDATA[请看到此文的人 编辑C:\WINDOWS\system32\drivers\etc\hosts<br>加入一行 203.208.39.99 www.baidu.com<br>然后在浏览器地址栏输入www.baidu.com<br>坚决抵制【全球最大的【中文】搜索引擎】baidu的nc行为<br><br><br><img src ="http://www.cppblog.com/jsn1993/aggbug/117525.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/jsn1993/" target="_blank">jsn1993</a> 2010-06-10 09:24 <a href="http://www.cppblog.com/jsn1993/archive/2010/06/10/117525.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>codejam R2</title><link>http://www.cppblog.com/jsn1993/archive/2010/06/06/117260.html</link><dc:creator>jsn1993</dc:creator><author>jsn1993</author><pubDate>Sun, 06 Jun 2010 03:22:00 GMT</pubDate><guid>http://www.cppblog.com/jsn1993/archive/2010/06/06/117260.html</guid><wfw:comment>http://www.cppblog.com/jsn1993/comments/117260.html</wfw:comment><comments>http://www.cppblog.com/jsn1993/archive/2010/06/06/117260.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/jsn1993/comments/commentRss/117260.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/jsn1993/services/trackbacks/117260.html</trackback:ping><description><![CDATA[。。我就是个杯具 内幕不解释<br><br>B是个dp题 F[k][l][r]表示l到r从宽到窄被覆盖了k次 用记忆化搜实现<br>每次枚举这层放不放 从F[k(+1)][l][(l+r)&gt;&gt;1]和F[k(+1)][(l+r&gt;&gt;1)+1][r]推导得到<br><br>C-small是个傻子都会做的模拟<br><br>D-small是个公式<br><br><img src ="http://www.cppblog.com/jsn1993/aggbug/117260.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/jsn1993/" target="_blank">jsn1993</a> 2010-06-06 11:22 <a href="http://www.cppblog.com/jsn1993/archive/2010/06/06/117260.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>5.29</title><link>http://www.cppblog.com/jsn1993/archive/2010/05/29/116706.html</link><dc:creator>jsn1993</dc:creator><author>jsn1993</author><pubDate>Sat, 29 May 2010 14:04:00 GMT</pubDate><guid>http://www.cppblog.com/jsn1993/archive/2010/05/29/116706.html</guid><wfw:comment>http://www.cppblog.com/jsn1993/comments/116706.html</wfw:comment><comments>http://www.cppblog.com/jsn1993/archive/2010/05/29/116706.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/jsn1993/comments/commentRss/116706.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/jsn1993/services/trackbacks/116706.html</trackback:ping><description><![CDATA[今天真是个rp低的日子<br><br>省选第三题的骗分来不及了&nbsp; 有道最后第三题来不及了&nbsp; 都挂了挂了啊！都挂了！！！！<br><br><img src ="http://www.cppblog.com/jsn1993/aggbug/116706.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/jsn1993/" target="_blank">jsn1993</a> 2010-05-29 22:04 <a href="http://www.cppblog.com/jsn1993/archive/2010/05/29/116706.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JSTSC 2010  group</title><link>http://www.cppblog.com/jsn1993/archive/2010/05/26/116360.html</link><dc:creator>jsn1993</dc:creator><author>jsn1993</author><pubDate>Wed, 26 May 2010 02:06:00 GMT</pubDate><guid>http://www.cppblog.com/jsn1993/archive/2010/05/26/116360.html</guid><wfw:comment>http://www.cppblog.com/jsn1993/comments/116360.html</wfw:comment><comments>http://www.cppblog.com/jsn1993/archive/2010/05/26/116360.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.cppblog.com/jsn1993/comments/commentRss/116360.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/jsn1993/services/trackbacks/116360.html</trackback:ping><description><![CDATA[题意：<br>给你N&lt;=1000个平面上的点 让你将这些点划分为K&lt;=N个部分，使得最靠近的两个部落尽量远离。<br><br>做法：<br>这个题初看好像没什么思路 所以我们要发掘它的本质<br><br>本题等价于将初始N个连通块通过N-K次有效合并成K个连通块，使得剩下的连接两个不同连通块的最小边最大。<br>恰恰Kruskal算法的目标便是通过合并得到1个连通块，使最大的边最小，即剩下的最小边最小。<br><br>考虑这两者的联系，我们可以设计这样一个算法：<br>我们用Kruskal的做法，并查集合并N-K+1次时，这条边便是答案。<br>简单地不严谨地证明一下这个是最优解：<br>对于已经生成的划分边集E， 其中有N-K条有效合并边<br>我们用一条不在E集合中的边去替换E集合中的边 这两条边必然是同一个性质的<br>1.一条可合并边替换了一条有效合并边：剩下的连接不同连通块的最小边成为了换出来的边 不可行<br>2.一条非可合并边替换一条非有效合并边：对原来的解不产生变化<br>所以这样就可以解决了此题<br><br>
<div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: #008080;">&nbsp;1</span>&nbsp;<span style="color: #000000;">#include&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">cstdio</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br></span><span style="color: #008080;">&nbsp;2</span>&nbsp;<span style="color: #000000;">#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></span><span style="color: #008080;">&nbsp;3</span>&nbsp;<span style="color: #000000;">#include&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">algorithm</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br></span><span style="color: #008080;">&nbsp;4</span>&nbsp;<span style="color: #000000;"></span><span style="color: #0000ff;">using</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">namespace</span><span style="color: #000000;">&nbsp;std;<br></span><span style="color: #008080;">&nbsp;5</span>&nbsp;<span style="color: #000000;"></span><span style="color: #0000ff;">struct</span><span style="color: #000000;">&nbsp;TEdge<br></span><span style="color: #008080;">&nbsp;6</span>&nbsp;<span style="color: #000000;">{<br></span><span style="color: #008080;">&nbsp;7</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;w,x,y;<br></span><span style="color: #008080;">&nbsp;8</span>&nbsp;<span style="color: #000000;">}&nbsp;&nbsp;&nbsp;&nbsp;e[</span><span style="color: #000000;">1000005</span><span style="color: #000000;">];<br></span><span style="color: #008080;">&nbsp;9</span>&nbsp;<span style="color: #000000;"></span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;Ance[</span><span style="color: #000000;">1005</span><span style="color: #000000;">],X[</span><span style="color: #000000;">1005</span><span style="color: #000000;">],Y[</span><span style="color: #000000;">1005</span><span style="color: #000000;">],N,K,E;<br></span><span style="color: #008080;">10</span>&nbsp;<span style="color: #000000;">inline&nbsp;TEdge&nbsp;TEdge_make(</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;w,</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)<br></span><span style="color: #008080;">11</span>&nbsp;<span style="color: #000000;">{<br></span><span style="color: #008080;">12</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;TEdge&nbsp;ret;<br></span><span style="color: #008080;">13</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;ret.w</span><span style="color: #000000;">=</span><span style="color: #000000;">w,ret.x</span><span style="color: #000000;">=</span><span style="color: #000000;">x,ret.y</span><span style="color: #000000;">=</span><span style="color: #000000;">y;<br></span><span style="color: #008080;">14</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;ret;<br></span><span style="color: #008080;">15</span>&nbsp;<span style="color: #000000;">}<br></span><span style="color: #008080;">16</span>&nbsp;<span style="color: #000000;">inline&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;GetAnce(</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;x)<br></span><span style="color: #008080;">17</span>&nbsp;<span style="color: #000000;">{<br></span><span style="color: #008080;">18</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;p</span><span style="color: #000000;">=</span><span style="color: #000000;">x,q</span><span style="color: #000000;">=</span><span style="color: #000000;">x,k</span><span style="color: #000000;">=</span><span style="color: #000000;">Ance[x];<br></span><span style="color: #008080;">19</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">for</span><span style="color: #000000;">&nbsp;(;p</span><span style="color: #000000;">!=</span><span style="color: #000000;">Ance[p];p</span><span style="color: #000000;">=</span><span style="color: #000000;">Ance[p]);<br></span><span style="color: #008080;">20</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">for</span><span style="color: #000000;">&nbsp;(;q</span><span style="color: #000000;">!=</span><span style="color: #000000;">p;Ance[q]</span><span style="color: #000000;">=</span><span style="color: #000000;">p,q</span><span style="color: #000000;">=</span><span style="color: #000000;">k,k</span><span style="color: #000000;">=</span><span style="color: #000000;">Ance[q]);<br></span><span style="color: #008080;">21</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;p;<br></span><span style="color: #008080;">22</span>&nbsp;<span style="color: #000000;">}<br></span><span style="color: #008080;">23</span>&nbsp;<span style="color: #000000;">inline&nbsp;</span><span style="color: #0000ff;">bool</span><span style="color: #000000;">&nbsp;cmp(</span><span style="color: #0000ff;">const</span><span style="color: #000000;">&nbsp;TEdge&nbsp;</span><span style="color: #000000;">&amp;</span><span style="color: #000000;">a,</span><span style="color: #0000ff;">const</span><span style="color: #000000;">&nbsp;TEdge&nbsp;</span><span style="color: #000000;">&amp;</span><span style="color: #000000;">b)<br></span><span style="color: #008080;">24</span>&nbsp;<span style="color: #000000;">{<br></span><span style="color: #008080;">25</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;a.w</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">b.w;<br></span><span style="color: #008080;">26</span>&nbsp;<span style="color: #000000;">}<br></span><span style="color: #008080;">27</span>&nbsp;<span style="color: #000000;"></span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;main()<br></span><span style="color: #008080;">28</span>&nbsp;<span style="color: #000000;">{<br></span><span style="color: #008080;">29</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;freopen(</span><span style="color: #000000;">"</span><span style="color: #000000;">group.in</span><span style="color: #000000;">"</span><span style="color: #000000;">,</span><span style="color: #000000;">"</span><span style="color: #000000;">r</span><span style="color: #000000;">"</span><span style="color: #000000;">,stdin);<br></span><span style="color: #008080;">30</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;freopen(</span><span style="color: #000000;">"</span><span style="color: #000000;">group.out</span><span style="color: #000000;">"</span><span style="color: #000000;">,</span><span style="color: #000000;">"</span><span style="color: #000000;">w</span><span style="color: #000000;">"</span><span style="color: #000000;">,stdout);<br></span><span style="color: #008080;">31</span>&nbsp;<span style="color: #000000;">&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;">N,</span><span style="color: #000000;">&amp;</span><span style="color: #000000;">K);<br></span><span style="color: #008080;">32</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">for</span><span style="color: #000000;">&nbsp;(</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;i</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;</span><span style="color: #000000;">++</span><span style="color: #000000;">i)<br></span><span style="color: #008080;">33</span>&nbsp;<span style="color: #000000;">&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;">X[i],</span><span style="color: #000000;">&amp;</span><span style="color: #000000;">Y[i]);<br></span><span style="color: #008080;">34</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">for</span><span style="color: #000000;">&nbsp;(</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;i</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;</span><span style="color: #000000;">++</span><span style="color: #000000;">i)<br></span><span style="color: #008080;">35</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">for</span><span style="color: #000000;">&nbsp;(</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;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;</span><span style="color: #000000;">++</span><span style="color: #000000;">j)<br></span><span style="color: #008080;">36</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e[</span><span style="color: #000000;">++</span><span style="color: #000000;">E]</span><span style="color: #000000;">=</span><span style="color: #000000;">TEdge_make((X[i]</span><span style="color: #000000;">-</span><span style="color: #000000;">X[j])</span><span style="color: #000000;">*</span><span style="color: #000000;">(X[i]</span><span style="color: #000000;">-</span><span style="color: #000000;">X[j])</span><span style="color: #000000;">+</span><span style="color: #000000;">(Y[i]</span><span style="color: #000000;">-</span><span style="color: #000000;">Y[j])</span><span style="color: #000000;">*</span><span style="color: #000000;">(Y[i]</span><span style="color: #000000;">-</span><span style="color: #000000;">Y[j]),i,j);<br></span><span style="color: #008080;">37</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;sort(e</span><span style="color: #000000;">+</span><span style="color: #000000;">1</span><span style="color: #000000;">,e</span><span style="color: #000000;">+</span><span style="color: #000000;">E</span><span style="color: #000000;">+</span><span style="color: #000000;">1</span><span style="color: #000000;">,cmp);<br></span><span style="color: #008080;">38</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">for</span><span style="color: #000000;">&nbsp;(</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;i</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;</span><span style="color: #000000;">++</span><span style="color: #000000;">i)<br></span><span style="color: #008080;">39</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ance[i]</span><span style="color: #000000;">=</span><span style="color: #000000;">i;<br></span><span style="color: #008080;">40</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">for</span><span style="color: #000000;">&nbsp;(</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;i</span><span style="color: #000000;">=</span><span style="color: #000000;">1</span><span style="color: #000000;">,cnt</span><span style="color: #000000;">=</span><span style="color: #000000;">N;i</span><span style="color: #000000;">&lt;=</span><span style="color: #000000;">E;</span><span style="color: #000000;">++</span><span style="color: #000000;">i)<br></span><span style="color: #008080;">41</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;{<br></span><span style="color: #008080;">42</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;u</span><span style="color: #000000;">=</span><span style="color: #000000;">GetAnce(e[i].x),v</span><span style="color: #000000;">=</span><span style="color: #000000;">GetAnce(e[i].y);<br></span><span style="color: #008080;">43</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">&nbsp;(u</span><span style="color: #000000;">!=</span><span style="color: #000000;">v)<br></span><span style="color: #008080;">44</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br></span><span style="color: #008080;">45</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ance[u]</span><span style="color: #000000;">=</span><span style="color: #000000;">v;<br></span><span style="color: #008080;">46</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">&nbsp;(</span><span style="color: #000000;">--</span><span style="color: #000000;">cnt</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;">)&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;printf(</span><span style="color: #000000;">"</span><span style="color: #000000;">%.2lf\n</span><span style="color: #000000;">"</span><span style="color: #000000;">,sqrt((</span><span style="color: #0000ff;">double</span><span style="color: #000000;">)e[i].w)),</span><span style="color: #000000;">0</span><span style="color: #000000;">;<br></span><span style="color: #008080;">47</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br></span><span style="color: #008080;">48</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;}<br></span><span style="color: #008080;">49</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">0</span><span style="color: #000000;">;<br></span><span style="color: #008080;">50</span>&nbsp;<span style="color: #000000;">}<br></span><span style="color: #008080;">51</span>&nbsp;<span style="color: #000000;"></span></div>
<br>  <img src ="http://www.cppblog.com/jsn1993/aggbug/116360.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/jsn1993/" target="_blank">jsn1993</a> 2010-05-26 10:06 <a href="http://www.cppblog.com/jsn1993/archive/2010/05/26/116360.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JSTSC 2010  express (CEOI 2005 service)</title><link>http://www.cppblog.com/jsn1993/archive/2010/05/26/116350.html</link><dc:creator>jsn1993</dc:creator><author>jsn1993</author><pubDate>Wed, 26 May 2010 00:56:00 GMT</pubDate><guid>http://www.cppblog.com/jsn1993/archive/2010/05/26/116350.html</guid><wfw:comment>http://www.cppblog.com/jsn1993/comments/116350.html</wfw:comment><comments>http://www.cppblog.com/jsn1993/archive/2010/05/26/116350.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/jsn1993/comments/commentRss/116350.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/jsn1993/services/trackbacks/116350.html</trackback:ping><description><![CDATA[题意：<br>有三个邮递员A,B,C
一开始分别在地点1,2,3(M&lt;=200)，给定矩阵G，G[i][j]满足G[i][j]&lt;=G[i][k]+G[k][j]，表示i到
j的代价，每天有一封邮件(共N&lt;=1000)在第Ni个地点，需要派一个邮递员过去，不能有两个人在同一地点，每次只能移动一个人。<br><br>做
法：<br>出题人没有道德&nbsp; 这个题是CEOI2005的service<br>考虑朴素做法F[T][i][j][k]表示第T天，三个邮递员各在
i,j,k，转移即枚举哪个人去。<br>有个优化 规定i&lt;j&lt;k 可以优化一般。<br>但是这个复杂度是无法通过此题的<br>注意到
第i天必然有个人要去Ni，所以可以将F[T][i][j][k]减到F[i][j][k]表示第i天另外两个邮递员在j,k<br>最后规定
j&lt;k，将i维滚动，便完成了此题。<br><br>（原题还要求输出方案 在64M内存情况下只能用unsigned
char记录方案，较恶心）<br><br>
<div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: #008080;">&nbsp;1</span>&nbsp;<span style="color: #000000;">#include&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">cstdio</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br></span><span style="color: #008080;">&nbsp;2</span>&nbsp;<span style="color: #000000;">#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></span><span style="color: #008080;">&nbsp;3</span>&nbsp;<span style="color: #000000;"></span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;N,Q,G[</span><span style="color: #000000;">205</span><span style="color: #000000;">][</span><span style="color: #000000;">205</span><span style="color: #000000;">],list[</span><span style="color: #000000;">1005</span><span style="color: #000000;">];<br></span><span style="color: #008080;">&nbsp;4</span>&nbsp;<span style="color: #000000;"></span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;F[</span><span style="color: #000000;">2</span><span style="color: #000000;">][</span><span style="color: #000000;">205</span><span style="color: #000000;">][</span><span style="color: #000000;">205</span><span style="color: #000000;">];<br></span><span style="color: #008080;">&nbsp;5</span>&nbsp;<span style="color: #000000;">inline&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;Update(</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">&amp;</span><span style="color: #000000;">u,</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;v)<br></span><span style="color: #008080;">&nbsp;6</span>&nbsp;<span style="color: #000000;">{<br></span><span style="color: #008080;">&nbsp;7</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">&nbsp;(u</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">v</span><span style="color: #000000;">||</span><span style="color: #000000;">u</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">0</span><span style="color: #000000;">)&nbsp;&nbsp;&nbsp;&nbsp;u</span><span style="color: #000000;">=</span><span style="color: #000000;">v;<br></span><span style="color: #008080;">&nbsp;8</span>&nbsp;<span style="color: #000000;">}<br></span><span style="color: #008080;">&nbsp;9</span>&nbsp;<span style="color: #000000;"></span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;main()<br></span><span style="color: #008080;">10</span>&nbsp;<span style="color: #000000;">{<br></span><span style="color: #008080;">11</span>&nbsp;<span style="color: #000000;">&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></span><span style="color: #008080;">12</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">for</span><span style="color: #000000;">&nbsp;(</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;i</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;</span><span style="color: #000000;">++</span><span style="color: #000000;">i)<br></span><span style="color: #008080;">13</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">for</span><span style="color: #000000;">&nbsp;(</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;j</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;</span><span style="color: #000000;">++</span><span style="color: #000000;">j)<br></span><span style="color: #008080;">14</span>&nbsp;<span style="color: #000000;">&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;">G[i][j]);<br></span><span style="color: #008080;">15</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">for</span><span style="color: #000000;">&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;">list[</span><span style="color: #000000;">++</span><span style="color: #000000;">Q])</span><span style="color: #000000;">!=</span><span style="color: #000000;">EOF;);<br></span><span style="color: #008080;">16</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">--</span><span style="color: #000000;">Q;<br></span><span style="color: #008080;">17</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;memset(F[</span><span style="color: #000000;">1</span><span style="color: #000000;">],</span><span style="color: #000000;">-</span><span style="color: #000000;">1</span><span style="color: #000000;">,</span><span style="color: #0000ff;">sizeof</span><span style="color: #000000;">(F[</span><span style="color: #000000;">1</span><span style="color: #000000;">]));<br></span><span style="color: #008080;">18</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;F[</span><span style="color: #000000;">1</span><span style="color: #000000;">][</span><span style="color: #000000;">2</span><span style="color: #000000;">][</span><span style="color: #000000;">3</span><span style="color: #000000;">]</span><span style="color: #000000;">=</span><span style="color: #000000;">G[</span><span style="color: #000000;">1</span><span style="color: #000000;">][list[</span><span style="color: #000000;">1</span><span style="color: #000000;">]];<br></span><span style="color: #008080;">19</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;F[</span><span style="color: #000000;">1</span><span style="color: #000000;">][</span><span style="color: #000000;">1</span><span style="color: #000000;">][</span><span style="color: #000000;">3</span><span style="color: #000000;">]</span><span style="color: #000000;">=</span><span style="color: #000000;">G[</span><span style="color: #000000;">2</span><span style="color: #000000;">][list[</span><span style="color: #000000;">1</span><span style="color: #000000;">]];<br></span><span style="color: #008080;">20</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;F[</span><span style="color: #000000;">1</span><span style="color: #000000;">][</span><span style="color: #000000;">1</span><span style="color: #000000;">][</span><span style="color: #000000;">2</span><span style="color: #000000;">]</span><span style="color: #000000;">=</span><span style="color: #000000;">G[</span><span style="color: #000000;">3</span><span style="color: #000000;">][list[</span><span style="color: #000000;">1</span><span style="color: #000000;">]];<br></span><span style="color: #008080;">21</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">for</span><span style="color: #000000;">&nbsp;(</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;i</span><span style="color: #000000;">=</span><span style="color: #000000;">1</span><span style="color: #000000;">,pre</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;">Q;</span><span style="color: #000000;">++</span><span style="color: #000000;">i,pre</span><span style="color: #000000;">^=</span><span style="color: #000000;">1</span><span style="color: #000000;">)<br></span><span style="color: #008080;">22</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;{<br></span><span style="color: #008080;">23</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;memset(F[pre</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;">1</span><span style="color: #000000;">,</span><span style="color: #0000ff;">sizeof</span><span style="color: #000000;">(F[pre</span><span style="color: #000000;">^</span><span style="color: #000000;">1</span><span style="color: #000000;">]));<br></span><span style="color: #008080;">24</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">for</span><span style="color: #000000;">&nbsp;(</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;j</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;</span><span style="color: #000000;">++</span><span style="color: #000000;">j)<br></span><span style="color: #008080;">25</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">for</span><span style="color: #000000;">&nbsp;(</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;k</span><span style="color: #000000;">=</span><span style="color: #000000;">j</span><span style="color: #000000;">+</span><span style="color: #000000;">1</span><span style="color: #000000;">;k</span><span style="color: #000000;">&lt;=</span><span style="color: #000000;">N;</span><span style="color: #000000;">++</span><span style="color: #000000;">k)<br></span><span style="color: #008080;">26</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">&nbsp;(F[pre][j][k]</span><span style="color: #000000;">&gt;=</span><span style="color: #000000;">0</span><span style="color: #000000;">)<br></span><span style="color: #008080;">27</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br></span><span style="color: #008080;">28</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">&nbsp;(list[i</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;">j</span><span style="color: #000000;">&amp;&amp;</span><span style="color: #000000;">list[i</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;">k)<br></span><span style="color: #008080;">29</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Update(F[pre</span><span style="color: #000000;">^</span><span style="color: #000000;">1</span><span style="color: #000000;">][j][k],F[pre][j][k]</span><span style="color: #000000;">+</span><span style="color: #000000;">G[list[i]][list[i</span><span style="color: #000000;">+</span><span style="color: #000000;">1</span><span style="color: #000000;">]]);<br></span><span style="color: #008080;">30</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">&nbsp;(list[i</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;">list[i]</span><span style="color: #000000;">&amp;&amp;</span><span style="color: #000000;">list[i</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;">k)<br></span><span style="color: #008080;">31</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">&nbsp;(k</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">list[i])&nbsp;&nbsp;&nbsp;&nbsp;Update(F[pre</span><span style="color: #000000;">^</span><span style="color: #000000;">1</span><span style="color: #000000;">][k][list[i]],F[pre][j][k]</span><span style="color: #000000;">+</span><span style="color: #000000;">G[j][list[i</span><span style="color: #000000;">+</span><span style="color: #000000;">1</span><span style="color: #000000;">]]);<br></span><span style="color: #008080;">32</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">else</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;Update(F[pre</span><span style="color: #000000;">^</span><span style="color: #000000;">1</span><span style="color: #000000;">][list[i]][k],F[pre][j][k]</span><span style="color: #000000;">+</span><span style="color: #000000;">G[j][list[i</span><span style="color: #000000;">+</span><span style="color: #000000;">1</span><span style="color: #000000;">]]);<br></span><span style="color: #008080;">33</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">&nbsp;(list[i</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;">list[i]</span><span style="color: #000000;">&amp;&amp;</span><span style="color: #000000;">list[i</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;">j)<br></span><span style="color: #008080;">34</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">&nbsp;(j</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">list[i])&nbsp;&nbsp;&nbsp;&nbsp;Update(F[pre</span><span style="color: #000000;">^</span><span style="color: #000000;">1</span><span style="color: #000000;">][j][list[i]],F[pre][j][k]</span><span style="color: #000000;">+</span><span style="color: #000000;">G[k][list[i</span><span style="color: #000000;">+</span><span style="color: #000000;">1</span><span style="color: #000000;">]]);<br></span><span style="color: #008080;">35</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">else</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;Update(F[pre</span><span style="color: #000000;">^</span><span style="color: #000000;">1</span><span style="color: #000000;">][list[i]][j],F[pre][j][k]</span><span style="color: #000000;">+</span><span style="color: #000000;">G[k][list[i</span><span style="color: #000000;">+</span><span style="color: #000000;">1</span><span style="color: #000000;">]]);<br></span><span style="color: #008080;">36</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br></span><span style="color: #008080;">37</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;}<br></span><span style="color: #008080;">38</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;ret</span><span style="color: #000000;">=</span><span style="color: #000000;">1</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">30</span><span style="color: #000000;">;<br></span><span style="color: #008080;">39</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">for</span><span style="color: #000000;">&nbsp;(</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;i</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;</span><span style="color: #000000;">++</span><span style="color: #000000;">i)<br></span><span style="color: #008080;">40</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">for</span><span style="color: #000000;">&nbsp;(</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;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;</span><span style="color: #000000;">++</span><span style="color: #000000;">j)<br></span><span style="color: #008080;">41</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">&nbsp;(F[Q</span><span style="color: #000000;">&amp;</span><span style="color: #000000;">1</span><span style="color: #000000;">][i][j]</span><span style="color: #000000;">&gt;=</span><span style="color: #000000;">0</span><span style="color: #000000;">)<br></span><span style="color: #008080;">42</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Update(ret,F[Q</span><span style="color: #000000;">&amp;</span><span style="color: #000000;">1</span><span style="color: #000000;">][i][j]);<br></span><span style="color: #008080;">43</span>&nbsp;<span style="color: #000000;">&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;">,ret);<br></span><span style="color: #008080;">44</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">0</span><span style="color: #000000;">;<br></span><span style="color: #008080;">45</span>&nbsp;<span style="color: #000000;">}<br></span><span style="color: #008080;">46</span>&nbsp;<span style="color: #000000;"></span></div>
<br> <img src ="http://www.cppblog.com/jsn1993/aggbug/116350.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/jsn1993/" target="_blank">jsn1993</a> 2010-05-26 08:56 <a href="http://www.cppblog.com/jsn1993/archive/2010/05/26/116350.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JSTSC 2010  nova</title><link>http://www.cppblog.com/jsn1993/archive/2010/05/26/116347.html</link><dc:creator>jsn1993</dc:creator><author>jsn1993</author><pubDate>Wed, 26 May 2010 00:35:00 GMT</pubDate><guid>http://www.cppblog.com/jsn1993/archive/2010/05/26/116347.html</guid><wfw:comment>http://www.cppblog.com/jsn1993/comments/116347.html</wfw:comment><comments>http://www.cppblog.com/jsn1993/archive/2010/05/26/116347.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/jsn1993/comments/commentRss/116347.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/jsn1993/services/trackbacks/116347.html</trackback:ping><description><![CDATA[题意：<br>给你N个lich，M个wizard，K个半径为Ri的wood (N,M,K&lt;=200)<br>第i个lich每Ti秒能杀死一个在Ri范围的wizard，但前提是lich跟wizard的连线与任何一个wood没有交<br>求最少多少时间lich能杀死所有wizard 或者判无解<br><br>做法：<br>首先可以想到 如果固定一个时间 那么每个lich能杀的个数是固定的<br>所以先二分答案<br>预处理每个lich可以到达的wizard<br>然后可以用网络流求解了 S向第i个lich连容量N/Ti+1，lich向能打到的wizard连容量1，wizard向T连容量1。<br>（难点不在于建图，在于计算几何预处理！）<br><br>
<div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: #008080;">&nbsp;&nbsp;1</span>&nbsp;<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></span><span style="color: #008080;">&nbsp;&nbsp;2</span>&nbsp;<span style="color: #000000;">#include&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">cstring</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br></span><span style="color: #008080;">&nbsp;&nbsp;3</span>&nbsp;<span style="color: #000000;">#include&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">algorithm</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br></span><span style="color: #008080;">&nbsp;&nbsp;4</span>&nbsp;<span style="color: #000000;"></span><span style="color: #0000ff;">using</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">namespace</span><span style="color: #000000;">&nbsp;std;<br></span><span style="color: #008080;">&nbsp;&nbsp;5</span>&nbsp;<span style="color: #000000;"></span><span style="color: #0000ff;">#define</span><span style="color: #000000;">&nbsp;n&nbsp;1005</span><span style="color: #000000;"><br></span><span style="color: #008080;">&nbsp;&nbsp;6</span>&nbsp;<span style="color: #000000;"></span><span style="color: #0000ff;">#define</span><span style="color: #000000;">&nbsp;m&nbsp;200005</span><span style="color: #000000;"><br></span><span style="color: #008080;">&nbsp;&nbsp;7</span>&nbsp;<span style="color: #000000;"></span><span style="color: #0000ff;">struct</span><span style="color: #000000;">&nbsp;TElement<br></span><span style="color: #008080;">&nbsp;&nbsp;8</span>&nbsp;<span style="color: #000000;">{<br></span><span style="color: #008080;">&nbsp;&nbsp;9</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;x,y,r,t;<br></span><span style="color: #008080;">&nbsp;10</span>&nbsp;<span style="color: #000000;">}&nbsp;&nbsp;&nbsp;&nbsp;lich[n],wizard[n],wood[n];<br></span><span style="color: #008080;">&nbsp;11</span>&nbsp;<span style="color: #000000;"></span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;vtx[m],ne[m],f[m],tot;<br></span><span style="color: #008080;">&nbsp;12</span>&nbsp;<span style="color: #000000;"></span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;L[n],d[n],pre[n],q[n];<br></span><span style="color: #008080;">&nbsp;13</span>&nbsp;<span style="color: #000000;"></span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;N,M,K,S,T,now,ret;<br></span><span style="color: #008080;">&nbsp;14</span>&nbsp;<span style="color: #000000;"></span><span style="color: #0000ff;">bool</span><span style="color: #000000;">&nbsp;G[n][n];<br></span><span style="color: #008080;">&nbsp;15</span>&nbsp;<span style="color: #000000;"><br></span><span style="color: #008080;">&nbsp;16</span>&nbsp;<span style="color: #000000;">inline&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;SQRdis(</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;x1,</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;y1,</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;x2,</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;y2)<br></span><span style="color: #008080;">&nbsp;17</span>&nbsp;<span style="color: #000000;">{<br></span><span style="color: #008080;">&nbsp;18</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;(x1</span><span style="color: #000000;">-</span><span style="color: #000000;">x2)</span><span style="color: #000000;">*</span><span style="color: #000000;">(x1</span><span style="color: #000000;">-</span><span style="color: #000000;">x2)</span><span style="color: #000000;">+</span><span style="color: #000000;">(y1</span><span style="color: #000000;">-</span><span style="color: #000000;">y2)</span><span style="color: #000000;">*</span><span style="color: #000000;">(y1</span><span style="color: #000000;">-</span><span style="color: #000000;">y2);<br></span><span style="color: #008080;">&nbsp;19</span>&nbsp;<span style="color: #000000;">}<br></span><span style="color: #008080;">&nbsp;20</span>&nbsp;<span style="color: #000000;">inline&nbsp;</span><span style="color: #0000ff;">bool</span><span style="color: #000000;">&nbsp;Inside(</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)<br></span><span style="color: #008080;">&nbsp;21</span>&nbsp;<span style="color: #000000;">{<br></span><span style="color: #008080;">&nbsp;22</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">for</span><span style="color: #000000;">&nbsp;(</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;i</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;">K;</span><span style="color: #000000;">++</span><span style="color: #000000;">i)<br></span><span style="color: #008080;">&nbsp;23</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">&nbsp;(SQRdis(x,y,wood[i].x,wood[i].y)</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">wood[i].r</span><span style="color: #000000;">*</span><span style="color: #000000;">wood[i].r)&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">1</span><span style="color: #000000;">;<br></span><span style="color: #008080;">&nbsp;24</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">0</span><span style="color: #000000;">;<br></span><span style="color: #008080;">&nbsp;25</span>&nbsp;<span style="color: #000000;">}<br></span><span style="color: #008080;">&nbsp;26</span>&nbsp;<span style="color: #000000;">inline&nbsp;</span><span style="color: #0000ff;">bool</span><span style="color: #000000;">&nbsp;Block(</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;i,</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;j)<br></span><span style="color: #008080;">&nbsp;27</span>&nbsp;<span style="color: #000000;">{<br></span><span style="color: #008080;">&nbsp;28</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;b</span><span style="color: #000000;">=</span><span style="color: #000000;">SQRdis(lich[i].x,lich[i].y,wizard[j].x,wizard[j].y);<br></span><span style="color: #008080;">&nbsp;29</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">for</span><span style="color: #000000;">&nbsp;(</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;k</span><span style="color: #000000;">=</span><span style="color: #000000;">1</span><span style="color: #000000;">;k</span><span style="color: #000000;">&lt;=</span><span style="color: #000000;">K;</span><span style="color: #000000;">++</span><span style="color: #000000;">k)<br></span><span style="color: #008080;">&nbsp;30</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;{<br></span><span style="color: #008080;">&nbsp;31</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;a</span><span style="color: #000000;">=</span><span style="color: #000000;">SQRdis(lich[i].x,lich[i].y,wood[k].x,wood[k].y);<br></span><span style="color: #008080;">&nbsp;32</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;c</span><span style="color: #000000;">=</span><span style="color: #000000;">SQRdis(wizard[j].x,wizard[j].y,wood[k].x,wood[k].y);<br></span><span style="color: #008080;">&nbsp;33</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">&nbsp;(a</span><span style="color: #000000;">+</span><span style="color: #000000;">b</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">c</span><span style="color: #000000;">||</span><span style="color: #000000;">c</span><span style="color: #000000;">+</span><span style="color: #000000;">b</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">a)&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">continue</span><span style="color: #000000;">;<br></span><span style="color: #008080;">&nbsp;34</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">double</span><span style="color: #000000;">&nbsp;y</span><span style="color: #000000;">=</span><span style="color: #000000;">c</span><span style="color: #000000;">-</span><span style="color: #000000;">(b</span><span style="color: #000000;">+</span><span style="color: #000000;">c</span><span style="color: #000000;">-</span><span style="color: #000000;">a)</span><span style="color: #000000;">*</span><span style="color: #000000;">(</span><span style="color: #0000ff;">long</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">long</span><span style="color: #000000;">)(b</span><span style="color: #000000;">+</span><span style="color: #000000;">c</span><span style="color: #000000;">-</span><span style="color: #000000;">a)</span><span style="color: #000000;">/</span><span style="color: #000000;">(</span><span style="color: #000000;">4.0</span><span style="color: #000000;">*</span><span style="color: #000000;">b);<br></span><span style="color: #008080;">&nbsp;35</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">&nbsp;(y</span><span style="color: #000000;">&lt;=</span><span style="color: #000000;">wood[k].r</span><span style="color: #000000;">*</span><span style="color: #000000;">wood[k].r)&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">1</span><span style="color: #000000;">;<br></span><span style="color: #008080;">&nbsp;36</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;}<br></span><span style="color: #008080;">&nbsp;37</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">0</span><span style="color: #000000;">;<br></span><span style="color: #008080;">&nbsp;38</span>&nbsp;<span style="color: #000000;">}<br></span><span style="color: #008080;">&nbsp;39</span>&nbsp;<span style="color: #000000;">inline&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;Ins(</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;u,</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;v,</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;fl)<br></span><span style="color: #008080;">&nbsp;40</span>&nbsp;<span style="color: #000000;">{<br></span><span style="color: #008080;">&nbsp;41</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;vtx[</span><span style="color: #000000;">++</span><span style="color: #000000;">tot]</span><span style="color: #000000;">=</span><span style="color: #000000;">v;f[tot]</span><span style="color: #000000;">=</span><span style="color: #000000;">fl;ne[tot]</span><span style="color: #000000;">=</span><span style="color: #000000;">L[u];L[u]</span><span style="color: #000000;">=</span><span style="color: #000000;">tot;<br></span><span style="color: #008080;">&nbsp;42</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;vtx[</span><span style="color: #000000;">++</span><span style="color: #000000;">tot]</span><span style="color: #000000;">=</span><span style="color: #000000;">u;f[tot]</span><span style="color: #000000;">=</span><span style="color: #000000;">0</span><span style="color: #000000;">;ne[tot]</span><span style="color: #000000;">=</span><span style="color: #000000;">L[v];L[v]</span><span style="color: #000000;">=</span><span style="color: #000000;">tot;<br></span><span style="color: #008080;">&nbsp;43</span>&nbsp;<span style="color: #000000;">}<br></span><span style="color: #008080;">&nbsp;44</span>&nbsp;<span style="color: #000000;">inline&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;push()<br></span><span style="color: #008080;">&nbsp;45</span>&nbsp;<span style="color: #000000;">{<br></span><span style="color: #008080;">&nbsp;46</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;fl</span><span style="color: #000000;">=</span><span style="color: #000000;">1</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">30</span><span style="color: #000000;">;<br></span><span style="color: #008080;">&nbsp;47</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">for</span><span style="color: #000000;">&nbsp;(</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;i</span><span style="color: #000000;">=</span><span style="color: #000000;">T;i</span><span style="color: #000000;">!=</span><span style="color: #000000;">S;i</span><span style="color: #000000;">=</span><span style="color: #000000;">vtx[pre[i]</span><span style="color: #000000;">^</span><span style="color: #000000;">1</span><span style="color: #000000;">])<br></span><span style="color: #008080;">&nbsp;48</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fl</span><span style="color: #000000;">=</span><span style="color: #000000;">min(fl,f[pre[i]]);<br></span><span style="color: #008080;">&nbsp;49</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;ret</span><span style="color: #000000;">+=</span><span style="color: #000000;">fl;<br></span><span style="color: #008080;">&nbsp;50</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">for</span><span style="color: #000000;">&nbsp;(</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;i</span><span style="color: #000000;">=</span><span style="color: #000000;">T;i</span><span style="color: #000000;">!=</span><span style="color: #000000;">S;i</span><span style="color: #000000;">=</span><span style="color: #000000;">vtx[pre[i]</span><span style="color: #000000;">^</span><span style="color: #000000;">1</span><span style="color: #000000;">])<br></span><span style="color: #008080;">&nbsp;51</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;{<br></span><span style="color: #008080;">&nbsp;52</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;f[pre[i]]</span><span style="color: #000000;">-=</span><span style="color: #000000;">fl,f[pre[i]</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;">fl;<br></span><span style="color: #008080;">&nbsp;53</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">&nbsp;(</span><span style="color: #000000;">!</span><span style="color: #000000;">f[pre[i]])&nbsp;&nbsp;&nbsp;&nbsp;now</span><span style="color: #000000;">=</span><span style="color: #000000;">vtx[pre[i]</span><span style="color: #000000;">^</span><span style="color: #000000;">1</span><span style="color: #000000;">];<br></span><span style="color: #008080;">&nbsp;54</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;}<br></span><span style="color: #008080;">&nbsp;55</span>&nbsp;<span style="color: #000000;">}<br></span><span style="color: #008080;">&nbsp;56</span>&nbsp;<span style="color: #000000;">inline&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;dinic(</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;u)<br></span><span style="color: #008080;">&nbsp;57</span>&nbsp;<span style="color: #000000;">{<br></span><span style="color: #008080;">&nbsp;58</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">&nbsp;(u</span><span style="color: #000000;">==</span><span style="color: #000000;">T)&nbsp;&nbsp;&nbsp;&nbsp;push();<br></span><span style="color: #008080;">&nbsp;59</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">else</span><span style="color: #000000;"><br></span><span style="color: #008080;">&nbsp;60</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;{<br></span><span style="color: #008080;">&nbsp;61</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">for</span><span style="color: #000000;">&nbsp;(</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;p</span><span style="color: #000000;">=</span><span style="color: #000000;">L[u],v</span><span style="color: #000000;">=</span><span style="color: #000000;">vtx[p];p;v</span><span style="color: #000000;">=</span><span style="color: #000000;">vtx[p</span><span style="color: #000000;">=</span><span style="color: #000000;">ne[p]])<br></span><span style="color: #008080;">&nbsp;62</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">&nbsp;(f[p]</span><span style="color: #000000;">&amp;&amp;</span><span style="color: #000000;">d[u]</span><span style="color: #000000;">+</span><span style="color: #000000;">1</span><span style="color: #000000;">==</span><span style="color: #000000;">d[v])<br></span><span style="color: #008080;">&nbsp;63</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br></span><span style="color: #008080;">&nbsp;64</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pre[v]</span><span style="color: #000000;">=</span><span style="color: #000000;">p,dinic(v);<br></span><span style="color: #008080;">&nbsp;65</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">&nbsp;(d[now]</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">d[u])&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">;<br></span><span style="color: #008080;">&nbsp;66</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;now</span><span style="color: #000000;">=</span><span style="color: #000000;">T;<br></span><span style="color: #008080;">&nbsp;67</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br></span><span style="color: #008080;">&nbsp;68</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;d[u]</span><span style="color: #000000;">=-</span><span style="color: #000000;">1</span><span style="color: #000000;">;<br></span><span style="color: #008080;">&nbsp;69</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;}<br></span><span style="color: #008080;">&nbsp;70</span>&nbsp;<span style="color: #000000;">}<br></span><span style="color: #008080;">&nbsp;71</span>&nbsp;<span style="color: #000000;">inline&nbsp;</span><span style="color: #0000ff;">bool</span><span style="color: #000000;">&nbsp;extend()<br></span><span style="color: #008080;">&nbsp;72</span>&nbsp;<span style="color: #000000;">{<br></span><span style="color: #008080;">&nbsp;73</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;memset(d,</span><span style="color: #000000;">63</span><span style="color: #000000;">,</span><span style="color: #0000ff;">sizeof</span><span style="color: #000000;">(d));<br></span><span style="color: #008080;">&nbsp;74</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;d[q[</span><span style="color: #000000;">1</span><span style="color: #000000;">]</span><span style="color: #000000;">=</span><span style="color: #000000;">S]</span><span style="color: #000000;">=</span><span style="color: #000000;">0</span><span style="color: #000000;">,now</span><span style="color: #000000;">=</span><span style="color: #000000;">T;<br></span><span style="color: #008080;">&nbsp;75</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">for</span><span style="color: #000000;">&nbsp;(</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;h</span><span style="color: #000000;">=</span><span style="color: #000000;">1</span><span style="color: #000000;">,t</span><span style="color: #000000;">=</span><span style="color: #000000;">1</span><span style="color: #000000;">,u</span><span style="color: #000000;">=</span><span style="color: #000000;">q[h];h</span><span style="color: #000000;">&lt;=</span><span style="color: #000000;">t;u</span><span style="color: #000000;">=</span><span style="color: #000000;">q[</span><span style="color: #000000;">++</span><span style="color: #000000;">h])<br></span><span style="color: #008080;">&nbsp;76</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">for</span><span style="color: #000000;">&nbsp;(</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;p</span><span style="color: #000000;">=</span><span style="color: #000000;">L[u],v</span><span style="color: #000000;">=</span><span style="color: #000000;">vtx[p];p;v</span><span style="color: #000000;">=</span><span style="color: #000000;">vtx[p</span><span style="color: #000000;">=</span><span style="color: #000000;">ne[p]])<br></span><span style="color: #008080;">&nbsp;77</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">&nbsp;(f[p]</span><span style="color: #000000;">&amp;&amp;</span><span style="color: #000000;">d[v]</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">(</span><span style="color: #000000;">1</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">29</span><span style="color: #000000;">))<br></span><span style="color: #008080;">&nbsp;78</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;{<br></span><span style="color: #008080;">&nbsp;79</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;d[v]</span><span style="color: #000000;">=</span><span style="color: #000000;">d[u]</span><span style="color: #000000;">+</span><span style="color: #000000;">1</span><span style="color: #000000;">;<br></span><span style="color: #008080;">&nbsp;80</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">&nbsp;(v</span><span style="color: #000000;">==</span><span style="color: #000000;">T)&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">1</span><span style="color: #000000;">;<br></span><span style="color: #008080;">&nbsp;81</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;q[</span><span style="color: #000000;">++</span><span style="color: #000000;">t]</span><span style="color: #000000;">=</span><span style="color: #000000;">v;<br></span><span style="color: #008080;">&nbsp;82</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;}<br></span><span style="color: #008080;">&nbsp;83</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">0</span><span style="color: #000000;">;<br></span><span style="color: #008080;">&nbsp;84</span>&nbsp;<span style="color: #000000;">}<br></span><span style="color: #008080;">&nbsp;85</span>&nbsp;<span style="color: #000000;">inline&nbsp;</span><span style="color: #0000ff;">bool</span><span style="color: #000000;">&nbsp;check(</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;Time)<br></span><span style="color: #008080;">&nbsp;86</span>&nbsp;<span style="color: #000000;">{<br></span><span style="color: #008080;">&nbsp;87</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;memset(L,</span><span style="color: #000000;">0</span><span style="color: #000000;">,</span><span style="color: #0000ff;">sizeof</span><span style="color: #000000;">(L));<br></span><span style="color: #008080;">&nbsp;88</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;tot</span><span style="color: #000000;">=</span><span style="color: #000000;">1</span><span style="color: #000000;">,ret</span><span style="color: #000000;">=</span><span style="color: #000000;">0</span><span style="color: #000000;">;<br></span><span style="color: #008080;">&nbsp;89</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">for</span><span style="color: #000000;">&nbsp;(</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;i</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;</span><span style="color: #000000;">++</span><span style="color: #000000;">i)<br></span><span style="color: #008080;">&nbsp;90</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">&nbsp;(lich[i].t)&nbsp;&nbsp;&nbsp;&nbsp;Ins(S,i,</span><span style="color: #000000;">1</span><span style="color: #000000;">+</span><span style="color: #000000;">Time</span><span style="color: #000000;">/</span><span style="color: #000000;">lich[i].t);<br></span><span style="color: #008080;">&nbsp;91</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">else</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;Ins(S,i,</span><span style="color: #000000;">1</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">30</span><span style="color: #000000;">);<br></span><span style="color: #008080;">&nbsp;92</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">for</span><span style="color: #000000;">&nbsp;(</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;i</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;</span><span style="color: #000000;">++</span><span style="color: #000000;">i)<br></span><span style="color: #008080;">&nbsp;93</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">for</span><span style="color: #000000;">&nbsp;(</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;j</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;">M;</span><span style="color: #000000;">++</span><span style="color: #000000;">j)<br></span><span style="color: #008080;">&nbsp;94</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">&nbsp;(G[i][j])&nbsp;&nbsp;&nbsp;&nbsp;Ins(i,j</span><span style="color: #000000;">+</span><span style="color: #000000;">N,</span><span style="color: #000000;">1</span><span style="color: #000000;">);<br></span><span style="color: #008080;">&nbsp;95</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">for</span><span style="color: #000000;">&nbsp;(</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;j</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;">M;</span><span style="color: #000000;">++</span><span style="color: #000000;">j)<br></span><span style="color: #008080;">&nbsp;96</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ins(j</span><span style="color: #000000;">+</span><span style="color: #000000;">N,T,</span><span style="color: #000000;">1</span><span style="color: #000000;">);<br></span><span style="color: #008080;">&nbsp;97</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">for</span><span style="color: #000000;">&nbsp;(;extend();dinic(S));<br></span><span style="color: #008080;">&nbsp;98</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;ret</span><span style="color: #000000;">==</span><span style="color: #000000;">M;<br></span><span style="color: #008080;">&nbsp;99</span>&nbsp;<span style="color: #000000;">}<br></span><span style="color: #008080;">100</span>&nbsp;<span style="color: #000000;"></span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;main()<br></span><span style="color: #008080;">101</span>&nbsp;<span style="color: #000000;">{<br></span><span style="color: #008080;">102</span>&nbsp;<span style="color: #000000;">&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;">N,</span><span style="color: #000000;">&amp;</span><span style="color: #000000;">M,</span><span style="color: #000000;">&amp;</span><span style="color: #000000;">K);<br></span><span style="color: #008080;">103</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">for</span><span style="color: #000000;">&nbsp;(</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;i</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;</span><span style="color: #000000;">++</span><span style="color: #000000;">i)<br></span><span style="color: #008080;">104</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;scanf(</span><span style="color: #000000;">"</span><span style="color: #000000;">%d%d%d%d</span><span style="color: #000000;">"</span><span style="color: #000000;">,</span><span style="color: #000000;">&amp;</span><span style="color: #000000;">lich[i].x,</span><span style="color: #000000;">&amp;</span><span style="color: #000000;">lich[i].y,</span><span style="color: #000000;">&amp;</span><span style="color: #000000;">lich[i].r,</span><span style="color: #000000;">&amp;</span><span style="color: #000000;">lich[i].t);<br></span><span style="color: #008080;">105</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">for</span><span style="color: #000000;">&nbsp;(</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;i</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;">M;</span><span style="color: #000000;">++</span><span style="color: #000000;">i)<br></span><span style="color: #008080;">106</span>&nbsp;<span style="color: #000000;">&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;">wizard[i].x,</span><span style="color: #000000;">&amp;</span><span style="color: #000000;">wizard[i].y);<br></span><span style="color: #008080;">107</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">for</span><span style="color: #000000;">&nbsp;(</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;i</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;">K;</span><span style="color: #000000;">++</span><span style="color: #000000;">i)<br></span><span style="color: #008080;">108</span>&nbsp;<span style="color: #000000;">&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;">wood[i].x,</span><span style="color: #000000;">&amp;</span><span style="color: #000000;">wood[i].y,</span><span style="color: #000000;">&amp;</span><span style="color: #000000;">wood[i].r);<br></span><span style="color: #008080;">109</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">for</span><span style="color: #000000;">&nbsp;(</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;i</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;</span><span style="color: #000000;">++</span><span style="color: #000000;">i)<br></span><span style="color: #008080;">110</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;{<br></span><span style="color: #008080;">111</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">&nbsp;(Inside(lich[i].x,lich[i].y))&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">continue</span><span style="color: #000000;">;<br></span><span style="color: #008080;">112</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">for</span><span style="color: #000000;">&nbsp;(</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;j</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;">M;</span><span style="color: #000000;">++</span><span style="color: #000000;">j)<br></span><span style="color: #008080;">113</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br></span><span style="color: #008080;">114</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">&nbsp;(Inside(wizard[j].x,wizard[j].y))&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">continue</span><span style="color: #000000;">;<br></span><span style="color: #008080;">115</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">&nbsp;(SQRdis(lich[i].x,lich[i].y,wizard[j].x,wizard[j].y)</span><span style="color: #000000;">&lt;=</span><span style="color: #000000;">lich[i].r</span><span style="color: #000000;">*</span><span style="color: #000000;">lich[i].r)<br></span><span style="color: #008080;">116</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">&nbsp;(</span><span style="color: #000000;">!</span><span style="color: #000000;">Block(i,j))&nbsp;&nbsp;&nbsp;&nbsp;G[i][j]</span><span style="color: #000000;">=</span><span style="color: #000000;">1</span><span style="color: #000000;">;<br></span><span style="color: #008080;">117</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br></span><span style="color: #008080;">118</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;}<br></span><span style="color: #008080;">119</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;S</span><span style="color: #000000;">=</span><span style="color: #000000;">N</span><span style="color: #000000;">+</span><span style="color: #000000;">M</span><span style="color: #000000;">+</span><span style="color: #000000;">1</span><span style="color: #000000;">,T</span><span style="color: #000000;">=</span><span style="color: #000000;">S</span><span style="color: #000000;">+</span><span style="color: #000000;">1</span><span style="color: #000000;">;<br></span><span style="color: #008080;">120</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;l</span><span style="color: #000000;">=</span><span style="color: #000000;">0</span><span style="color: #000000;">,r</span><span style="color: #000000;">=</span><span style="color: #000000;">2000000000</span><span style="color: #000000;">,mid;<br></span><span style="color: #008080;">121</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">&nbsp;(</span><span style="color: #000000;">!</span><span style="color: #000000;">check(r))&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;puts(</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;">0</span><span style="color: #000000;">;<br></span><span style="color: #008080;">122</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">&nbsp;(check(l))&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;puts(</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;">0</span><span style="color: #000000;">;<br></span><span style="color: #008080;">123</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">for</span><span style="color: #000000;">&nbsp;(;l</span><span style="color: #000000;">+</span><span style="color: #000000;">1</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">r;)<br></span><span style="color: #008080;">124</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">&nbsp;(mid</span><span style="color: #000000;">=</span><span style="color: #000000;">(l</span><span style="color: #000000;">+</span><span style="color: #000000;">r)</span><span style="color: #000000;">&gt;&gt;</span><span style="color: #000000;">1</span><span style="color: #000000;">,check(mid))&nbsp;&nbsp;&nbsp;&nbsp;r</span><span style="color: #000000;">=</span><span style="color: #000000;">mid;<br></span><span style="color: #008080;">125</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">else</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;l</span><span style="color: #000000;">=</span><span style="color: #000000;">mid;<br></span><span style="color: #008080;">126</span>&nbsp;<span style="color: #000000;">&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;">,r);<br></span><span style="color: #008080;">127</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">0</span><span style="color: #000000;">;<br></span><span style="color: #008080;">128</span>&nbsp;<span style="color: #000000;">}<br></span><span style="color: #008080;">129</span>&nbsp;<span style="color: #000000;"></span></div>
<br><br> <img src ="http://www.cppblog.com/jsn1993/aggbug/116347.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/jsn1993/" target="_blank">jsn1993</a> 2010-05-26 08:35 <a href="http://www.cppblog.com/jsn1993/archive/2010/05/26/116347.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>【除草】Baltic OI 2010 day2 candies</title><link>http://www.cppblog.com/jsn1993/archive/2010/05/21/116026.html</link><dc:creator>jsn1993</dc:creator><author>jsn1993</author><pubDate>Fri, 21 May 2010 07:10:00 GMT</pubDate><guid>http://www.cppblog.com/jsn1993/archive/2010/05/21/116026.html</guid><wfw:comment>http://www.cppblog.com/jsn1993/comments/116026.html</wfw:comment><comments>http://www.cppblog.com/jsn1993/archive/2010/05/21/116026.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cppblog.com/jsn1993/comments/commentRss/116026.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/jsn1993/services/trackbacks/116026.html</trackback:ping><description><![CDATA[很久没写了。。。<br><br>题意：<br>给你一个装箱问题(N&lt;=100 Ai&lt;=7000)&nbsp; 记用这些有限物品能拼成的重量种数为Ans<br>求 把i物品Ai 换成X后 使新的能得到的重量种数Ret最大 同时使X最小 求X和Ret<br><br>做法：<br>这个题我做了一晚上加一上午！！<br><br>猜想：<br>换一个物品 等价于 先去掉这个物品做N-1个物品 最后加入一个物品并更新<br>（写了个暴力&nbsp; 是符合的）<br>然后就将问题变为了真正的两问：<br>第一问，求X使得除了X的N-1个物品能得到的种数Ans'最大<br>（因为最终方案一样 所以得删一个最没用的）<br>第二问，添加一个物品 使得最后得到的最大<br><br>对于第一问&nbsp;&nbsp; 一个简单的想法便是枚举去掉哪个物品 做100次装箱问题<br>但是我们还是遇到了瓶颈&nbsp; 做一次装箱问题复杂度O(100^2*7000) 枚举的话 做一次就得0.5秒 根本无法满足<br>（很不幸我想不到不枚举的方法 只能用区间背包这个不好估计复杂度的来完成 实际效果确实还得TLE）<br><br><span style="FONT-FAMILY: 幼圆">【我的做法便是将100个物品分为10组 枚举每10个物品 先将另外90个物品做好区间背包 保存这个答案数组</span><br style="FONT-FAMILY: 幼圆"><span style="FONT-FAMILY: 幼圆">然后对于这10个物品 每次添加9个物品</span><br style="FONT-FAMILY: 幼圆"><span style="FONT-FAMILY: 幼圆">算下复杂度</span><br style="FONT-FAMILY: 幼圆"><span style="FONT-FAMILY: 幼圆">原本要放进99*100=9900次物品</span><br style="FONT-FAMILY: 幼圆"><span style="FONT-FAMILY: 幼圆">现在 90*10+9*9*10=2000次左右 整整减少了5倍！</span>】<br><br>对于第二问&nbsp;&nbsp; 事实上我们可以发现&nbsp; 添加Y=(∑Ai)-X+1这个物品是肯定可以将方案数增加最多的 因为<br>假设用N-1个物品能得到的装箱数组是<br>1 2 3 4 5 6 7 8 9 10 11 12<br>o x o o o x o o x o&nbsp;&nbsp; x&nbsp;&nbsp; x&nbsp; ....<br>那么11必然是一个使方案最大可行解 亦可能是最优解<br>所以我们如果要找一个比Y更优的解 必然要满足原本拥有的所有解加上Y'&nbsp;&nbsp;&nbsp; 原本都不可行！<br><br>这样就把问题转化为如下：<br>对于一个1..700000的布尔数组A 求一个最小的X<br>使得对于任意一个i A[i]=1 A[i+X]=0。<br>（很不幸除了枚举X 这一问我也不会做 ）<br><br>【我的做法<br>先预处理前缀和&nbsp; 即从1开始到i能拼成的个数<br>先把这个枚举加些剪枝 将原来拼不成的重量进行枚举<br>再从这些拼不成的重量里枚举X &nbsp; 因为区间背包算出来的是许多个区间 最后枚举这些区间 <br>对于一个区间[a,b] 如果X是可行的那必然有 sum(a+X,b+X)=0】<br><br>事实上这么做居然就过了！因为区间数不太多 我能构造的最牛逼的数据 也只能 O(300000*5000) 这个还是勉强能跑过的<br>对于官方数据 每个点都能在0.2s内跑过！！<br><br>这样终于AC了此题！！<br><br>（另外求标准的优美的算法!!!!!!!!!） <br><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; BORDER-TOP: #cccccc 1px solid; BORDER-RIGHT: #cccccc 1px solid; PADDING-TOP: 4px"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="COLOR: #008080">&nbsp;&nbsp;1</span>&nbsp;<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></span><span style="COLOR: #008080">&nbsp;&nbsp;2</span>&nbsp;<span style="COLOR: #000000">#include&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">cstring</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">&nbsp;&nbsp;3</span>&nbsp;<span style="COLOR: #000000">#include&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">algorithm</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">&nbsp;&nbsp;4</span>&nbsp;<span style="COLOR: #000000"></span><span style="COLOR: #0000ff">#define</span><span style="COLOR: #000000">&nbsp;n&nbsp;20005</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">&nbsp;&nbsp;5</span>&nbsp;<span style="COLOR: #000000"></span><span style="COLOR: #0000ff">using</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">namespace</span><span style="COLOR: #000000">&nbsp;std;<br></span><span style="COLOR: #008080">&nbsp;&nbsp;6</span>&nbsp;<span style="COLOR: #000000"></span><span style="COLOR: #0000ff">struct</span><span style="COLOR: #000000">&nbsp;Tintv<br></span><span style="COLOR: #008080">&nbsp;&nbsp;7</span>&nbsp;<span style="COLOR: #000000">{<br></span><span style="COLOR: #008080">&nbsp;&nbsp;8</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;x,y;<br></span><span style="COLOR: #008080">&nbsp;&nbsp;9</span>&nbsp;<span style="COLOR: #000000">}&nbsp;&nbsp;&nbsp;&nbsp;P[n],Q[n],R[n],Ptmp[n];<br></span><span style="COLOR: #008080">&nbsp;10</span>&nbsp;<span style="COLOR: #000000"></span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;len,sum,lentmp,N,M,A[</span><span style="COLOR: #000000">105</span><span style="COLOR: #000000">],list[</span><span style="COLOR: #000000">30</span><span style="COLOR: #000000">];<br></span><span style="COLOR: #008080">&nbsp;11</span>&nbsp;<span style="COLOR: #000000"></span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;H[n],v[n],d[n],HLength,S[</span><span style="COLOR: #000000">1400005</span><span style="COLOR: #000000">];<br></span><span style="COLOR: #008080">&nbsp;12</span>&nbsp;<span style="COLOR: #000000"></span><span style="COLOR: #0000ff">bool</span><span style="COLOR: #000000">&nbsp;F[</span><span style="COLOR: #000000">1400005</span><span style="COLOR: #000000">];<br></span><span style="COLOR: #008080">&nbsp;13</span>&nbsp;<span style="COLOR: #000000">inline&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;Calc(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;Left,</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;Right,</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;u,</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;v)<br></span><span style="COLOR: #008080">&nbsp;14</span>&nbsp;<span style="COLOR: #000000">{<br></span><span style="COLOR: #008080">&nbsp;15</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;R[</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">].x</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">R[</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">].y</span><span style="COLOR: #000000">=-</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">;<br></span><span style="COLOR: #008080">&nbsp;16</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;l</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">Left;l</span><span style="COLOR: #000000">&lt;=</span><span style="COLOR: #000000">Right;</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">l)<br></span><span style="COLOR: #008080">&nbsp;17</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(l</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">u</span><span style="COLOR: #000000">||</span><span style="COLOR: #000000">l</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000">v)<br></span><span style="COLOR: #008080">&nbsp;18</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;{<br></span><span style="COLOR: #008080">&nbsp;19</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;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">len;</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">i)<br></span><span style="COLOR: #008080">&nbsp;20</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Q[i].x</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">P[i].x</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">A[l],Q[i].y</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">P[i].y</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">A[l];<br></span><span style="COLOR: #008080">&nbsp;21</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;r</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;<br></span><span style="COLOR: #008080">&nbsp;22</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;p</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">,q</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">;p</span><span style="COLOR: #000000">&lt;=</span><span style="COLOR: #000000">len</span><span style="COLOR: #000000">||</span><span style="COLOR: #000000">q</span><span style="COLOR: #000000">&lt;=</span><span style="COLOR: #000000">len;)<br></span><span style="COLOR: #008080">&nbsp;23</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(p</span><span style="COLOR: #000000">&lt;=</span><span style="COLOR: #000000">len</span><span style="COLOR: #000000">&amp;&amp;</span><span style="COLOR: #000000">(q</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000">len</span><span style="COLOR: #000000">||</span><span style="COLOR: #000000">P[p].x</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">Q[q].x))<br></span><span style="COLOR: #008080">&nbsp;24</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br></span><span style="COLOR: #008080">&nbsp;25</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(R[r].y</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">&gt;=</span><span style="COLOR: #000000">P[p].x)&nbsp;&nbsp;&nbsp;&nbsp;R[r].y</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">max(R[r].y,P[p].y);<br></span><span style="COLOR: #008080">&nbsp;26</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">else</span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;R[</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">r].x</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">P[p].x,R[r].y</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">P[p].y;<br></span><span style="COLOR: #008080">&nbsp;27</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">p;<br></span><span style="COLOR: #008080">&nbsp;28</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br></span><span style="COLOR: #008080">&nbsp;29</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">else</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">&nbsp;30</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br></span><span style="COLOR: #008080">&nbsp;31</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(R[r].y</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">&gt;=</span><span style="COLOR: #000000">Q[q].x)&nbsp;&nbsp;&nbsp;&nbsp;R[r].y</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">max(R[r].y,Q[q].y);<br></span><span style="COLOR: #008080">&nbsp;32</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">else</span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;R[</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">r].x</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">Q[q].x,R[r].y</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">Q[q].y;<br></span><span style="COLOR: #008080">&nbsp;33</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">q;<br></span><span style="COLOR: #008080">&nbsp;34</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br></span><span style="COLOR: #008080">&nbsp;35</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;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">r;</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">i)<br></span><span style="COLOR: #008080">&nbsp;36</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;P[i]</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">R[i];<br></span><span style="COLOR: #008080">&nbsp;37</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;len</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">r;<br></span><span style="COLOR: #008080">&nbsp;38</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;}<br></span><span style="COLOR: #008080">&nbsp;39</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;tmp</span><span style="COLOR: #000000">=-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">;<br></span><span style="COLOR: #008080">&nbsp;40</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;i</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">len;</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">i)<br></span><span style="COLOR: #008080">&nbsp;41</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tmp</span><span style="COLOR: #000000">+=</span><span style="COLOR: #000000">P[i].y</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">P[i].x</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">;<br></span><span style="COLOR: #008080">&nbsp;42</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;tmp;<br></span><span style="COLOR: #008080">&nbsp;43</span>&nbsp;<span style="COLOR: #000000">}<br></span><span style="COLOR: #008080">&nbsp;44</span>&nbsp;<span style="COLOR: #000000">inline&nbsp;</span><span style="COLOR: #0000ff">bool</span><span style="COLOR: #000000">&nbsp;check(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;u)<br></span><span style="COLOR: #008080">&nbsp;45</span>&nbsp;<span style="COLOR: #000000">{<br></span><span style="COLOR: #008080">&nbsp;46</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;i</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">len;</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">i)<br></span><span style="COLOR: #008080">&nbsp;47</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(S[P[i].y</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">u]</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">S[P[i].x</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">u</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">]</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000">0</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></span><span style="COLOR: #008080">&nbsp;48</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">;<br></span><span style="COLOR: #008080">&nbsp;49</span>&nbsp;<span style="COLOR: #000000">}<br></span><span style="COLOR: #008080">&nbsp;50</span>&nbsp;<span style="COLOR: #000000"></span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;main()<br></span><span style="COLOR: #008080">&nbsp;51</span>&nbsp;<span style="COLOR: #000000">{<br></span><span style="COLOR: #008080">&nbsp;52</span>&nbsp;<span style="COLOR: #000000">&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></span><span style="COLOR: #008080">&nbsp;53</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;i</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;</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">i)<br></span><span style="COLOR: #008080">&nbsp;54</span>&nbsp;<span style="COLOR: #000000">&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">A[i]),M</span><span style="COLOR: #000000">+=</span><span style="COLOR: #000000">A[i];<br></span><span style="COLOR: #008080">&nbsp;55</span>&nbsp;<span style="COLOR: #000000">&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">N</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">);<br></span><span style="COLOR: #008080">&nbsp;56</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;ret</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">,Ret</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">,tmp;<br></span><span style="COLOR: #008080">&nbsp;57</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;list[</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">list[</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">;<br></span><span style="COLOR: #008080">&nbsp;58</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;i</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">10</span><span style="COLOR: #000000">)<br></span><span style="COLOR: #008080">&nbsp;59</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;{<br></span><span style="COLOR: #008080">&nbsp;60</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tmp</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">i</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">10</span><span style="COLOR: #000000">;<br></span><span style="COLOR: #008080">&nbsp;61</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(tmp</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000">N)&nbsp;&nbsp;&nbsp;&nbsp;tmp</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">N</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">;<br></span><span style="COLOR: #008080">&nbsp;62</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;list[</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">list[</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">]]</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">tmp;<br></span><span style="COLOR: #008080">&nbsp;63</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;}<br></span><span style="COLOR: #008080">&nbsp;64</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;i</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">list[</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">];</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">i)<br></span><span style="COLOR: #008080">&nbsp;65</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;{<br></span><span style="COLOR: #008080">&nbsp;66</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;memset(P,</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">,</span><span style="COLOR: #0000ff">sizeof</span><span style="COLOR: #000000">(P)),len</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">;<br></span><span style="COLOR: #008080">&nbsp;67</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sum</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">Calc(</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">,N,list[i],list[i</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">1</span><span style="COLOR: #000000">);<br></span><span style="COLOR: #008080">&nbsp;68</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;memcpy(Ptmp,P,</span><span style="COLOR: #0000ff">sizeof</span><span style="COLOR: #000000">(P));<br></span><span style="COLOR: #008080">&nbsp;69</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lentmp</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">len;<br></span><span style="COLOR: #008080">&nbsp;70</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;j</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">list[i];j</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">list[i</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">j)<br></span><span style="COLOR: #008080">&nbsp;71</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(A[j]</span><span style="COLOR: #000000">!=</span><span style="COLOR: #000000">A[j</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">])<br></span><span style="COLOR: #008080">&nbsp;72</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br></span><span style="COLOR: #008080">&nbsp;73</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;len</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">lentmp;<br></span><span style="COLOR: #008080">&nbsp;74</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;memcpy(P,Ptmp,</span><span style="COLOR: #0000ff">sizeof</span><span style="COLOR: #000000">(Ptmp));<br></span><span style="COLOR: #008080">&nbsp;75</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tmp</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">Calc(list[i],list[i</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">1</span><span style="COLOR: #000000">,j,j);<br></span><span style="COLOR: #008080">&nbsp;76</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(tmp</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000">Ret)&nbsp;&nbsp;&nbsp;&nbsp;ret</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">j,Ret</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">tmp;<br></span><span style="COLOR: #008080">&nbsp;77</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br></span><span style="COLOR: #008080">&nbsp;78</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;}<br></span><span style="COLOR: #008080">&nbsp;79</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;printf(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">%d&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,A[ret]);<br></span><span style="COLOR: #008080">&nbsp;80</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;memset(P,</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">,</span><span style="COLOR: #0000ff">sizeof</span><span style="COLOR: #000000">(P)),len</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">;<br></span><span style="COLOR: #008080">&nbsp;81</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;Calc(</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">,N,ret,ret);<br></span><span style="COLOR: #008080">&nbsp;82</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;i</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">len;</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">i)<br></span><span style="COLOR: #008080">&nbsp;83</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;j</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">P[i].x;j</span><span style="COLOR: #000000">&lt;=</span><span style="COLOR: #000000">P[i].y;</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">j)<br></span><span style="COLOR: #008080">&nbsp;84</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;S[j]</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">;<br></span><span style="COLOR: #008080">&nbsp;85</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;i</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">1400000</span><span style="COLOR: #000000">;</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">i)<br></span><span style="COLOR: #008080">&nbsp;86</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;S[i]</span><span style="COLOR: #000000">+=</span><span style="COLOR: #000000">S[i</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">];<br></span><span style="COLOR: #008080">&nbsp;87</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">len;<br></span><span style="COLOR: #008080">&nbsp;88</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;P[len].x</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">P[len</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">].y</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">;<br></span><span style="COLOR: #008080">&nbsp;89</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;P[len].y</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">&lt;&lt;</span><span style="COLOR: #000000">30</span><span style="COLOR: #000000">;<br></span><span style="COLOR: #008080">&nbsp;90</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;i</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">len;</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">i)<br></span><span style="COLOR: #008080">&nbsp;91</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;{<br></span><span style="COLOR: #008080">&nbsp;92</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">bool</span><span style="COLOR: #000000">&nbsp;mk</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;<br></span><span style="COLOR: #008080">&nbsp;93</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;j</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">P[i].y</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">P[i</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">].x;</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">j)<br></span><span style="COLOR: #008080">&nbsp;94</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(check(j))&nbsp;&nbsp;<br></span><span style="COLOR: #008080">&nbsp;95</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br></span><span style="COLOR: #008080">&nbsp;96</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ret</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">j;mk</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">;</span><span style="COLOR: #0000ff">break</span><span style="COLOR: #000000">;<br></span><span style="COLOR: #008080">&nbsp;97</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br></span><span style="COLOR: #008080">&nbsp;98</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(mk)&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">break</span><span style="COLOR: #000000">;<br></span><span style="COLOR: #008080">&nbsp;99</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;}<br></span><span style="COLOR: #008080">100</span>&nbsp;<span style="COLOR: #000000">&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">,ret);<br></span><span style="COLOR: #008080">101</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;<br></span><span style="COLOR: #008080">102</span>&nbsp;<span style="COLOR: #000000">}<br></span><span style="COLOR: #008080">103</span>&nbsp;<span style="COLOR: #000000"></span></div>
<br>
<img src ="http://www.cppblog.com/jsn1993/aggbug/116026.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/jsn1993/" target="_blank">jsn1993</a> 2010-05-21 15:10 <a href="http://www.cppblog.com/jsn1993/archive/2010/05/21/116026.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>SDTSC 2010  goblin</title><link>http://www.cppblog.com/jsn1993/archive/2010/05/19/115804.html</link><dc:creator>jsn1993</dc:creator><author>jsn1993</author><pubDate>Wed, 19 May 2010 06:11:00 GMT</pubDate><guid>http://www.cppblog.com/jsn1993/archive/2010/05/19/115804.html</guid><wfw:comment>http://www.cppblog.com/jsn1993/comments/115804.html</wfw:comment><comments>http://www.cppblog.com/jsn1993/archive/2010/05/19/115804.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/jsn1993/comments/commentRss/115804.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/jsn1993/services/trackbacks/115804.html</trackback:ping><description><![CDATA[题意：<br>求长度为N的zig-zag序列数<br><br>做法：<br>设Up[i][j]表示长度为i以j开头的zig序列<br>Down[i][j]表示长度为i以j开头的zag序列<br>直接递推<br><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; BORDER-TOP: #cccccc 1px solid; BORDER-RIGHT: #cccccc 1px solid; PADDING-TOP: 4px"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="COLOR: #008080">&nbsp;1</span>&nbsp;<span style="COLOR: #000000">#include&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">cstdio</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">&nbsp;2</span>&nbsp;<span style="COLOR: #000000"></span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;Up[</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">][</span><span style="COLOR: #000000">4205</span><span style="COLOR: #000000">],Down[</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">][</span><span style="COLOR: #000000">4205</span><span style="COLOR: #000000">],N,P;<br></span><span style="COLOR: #008080">&nbsp;3</span>&nbsp;<span style="COLOR: #000000"></span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;main()<br></span><span style="COLOR: #008080">&nbsp;4</span>&nbsp;<span style="COLOR: #000000">{<br></span><span style="COLOR: #008080">&nbsp;5</span>&nbsp;<span style="COLOR: #000000">&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">N,</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">P);<br></span><span style="COLOR: #008080">&nbsp;6</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;Up[</span><span style="COLOR: #000000">1</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">Down[</span><span style="COLOR: #000000">1</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">1</span><span style="COLOR: #000000">;<br></span><span style="COLOR: #008080">&nbsp;7</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;i</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">,now</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;i</span><span style="COLOR: #000000">&lt;=</span><span style="COLOR: #000000">N;</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">i,now</span><span style="COLOR: #000000">^=</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">)<br></span><span style="COLOR: #008080">&nbsp;8</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;{<br></span><span style="COLOR: #008080">&nbsp;9</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Up[now][i</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">Down[now][</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">]</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;<br></span><span style="COLOR: #008080">10</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;j</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">i;j;</span><span style="COLOR: #000000">--</span><span style="COLOR: #000000">j)<br></span><span style="COLOR: #008080">11</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Up[now][j]</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">(Up[now][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">Down[now</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">P;<br></span><span style="COLOR: #008080">12</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;j</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">i;</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">j)<br></span><span style="COLOR: #008080">13</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Down[now][j]</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">(Down[now][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">Up[now</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">P;<br></span><span style="COLOR: #008080">14</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;}<br></span><span style="COLOR: #008080">15</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;ret</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;<br></span><span style="COLOR: #008080">16</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;i</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;</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">i)<br></span><span style="COLOR: #008080">17</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ret</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">(ret</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">Up[N</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">][i])</span><span style="COLOR: #000000">%</span><span style="COLOR: #000000">P;<br></span><span style="COLOR: #008080">18</span>&nbsp;<span style="COLOR: #000000">&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">,(ret</span><span style="COLOR: #000000">&lt;&lt;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">)</span><span style="COLOR: #000000">%</span><span style="COLOR: #000000">P);<br></span><span style="COLOR: #008080">19</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;<br></span><span style="COLOR: #008080">20</span>&nbsp;<span style="COLOR: #000000">}<br></span><span style="COLOR: #008080">21</span>&nbsp;<span style="COLOR: #000000"></span></div>
<br><br>
<img src ="http://www.cppblog.com/jsn1993/aggbug/115804.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/jsn1993/" target="_blank">jsn1993</a> 2010-05-19 14:11 <a href="http://www.cppblog.com/jsn1993/archive/2010/05/19/115804.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>SDTSC 2010 starrace</title><link>http://www.cppblog.com/jsn1993/archive/2010/05/19/115803.html</link><dc:creator>jsn1993</dc:creator><author>jsn1993</author><pubDate>Wed, 19 May 2010 06:09:00 GMT</pubDate><guid>http://www.cppblog.com/jsn1993/archive/2010/05/19/115803.html</guid><wfw:comment>http://www.cppblog.com/jsn1993/comments/115803.html</wfw:comment><comments>http://www.cppblog.com/jsn1993/archive/2010/05/19/115803.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/jsn1993/comments/commentRss/115803.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/jsn1993/services/trackbacks/115803.html</trackback:ping><description><![CDATA[题意：<br>给你一个图 让你求经过所有点的一条最短路径 终点无所谓<br><br>做法：<br>有人竟然费用流屎过。。<br>我的做法是上下界费用流<br>A-&gt;A' 下界是1 然后就建图了<br><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; BORDER-TOP: #cccccc 1px solid; BORDER-RIGHT: #cccccc 1px solid; PADDING-TOP: 4px"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="COLOR: #008080">&nbsp;1</span>&nbsp;<span style="COLOR: #000000">#include&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">cstdio</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">&nbsp;2</span>&nbsp;<span style="COLOR: #000000">#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></span><span style="COLOR: #008080">&nbsp;3</span>&nbsp;<span style="COLOR: #000000"></span><span style="COLOR: #0000ff">#define</span><span style="COLOR: #000000">&nbsp;min(a,b)&nbsp;((a)&lt;(b)?(a):(b))</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">&nbsp;4</span>&nbsp;<span style="COLOR: #000000"></span><span style="COLOR: #0000ff">#define</span><span style="COLOR: #000000">&nbsp;n&nbsp;2047</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">&nbsp;5</span>&nbsp;<span style="COLOR: #000000"></span><span style="COLOR: #0000ff">#define</span><span style="COLOR: #000000">&nbsp;e&nbsp;300005</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">&nbsp;6</span>&nbsp;<span style="COLOR: #000000"></span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;vtx[e],w[e],f[e],ne[e],tot</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">;<br></span><span style="COLOR: #008080">&nbsp;7</span>&nbsp;<span style="COLOR: #000000"></span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;L[n],q[n</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">],pre[n],d[n],N,M,hidden,S,T,SuperS,SuperT,Cost;&nbsp;<br></span><span style="COLOR: #008080">&nbsp;8</span>&nbsp;<span style="COLOR: #000000"></span><span style="COLOR: #0000ff">bool</span><span style="COLOR: #000000">&nbsp;vis[n];<br></span><span style="COLOR: #008080">&nbsp;9</span>&nbsp;<span style="COLOR: #000000">inline&nbsp;</span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;Ins(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;u,</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;v,</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;fl,</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;cost)<br></span><span style="COLOR: #008080">10</span>&nbsp;<span style="COLOR: #000000">{<br></span><span style="COLOR: #008080">11</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;vtx[</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">tot]</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">v;f[tot]</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">fl;w[tot]</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">cost;ne[tot]</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">L[u];L[u]</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">tot;<br></span><span style="COLOR: #008080">12</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;vtx[</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">tot]</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">u;f[tot]</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;w[tot]</span><span style="COLOR: #000000">=-</span><span style="COLOR: #000000">cost;ne[tot]</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">L[v];L[v]</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">tot;<br></span><span style="COLOR: #008080">13</span>&nbsp;<span style="COLOR: #000000">}<br></span><span style="COLOR: #008080">14</span>&nbsp;<span style="COLOR: #000000">inline&nbsp;</span><span style="COLOR: #0000ff">bool</span><span style="COLOR: #000000">&nbsp;spfa()<br></span><span style="COLOR: #008080">15</span>&nbsp;<span style="COLOR: #000000">{<br></span><span style="COLOR: #008080">16</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;memset(vis,</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">,</span><span style="COLOR: #0000ff">sizeof</span><span style="COLOR: #000000">(vis));<br></span><span style="COLOR: #008080">17</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;memset(d,</span><span style="COLOR: #000000">63</span><span style="COLOR: #000000">,</span><span style="COLOR: #0000ff">sizeof</span><span style="COLOR: #000000">(d));<br></span><span style="COLOR: #008080">18</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;d[q[</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">]</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">SuperS]</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">,vis[SuperS]</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">;<br></span><span style="COLOR: #008080">19</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;h</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">,t</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">,u;h</span><span style="COLOR: #000000">!=</span><span style="COLOR: #000000">t;vis[u]</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">)<br></span><span style="COLOR: #008080">20</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;{<br></span><span style="COLOR: #008080">21</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;u</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">q[h</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">(h</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">)</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">n];<br></span><span style="COLOR: #008080">22</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;p</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">L[u],v</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">vtx[p];p;v</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">vtx[p</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">ne[p]])<br></span><span style="COLOR: #008080">23</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(f[p]</span><span style="COLOR: #000000">&amp;&amp;</span><span style="COLOR: #000000">d[u]</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">w[p]</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">d[v])<br></span><span style="COLOR: #008080">24</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br></span><span style="COLOR: #008080">25</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;d[v]</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">d[u]</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">w[p],pre[v]</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">p;<br></span><span style="COLOR: #008080">26</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(</span><span style="COLOR: #000000">!</span><span style="COLOR: #000000">vis[v])&nbsp;&nbsp;&nbsp;&nbsp;vis[q[t</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">(t</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">)</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">n]</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">v]</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">;<br></span><span style="COLOR: #008080">27</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br></span><span style="COLOR: #008080">28</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;}<br></span><span style="COLOR: #008080">29</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;d[SuperT]</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">&lt;&lt;</span><span style="COLOR: #000000">29</span><span style="COLOR: #000000">;<br></span><span style="COLOR: #008080">30</span>&nbsp;<span style="COLOR: #000000">}<br></span><span style="COLOR: #008080">31</span>&nbsp;<span style="COLOR: #000000">inline&nbsp;</span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;push()<br></span><span style="COLOR: #008080">32</span>&nbsp;<span style="COLOR: #000000">{<br></span><span style="COLOR: #008080">33</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;fl</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">&lt;&lt;</span><span style="COLOR: #000000">30</span><span style="COLOR: #000000">;<br></span><span style="COLOR: #008080">34</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;i</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">SuperT;i</span><span style="COLOR: #000000">!=</span><span style="COLOR: #000000">SuperS;i</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">vtx[pre[i]</span><span style="COLOR: #000000">^</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">])<br></span><span style="COLOR: #008080">35</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fl</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">min(fl,f[pre[i]]);<br></span><span style="COLOR: #008080">36</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;Cost</span><span style="COLOR: #000000">+=</span><span style="COLOR: #000000">d[SuperT]</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">fl;<br></span><span style="COLOR: #008080">37</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;i</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">SuperT;i</span><span style="COLOR: #000000">!=</span><span style="COLOR: #000000">SuperS;i</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">vtx[pre[i]</span><span style="COLOR: #000000">^</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">])<br></span><span style="COLOR: #008080">38</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;f[pre[i]]</span><span style="COLOR: #000000">-=</span><span style="COLOR: #000000">fl,f[pre[i]</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">fl;<br></span><span style="COLOR: #008080">39</span>&nbsp;<span style="COLOR: #000000">}<br></span><span style="COLOR: #008080">40</span>&nbsp;<span style="COLOR: #000000"></span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;main()<br></span><span style="COLOR: #008080">41</span>&nbsp;<span style="COLOR: #000000">{<br></span><span style="COLOR: #008080">42</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;u,v,w;<br></span><span style="COLOR: #008080">43</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;freopen(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">starrace.in</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">r</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,stdin);<br></span><span style="COLOR: #008080">44</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;freopen(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">starrace.out</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">w</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,stdout);<br></span><span style="COLOR: #008080">45</span>&nbsp;<span style="COLOR: #000000">&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">N,</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">M);<br></span><span style="COLOR: #008080">46</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;hidden</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">N</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">;<br></span><span style="COLOR: #008080">47</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;S</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">hidden</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">,T</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">S</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">,SuperS</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">T</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">,SuperT</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">SuperS</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">;<br></span><span style="COLOR: #008080">48</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;Ins(S,hidden,</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">);<br></span><span style="COLOR: #008080">49</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;i</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;</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">i)<br></span><span style="COLOR: #008080">50</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;{<br></span><span style="COLOR: #008080">51</span>&nbsp;<span style="COLOR: #000000">&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">w);<br></span><span style="COLOR: #008080">52</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ins(hidden,i,</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">,w);<br></span><span style="COLOR: #008080">53</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ins(i</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">N,hidden,</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">);<br></span><span style="COLOR: #008080">54</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ins(i</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">N,T,</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">);<br></span><span style="COLOR: #008080">55</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ins(SuperS,i</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">N,</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">);<br></span><span style="COLOR: #008080">56</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ins(i,SuperT,</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">);<br></span><span style="COLOR: #008080">57</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;}<br></span><span style="COLOR: #008080">58</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;Ins(T,S,</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">&lt;&lt;</span><span style="COLOR: #000000">30</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">);<br></span><span style="COLOR: #008080">59</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;i</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">M;</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">i)<br></span><span style="COLOR: #008080">60</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;{<br></span><span style="COLOR: #008080">61</span>&nbsp;<span style="COLOR: #000000">&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">u,</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">v,</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">w);<br></span><span style="COLOR: #008080">62</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(u</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000">v)&nbsp;&nbsp;&nbsp;&nbsp;{</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;t</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">u;u</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">v;v</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">t;}<br></span><span style="COLOR: #008080">63</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ins(u</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">N,v,</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">,w);<br></span><span style="COLOR: #008080">64</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;}<br></span><span style="COLOR: #008080">65</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;(;spfa();push());<br></span><span style="COLOR: #008080">66</span>&nbsp;<span style="COLOR: #000000">&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">,Cost);<br></span><span style="COLOR: #008080">67</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;<br></span><span style="COLOR: #008080">68</span>&nbsp;<span style="COLOR: #000000">}<br></span><span style="COLOR: #008080">69</span>&nbsp;<span style="COLOR: #000000"></span></div>
<br>
<img src ="http://www.cppblog.com/jsn1993/aggbug/115803.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/jsn1993/" target="_blank">jsn1993</a> 2010-05-19 14:09 <a href="http://www.cppblog.com/jsn1993/archive/2010/05/19/115803.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Baltic OI 2010</title><link>http://www.cppblog.com/jsn1993/archive/2010/05/16/115518.html</link><dc:creator>jsn1993</dc:creator><author>jsn1993</author><pubDate>Sun, 16 May 2010 09:17:00 GMT</pubDate><guid>http://www.cppblog.com/jsn1993/archive/2010/05/16/115518.html</guid><wfw:comment>http://www.cppblog.com/jsn1993/comments/115518.html</wfw:comment><comments>http://www.cppblog.com/jsn1993/archive/2010/05/16/115518.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/jsn1993/comments/commentRss/115518.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/jsn1993/services/trackbacks/115518.html</trackback:ping><description><![CDATA[被虐成傻子了<br><br>这比赛五一节的时候进行的&nbsp; 当时准备去ctsc&amp;apio没做&nbsp; 但是现在一看。。<br>lego&nbsp; 看懂了题意 不禁一阵头晕。<br>bears 打算A了lego再去看。。<br>pcb 水题 定义+树状数组<br><br>bins 水题<br>candies A了bears再来看。。<br>mines 一开始想这么大范围怎么做。。结果是&#8220;open input task&#8221;..<br><br>
<img src ="http://www.cppblog.com/jsn1993/aggbug/115518.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/jsn1993/" target="_blank">jsn1993</a> 2010-05-16 17:17 <a href="http://www.cppblog.com/jsn1993/archive/2010/05/16/115518.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>SDTSC 2010 sotomon</title><link>http://www.cppblog.com/jsn1993/archive/2010/05/13/115296.html</link><dc:creator>jsn1993</dc:creator><author>jsn1993</author><pubDate>Thu, 13 May 2010 09:12:00 GMT</pubDate><guid>http://www.cppblog.com/jsn1993/archive/2010/05/13/115296.html</guid><wfw:comment>http://www.cppblog.com/jsn1993/comments/115296.html</wfw:comment><comments>http://www.cppblog.com/jsn1993/archive/2010/05/13/115296.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/jsn1993/comments/commentRss/115296.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/jsn1993/services/trackbacks/115296.html</trackback:ping><description><![CDATA[题意：<br>给定N个点 有些节点可以通往同行 有些可以通往同列中的点 有些可以通往八连通的点 可以走过多次<br>问最多一次可以走过多少点<br><br>做法：<br>可以走过多次也就是说跟apio2009 atm一样 一个强连通分量内可以无限走<br>然后就是走过场 缩点 拓扑排序 dp<br><br>问题在于。。。离散化后每次要寻找(x,y)这个点是否存在&nbsp; 然后我的二分查找就因为小于大于号的问题挂了。。<br><br>（跟cqtsc2010 内部白点一样。。。挂在二分上了！！！）<br><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; BORDER-TOP: #cccccc 1px solid; BORDER-RIGHT: #cccccc 1px solid; PADDING-TOP: 4px"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="COLOR: #008080">&nbsp;&nbsp;1</span>&nbsp;<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></span><span style="COLOR: #008080">&nbsp;&nbsp;2</span>&nbsp;<span style="COLOR: #000000">#include&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">algorithm</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">&nbsp;&nbsp;3</span>&nbsp;<span style="COLOR: #000000"></span><span style="COLOR: #0000ff">using</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">namespace</span><span style="COLOR: #000000">&nbsp;std;<br></span><span style="COLOR: #008080">&nbsp;&nbsp;4</span>&nbsp;<span style="COLOR: #000000"></span><span style="COLOR: #0000ff">#define</span><span style="COLOR: #000000">&nbsp;n&nbsp;300005</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">&nbsp;&nbsp;5</span>&nbsp;<span style="COLOR: #000000"></span><span style="COLOR: #0000ff">#define</span><span style="COLOR: #000000">&nbsp;m&nbsp;3000005</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">&nbsp;&nbsp;6</span>&nbsp;<span style="COLOR: #000000"></span><span style="COLOR: #0000ff">struct</span><span style="COLOR: #000000">&nbsp;Tpnt<br></span><span style="COLOR: #008080">&nbsp;&nbsp;7</span>&nbsp;<span style="COLOR: #000000">{<br></span><span style="COLOR: #008080">&nbsp;&nbsp;8</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;x,y,kind,o;<br></span><span style="COLOR: #008080">&nbsp;&nbsp;9</span>&nbsp;<span style="COLOR: #000000">}&nbsp;&nbsp;&nbsp;&nbsp;T[</span><span style="COLOR: #000000">100005</span><span style="COLOR: #000000">];<br></span><span style="COLOR: #008080">&nbsp;10</span>&nbsp;<span style="COLOR: #000000"></span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;vtx[m],ne[m],L[n],tot,Tot,All,Sub,E;<br></span><span style="COLOR: #008080">&nbsp;11</span>&nbsp;<span style="COLOR: #000000"></span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;N,R,C,dfn[n],F[n],cnt[n],low[n],Stk[n],Deg[n],sub[n],p[n];<br></span><span style="COLOR: #008080">&nbsp;12</span>&nbsp;<span style="COLOR: #000000"></span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;x[</span><span style="COLOR: #000000">100005</span><span style="COLOR: #000000">],y[</span><span style="COLOR: #000000">100005</span><span style="COLOR: #000000">],cnt_x[</span><span style="COLOR: #000000">1000005</span><span style="COLOR: #000000">],place_x[</span><span style="COLOR: #000000">1000005</span><span style="COLOR: #000000">],place_y[</span><span style="COLOR: #000000">1000005</span><span style="COLOR: #000000">];<br></span><span style="COLOR: #008080">&nbsp;13</span>&nbsp;<span style="COLOR: #000000"></span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;X[m],Y[m];<br></span><span style="COLOR: #008080">&nbsp;14</span>&nbsp;<span style="COLOR: #000000"></span><span style="COLOR: #0000ff">bool</span><span style="COLOR: #000000">&nbsp;vis[n];<br></span><span style="COLOR: #008080">&nbsp;15</span>&nbsp;<span style="COLOR: #000000">inline&nbsp;</span><span style="COLOR: #0000ff">bool</span><span style="COLOR: #000000">&nbsp;cmp_x(</span><span style="COLOR: #0000ff">const</span><span style="COLOR: #000000">&nbsp;Tpnt&nbsp;</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">a,</span><span style="COLOR: #0000ff">const</span><span style="COLOR: #000000">&nbsp;Tpnt&nbsp;</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">b)<br></span><span style="COLOR: #008080">&nbsp;16</span>&nbsp;<span style="COLOR: #000000">{<br></span><span style="COLOR: #008080">&nbsp;17</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;a.x</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">b.x</span><span style="COLOR: #000000">||</span><span style="COLOR: #000000">a.x</span><span style="COLOR: #000000">==</span><span style="COLOR: #000000">b.x</span><span style="COLOR: #000000">&amp;&amp;</span><span style="COLOR: #000000">a.y</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">b.y;&nbsp;<br></span><span style="COLOR: #008080">&nbsp;18</span>&nbsp;<span style="COLOR: #000000">}<br></span><span style="COLOR: #008080">&nbsp;19</span>&nbsp;<span style="COLOR: #000000">inline&nbsp;</span><span style="COLOR: #0000ff">bool</span><span style="COLOR: #000000">&nbsp;cmp_y(</span><span style="COLOR: #0000ff">const</span><span style="COLOR: #000000">&nbsp;Tpnt&nbsp;</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">a,</span><span style="COLOR: #0000ff">const</span><span style="COLOR: #000000">&nbsp;Tpnt&nbsp;</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">b)<br></span><span style="COLOR: #008080">&nbsp;20</span>&nbsp;<span style="COLOR: #000000">{<br></span><span style="COLOR: #008080">&nbsp;21</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;a.y</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">b.y</span><span style="COLOR: #000000">||</span><span style="COLOR: #000000">a.y</span><span style="COLOR: #000000">==</span><span style="COLOR: #000000">b.y</span><span style="COLOR: #000000">&amp;&amp;</span><span style="COLOR: #000000">a.x</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">b.x;<br></span><span style="COLOR: #008080">&nbsp;22</span>&nbsp;<span style="COLOR: #000000">}<br></span><span style="COLOR: #008080">&nbsp;23</span>&nbsp;<span style="COLOR: #000000">inline&nbsp;</span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;Ins(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;u,</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;v)<br></span><span style="COLOR: #008080">&nbsp;24</span>&nbsp;<span style="COLOR: #000000">{<br></span><span style="COLOR: #008080">&nbsp;25</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;vtx[</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">tot]</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">v;ne[tot]</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">L[u];L[u]</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">tot;<br></span><span style="COLOR: #008080">&nbsp;26</span>&nbsp;<span style="COLOR: #000000">}<br></span><span style="COLOR: #008080">&nbsp;27</span>&nbsp;<span style="COLOR: #000000">inline&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;findx_x(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;X)<br></span><span style="COLOR: #008080">&nbsp;28</span>&nbsp;<span style="COLOR: #000000">{<br></span><span style="COLOR: #008080">&nbsp;29</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;l</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">,r</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">N,mid;<br></span><span style="COLOR: #008080">&nbsp;30</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;(;l</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">r;)<br></span><span style="COLOR: #008080">&nbsp;31</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(mid</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">(l</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">r)</span><span style="COLOR: #000000">&gt;&gt;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">,T[mid].x</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">X)&nbsp;&nbsp;&nbsp;&nbsp;l</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">mid;<br></span><span style="COLOR: #008080">&nbsp;32</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">else</span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;r</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">mid;<br></span><span style="COLOR: #008080">&nbsp;33</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(T[r].x</span><span style="COLOR: #000000">==</span><span style="COLOR: #000000">X)&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;r;<br></span><span style="COLOR: #008080">&nbsp;34</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">;<br></span><span style="COLOR: #008080">&nbsp;35</span>&nbsp;<span style="COLOR: #000000">}<br></span><span style="COLOR: #008080">&nbsp;36</span>&nbsp;<span style="COLOR: #000000">inline&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;findx_y(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;st,</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;en,</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;Y)<br></span><span style="COLOR: #008080">&nbsp;37</span>&nbsp;<span style="COLOR: #000000">{<br></span><span style="COLOR: #008080">&nbsp;38</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;l</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">st</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">,r</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">en,mid;<br></span><span style="COLOR: #008080">&nbsp;39</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;(;l</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">r;)<br></span><span style="COLOR: #008080">&nbsp;40</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(mid</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">(l</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">r)</span><span style="COLOR: #000000">&gt;&gt;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">,T[mid].y</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">Y)&nbsp;&nbsp;&nbsp;&nbsp;l</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">mid;<br></span><span style="COLOR: #008080">&nbsp;41</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">else</span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;r</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">mid;<br></span><span style="COLOR: #008080">&nbsp;42</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(T[r].y</span><span style="COLOR: #000000">==</span><span style="COLOR: #000000">Y)&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;r;<br></span><span style="COLOR: #008080">&nbsp;43</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">;<br></span><span style="COLOR: #008080">&nbsp;44</span>&nbsp;<span style="COLOR: #000000">}<br></span><span style="COLOR: #008080">&nbsp;45</span>&nbsp;<span style="COLOR: #000000">inline&nbsp;</span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;Tarjan(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;u)<br></span><span style="COLOR: #008080">&nbsp;46</span>&nbsp;<span style="COLOR: #000000">{<br></span><span style="COLOR: #008080">&nbsp;47</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;dfn[u]</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">low[u]</span><span style="COLOR: #000000">=++</span><span style="COLOR: #000000">All;<br></span><span style="COLOR: #008080">&nbsp;48</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;vis[Stk[</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">Stk[</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">]]</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">u]</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">;<br></span><span style="COLOR: #008080">&nbsp;49</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;(p[u]</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">L[u];p[u];p[u]</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">ne[p[u]])<br></span><span style="COLOR: #008080">&nbsp;50</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(</span><span style="COLOR: #000000">!</span><span style="COLOR: #000000">dfn[vtx[p[u]]])&nbsp;&nbsp;&nbsp;&nbsp;Tarjan(vtx[p[u]]),low[u]</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">min(low[u],low[vtx[p[u]]]);<br></span><span style="COLOR: #008080">&nbsp;51</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">else</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">&nbsp;52</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(vis[vtx[p[u]]])&nbsp;&nbsp;&nbsp;&nbsp;low[u]</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">min(low[u],dfn[vtx[p[u]]]);<br></span><span style="COLOR: #008080">&nbsp;53</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(dfn[u]</span><span style="COLOR: #000000">==</span><span style="COLOR: #000000">low[u])<br></span><span style="COLOR: #008080">&nbsp;54</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;(</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">Sub;;)<br></span><span style="COLOR: #008080">&nbsp;55</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br></span><span style="COLOR: #008080">&nbsp;56</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;vis[Stk[Stk[</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">]]]</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;<br></span><span style="COLOR: #008080">&nbsp;57</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sub[Stk[Stk[</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">]]]</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">Sub;<br></span><span style="COLOR: #008080">&nbsp;58</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(Stk[Stk[</span><span style="COLOR: #000000">0</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">u)&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">break</span><span style="COLOR: #000000">;<br></span><span style="COLOR: #008080">&nbsp;59</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br></span><span style="COLOR: #008080">&nbsp;60</span>&nbsp;<span style="COLOR: #000000">}<br></span><span style="COLOR: #008080">&nbsp;61</span>&nbsp;<span style="COLOR: #000000">inline&nbsp;</span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;Topo()<br></span><span style="COLOR: #008080">&nbsp;62</span>&nbsp;<span style="COLOR: #000000">{<br></span><span style="COLOR: #008080">&nbsp;63</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;Stk[</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">]</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;<br></span><span style="COLOR: #008080">&nbsp;64</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;i</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">Sub;</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">i)<br></span><span style="COLOR: #008080">&nbsp;65</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(</span><span style="COLOR: #000000">!</span><span style="COLOR: #000000">Deg[i])&nbsp;&nbsp;&nbsp;&nbsp;F[i]</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">cnt[i],Stk[</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">Stk[</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">]]</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">i;<br></span><span style="COLOR: #008080">&nbsp;66</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;(;Stk[</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">];)<br></span><span style="COLOR: #008080">&nbsp;67</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;{<br></span><span style="COLOR: #008080">&nbsp;68</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;u</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">Stk[Stk[</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">]</span><span style="COLOR: #000000">--</span><span style="COLOR: #000000">];<br></span><span style="COLOR: #008080">&nbsp;69</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;p</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">L[u],v</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">vtx[p];p;v</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">vtx[p</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">ne[p]])<br></span><span style="COLOR: #008080">&nbsp;70</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br></span><span style="COLOR: #008080">&nbsp;71</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;F[v]</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">max(F[v],F[u]</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">cnt[v]);<br></span><span style="COLOR: #008080">&nbsp;72</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">--</span><span style="COLOR: #000000">Deg[v];<br></span><span style="COLOR: #008080">&nbsp;73</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(</span><span style="COLOR: #000000">!</span><span style="COLOR: #000000">Deg[v])&nbsp;&nbsp;&nbsp;&nbsp;Stk[</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">Stk[</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">]]</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">v;<br></span><span style="COLOR: #008080">&nbsp;74</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br></span><span style="COLOR: #008080">&nbsp;75</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;}<br></span><span style="COLOR: #008080">&nbsp;76</span>&nbsp;<span style="COLOR: #000000">}<br></span><span style="COLOR: #008080">&nbsp;77</span>&nbsp;<span style="COLOR: #000000"></span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;main()<br></span><span style="COLOR: #008080">&nbsp;78</span>&nbsp;<span style="COLOR: #000000">{<br></span><span style="COLOR: #008080">&nbsp;79</span>&nbsp;<span style="COLOR: #000000">&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">N,</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">R,</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">C);<br></span><span style="COLOR: #008080">&nbsp;80</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;i</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;</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">i)<br></span><span style="COLOR: #008080">&nbsp;81</span>&nbsp;<span style="COLOR: #000000">&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">T[i].x,</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">T[i].y,</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">T[i].kind),T[i].o</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">i;<br></span><span style="COLOR: #008080">&nbsp;82</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;sort(T</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">,T</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">N</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">,cmp_x);<br></span><span style="COLOR: #008080">&nbsp;83</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;E</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;<br></span><span style="COLOR: #008080">&nbsp;84</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;i</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;</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">i)<br></span><span style="COLOR: #008080">&nbsp;85</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;{<br></span><span style="COLOR: #008080">&nbsp;86</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(T[i].x</span><span style="COLOR: #000000">!=</span><span style="COLOR: #000000">T[i</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">].x)<br></span><span style="COLOR: #008080">&nbsp;87</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br></span><span style="COLOR: #008080">&nbsp;88</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;x[</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">x[</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">]]</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">T[i].x;<br></span><span style="COLOR: #008080">&nbsp;89</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;place_x[T[i].x]</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">x[</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">];<br></span><span style="COLOR: #008080">&nbsp;90</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br></span><span style="COLOR: #008080">&nbsp;91</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">cnt_x[T[i].x];<br></span><span style="COLOR: #008080">&nbsp;92</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ins(x[</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">]</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">N,T[i].o);<br></span><span style="COLOR: #008080">&nbsp;93</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;X[</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">E]</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">x[</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">]</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">N,Y[E]</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">T[i].o;<br></span><span style="COLOR: #008080">&nbsp;94</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;}<br></span><span style="COLOR: #008080">&nbsp;95</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;sort(T</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">,T</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">N</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">,cmp_y);<br></span><span style="COLOR: #008080">&nbsp;96</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;i</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;</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">i)<br></span><span style="COLOR: #008080">&nbsp;97</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;{<br></span><span style="COLOR: #008080">&nbsp;98</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(T[i].y</span><span style="COLOR: #000000">!=</span><span style="COLOR: #000000">T[i</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">].y)<br></span><span style="COLOR: #008080">&nbsp;99</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br></span><span style="COLOR: #008080">100</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;y[</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">y[</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">]]</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">T[i].y;<br></span><span style="COLOR: #008080">101</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;place_y[T[i].y]</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">y[</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">];<br></span><span style="COLOR: #008080">102</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br></span><span style="COLOR: #008080">103</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ins(y[</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">]</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">N</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">x[</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">],T[i].o);<br></span><span style="COLOR: #008080">104</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;X[</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">E]</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">y[</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">]</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">N</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">x[</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">],Y[E]</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">T[i].o;<br></span><span style="COLOR: #008080">105</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;}<br></span><span style="COLOR: #008080">106</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;Tot</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">N</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">x[</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">]</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">y[</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">];<br></span><span style="COLOR: #008080">107</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;sort(T</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">,T</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">N</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">,cmp_x);<br></span><span style="COLOR: #008080">108</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;i</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;</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">i)<br></span><span style="COLOR: #008080">109</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(T[i].kind</span><span style="COLOR: #000000">==</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">)<br></span><span style="COLOR: #008080">110</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;{<br></span><span style="COLOR: #008080">111</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ins(T[i].o,place_x[T[i].x]</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">N);<br></span><span style="COLOR: #008080">112</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;X[</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">E]</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">T[i].o,Y[E]</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">place_x[T[i].x]</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">N;<br></span><span style="COLOR: #008080">113</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;}<br></span><span style="COLOR: #008080">114</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">else</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">115</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(T[i].kind</span><span style="COLOR: #000000">==</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">)<br></span><span style="COLOR: #008080">116</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;{<br></span><span style="COLOR: #008080">117</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ins(T[i].o,place_y[T[i].y]</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">N</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">x[</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">]);<br></span><span style="COLOR: #008080">118</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;X[</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">E]</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">T[i].o,Y[E]</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">place_y[T[i].y]</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">N</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">x[</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">];<br></span><span style="COLOR: #008080">119</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;}<br></span><span style="COLOR: #008080">120</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">else</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">121</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;dx</span><span style="COLOR: #000000">=-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">;dx</span><span style="COLOR: #000000">&lt;=</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">;</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">dx)<br></span><span style="COLOR: #008080">122</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(T[i].x</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">dx</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">&amp;&amp;</span><span style="COLOR: #000000">T[i].x</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">dx</span><span style="COLOR: #000000">&lt;=</span><span style="COLOR: #000000">R)<br></span><span style="COLOR: #008080">123</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br></span><span style="COLOR: #008080">124</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;xst</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">findx_x(T[i].x</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">dx),xen;<br></span><span style="COLOR: #008080">125</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(xst</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">)&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">continue</span><span style="COLOR: #000000">;<br></span><span style="COLOR: #008080">126</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;xen</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">xst</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">cnt_x[T[i].x</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">dx]</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">;<br></span><span style="COLOR: #008080">127</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;dy</span><span style="COLOR: #000000">=-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">;dy</span><span style="COLOR: #000000">&lt;=</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">;</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">dy)<br></span><span style="COLOR: #008080">128</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(T[i].y</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">dy</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">&amp;&amp;</span><span style="COLOR: #000000">T[i].y</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">dy</span><span style="COLOR: #000000">&lt;=</span><span style="COLOR: #000000">C)<br></span><span style="COLOR: #008080">129</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br></span><span style="COLOR: #008080">130</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(</span><span style="COLOR: #000000">!</span><span style="COLOR: #000000">dx</span><span style="COLOR: #000000">&amp;&amp;!</span><span style="COLOR: #000000">dy)&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">continue</span><span style="COLOR: #000000">;<br></span><span style="COLOR: #008080">131</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;pos</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">findx_y(xst,xen,T[i].y</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">dy);<br></span><span style="COLOR: #008080">132</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(pos</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">||</span><span style="COLOR: #000000">i</span><span style="COLOR: #000000">==</span><span style="COLOR: #000000">pos)&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">continue</span><span style="COLOR: #000000">;<br></span><span style="COLOR: #008080">133</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ins(T[i].o,T[pos].o);<br></span><span style="COLOR: #008080">134</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;X[</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">E]</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">T[i].o,Y[E]</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">T[pos].o;<br></span><span style="COLOR: #008080">135</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br></span><span style="COLOR: #008080">136</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br></span><span style="COLOR: #008080">137</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;i</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">Tot;</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">i)<br></span><span style="COLOR: #008080">138</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(</span><span style="COLOR: #000000">!</span><span style="COLOR: #000000">dfn[i])&nbsp;&nbsp;&nbsp;&nbsp;Tarjan(i);<br></span><span style="COLOR: #008080">139</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;i</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;</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">i)<br></span><span style="COLOR: #008080">140</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">cnt[sub[i]];<br></span><span style="COLOR: #008080">141</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;tot</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;<br></span><span style="COLOR: #008080">142</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;memset(L,</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">,</span><span style="COLOR: #0000ff">sizeof</span><span style="COLOR: #000000">(L));<br></span><span style="COLOR: #008080">143</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;i</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">E;</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">i)<br></span><span style="COLOR: #008080">144</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(sub[X[i]]</span><span style="COLOR: #000000">!=</span><span style="COLOR: #000000">sub[Y[i]])<br></span><span style="COLOR: #008080">145</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;{<br></span><span style="COLOR: #008080">146</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ins(sub[X[i]],sub[Y[i]]);<br></span><span style="COLOR: #008080">147</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">Deg[sub[Y[i]]];<br></span><span style="COLOR: #008080">148</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;}<br></span><span style="COLOR: #008080">149</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;Topo();<br></span><span style="COLOR: #008080">150</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;ret</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;<br></span><span style="COLOR: #008080">151</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;i</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">Sub;</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">i)<br></span><span style="COLOR: #008080">152</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ret</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">max(ret,F[i]);<br></span><span style="COLOR: #008080">153</span>&nbsp;<span style="COLOR: #000000">&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">,ret);<br></span><span style="COLOR: #008080">154</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;<br></span><span style="COLOR: #008080">155</span>&nbsp;<span style="COLOR: #000000">}<br></span><span style="COLOR: #008080">156</span>&nbsp;<span style="COLOR: #000000"></span></div>
<br><br>
<img src ="http://www.cppblog.com/jsn1993/aggbug/115296.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/jsn1993/" target="_blank">jsn1993</a> 2010-05-13 17:12 <a href="http://www.cppblog.com/jsn1993/archive/2010/05/13/115296.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>SDTSC 2010 landcraft</title><link>http://www.cppblog.com/jsn1993/archive/2010/05/13/115294.html</link><dc:creator>jsn1993</dc:creator><author>jsn1993</author><pubDate>Thu, 13 May 2010 09:08:00 GMT</pubDate><guid>http://www.cppblog.com/jsn1993/archive/2010/05/13/115294.html</guid><wfw:comment>http://www.cppblog.com/jsn1993/comments/115294.html</wfw:comment><comments>http://www.cppblog.com/jsn1993/archive/2010/05/13/115294.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/jsn1993/comments/commentRss/115294.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/jsn1993/services/trackbacks/115294.html</trackback:ping><description><![CDATA[题意：<br>给你一些点 让你求1-N的最短路 某个点能被访问前提是这个点的所有前继点都必须被访问过 但是这个是可以同时进行的<br><br>做法：<br>很像最大权闭合子图之类的&nbsp; 结果说白了就是个变种最短路。。N^2 dijkstra水过。。<br>（一开始点数组开了1000 wa到死）<br><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; BORDER-TOP: #cccccc 1px solid; BORDER-RIGHT: #cccccc 1px solid; PADDING-TOP: 4px"><!--<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">vector</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">iostream</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">algorithm</span><span style="COLOR: #000000">&gt;</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">#define</span><span style="COLOR: #000000">&nbsp;n&nbsp;3005</span><span style="COLOR: #000000"><br></span><span style="COLOR: #0000ff">#define</span><span style="COLOR: #000000">&nbsp;m&nbsp;300005</span><span style="COLOR: #000000"><br></span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;vtx[m],w[m],ne[m],L[n],tot;<br></span><span style="COLOR: #0000ff">long</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">long</span><span style="COLOR: #000000">&nbsp;d[n],e[n];<br></span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;cnt[n],N,M;<br>vector</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000">&nbsp;list[n];<br></span><span style="COLOR: #0000ff">bool</span><span style="COLOR: #000000">&nbsp;vis[n];<br>inline&nbsp;</span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;Ins(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;u,</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;v,</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;cost)<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;vtx[</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">tot]</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">v;w[tot]</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">cost;ne[tot]</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">L[u];L[u]</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">tot;<br>}<br>inline&nbsp;</span><span style="COLOR: #0000ff">long</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">long</span><span style="COLOR: #000000">&nbsp;dijkstra()<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;memset(d,</span><span style="COLOR: #000000">127</span><span style="COLOR: #000000">,</span><span style="COLOR: #0000ff">sizeof</span><span style="COLOR: #000000">(d));<br>&nbsp;&nbsp;&nbsp;&nbsp;memset(vis,</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">,</span><span style="COLOR: #0000ff">sizeof</span><span style="COLOR: #000000">(vis));<br>&nbsp;&nbsp;&nbsp;&nbsp;d[</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;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;i</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;</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">i)<br>&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;k</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;</span><span style="COLOR: #0000ff">long</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">long</span><span style="COLOR: #000000">&nbsp;dist</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">1LL</span><span style="COLOR: #000000">&lt;&lt;</span><span style="COLOR: #000000">60</span><span style="COLOR: #000000">;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;j</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;</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">j)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(</span><span style="COLOR: #000000">!</span><span style="COLOR: #000000">vis[j]</span><span style="COLOR: #000000">&amp;&amp;!</span><span style="COLOR: #000000">cnt[j]</span><span style="COLOR: #000000">&amp;&amp;</span><span style="COLOR: #000000">max(d[j],e[j])</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">dist)&nbsp;&nbsp;&nbsp;&nbsp;k</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">j,dist</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">max(d[j],e[j]);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;vis[k]</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">,d[k]</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">max(d[k],e[k]);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;j</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;j</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">list[k].size();</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">j)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e[list[k][j]]</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">max(e[list[k][j]],d[k]),</span><span style="COLOR: #000000">--</span><span style="COLOR: #000000">cnt[list[k][j]];<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;p</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">L[k],v</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">vtx[p];p;v</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">vtx[p</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">ne[p]])<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;d[v]</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">min(d[v],d[k]</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">w[p]);<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;max(d[N],e[N]);<br>}<br></span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;main()<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;u,v,w;<br>&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">N,</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">M);<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;i</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;i</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">M;</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">i)<br>&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">u,</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">v,</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">w),Ins(u,v,w);<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;i</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">,j;i</span><span style="COLOR: #000000">&lt;=</span><span style="COLOR: #000000">N;</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">i)<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&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">j);j</span><span style="COLOR: #000000">--</span><span style="COLOR: #000000">;)<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">v),</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">cnt[i],list[v].push_back(i);<br>&nbsp;&nbsp;&nbsp;&nbsp;cout</span><span style="COLOR: #000000">&lt;&lt;</span><span style="COLOR: #000000">dijkstra()</span><span style="COLOR: #000000">&lt;&lt;</span><span style="COLOR: #000000">endl;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;<br>}<br></span></div>
<br><br>
<img src ="http://www.cppblog.com/jsn1993/aggbug/115294.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/jsn1993/" target="_blank">jsn1993</a> 2010-05-13 17:08 <a href="http://www.cppblog.com/jsn1993/archive/2010/05/13/115294.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>APIO2010</title><link>http://www.cppblog.com/jsn1993/archive/2010/05/10/115049.html</link><dc:creator>jsn1993</dc:creator><author>jsn1993</author><pubDate>Mon, 10 May 2010 14:59:00 GMT</pubDate><guid>http://www.cppblog.com/jsn1993/archive/2010/05/10/115049.html</guid><wfw:comment>http://www.cppblog.com/jsn1993/comments/115049.html</wfw:comment><comments>http://www.cppblog.com/jsn1993/archive/2010/05/10/115049.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/jsn1993/comments/commentRss/115049.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/jsn1993/services/trackbacks/115049.html</trackback:ping><description><![CDATA[<p>。。唉 考腿了<br>第一题水题<br>第二题找两条最长链（每条边经过一次）<br>第三题直接利用数量积性质与凸性<br><br>100+30+30<br>第一题秒了 第二题本来是yy2条不相交最长链 这么写的&nbsp;<br>在想第三题时候已经通过数量积想到了利用角度 可当时错误地认为一定要把那个弦枚举出来 没注意到&#8220;没有四点共圆&#8221;。。<br>然后我就回去想第二题的更优算法 发现如果从跳一次后回上来的深度为1的点直接跳到另外一个叶子 这样更优 第二个样例算出来是9！<br>考试完了发现。。如果这么跳的话 必然是没有经过那条边。。然后就跑出了比答案更优的解。。自然完挂<br><br>然后颁奖时是银牌的第12名的样子。。。。在学校去的所有人中垫底了啊太菜了啊啊要被鄙视了啊啊啊<br><br>ps 本校1International Au 3National Au 2National Ag&nbsp; 写文章的2b便是分数最低的那个。。</p>
<img src ="http://www.cppblog.com/jsn1993/aggbug/115049.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/jsn1993/" target="_blank">jsn1993</a> 2010-05-10 22:59 <a href="http://www.cppblog.com/jsn1993/archive/2010/05/10/115049.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>CTSC2010</title><link>http://www.cppblog.com/jsn1993/archive/2010/05/06/114700.html</link><dc:creator>jsn1993</dc:creator><author>jsn1993</author><pubDate>Thu, 06 May 2010 11:43:00 GMT</pubDate><guid>http://www.cppblog.com/jsn1993/archive/2010/05/06/114700.html</guid><wfw:comment>http://www.cppblog.com/jsn1993/comments/114700.html</wfw:comment><comments>http://www.cppblog.com/jsn1993/archive/2010/05/06/114700.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/jsn1993/comments/commentRss/114700.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/jsn1993/services/trackbacks/114700.html</trackback:ping><description><![CDATA[好吧 我被虐成屎了<br>强烈膜拜潘神两试标准分&#8220;30.0 30.0&#8221; 同时为菜妈惋惜。。<br><br>day1<br>最高潘神230<br>第一题贪心 建了个最小割模型没调对 <br>第二题概率记忆化 这种题从来不会写。。<br>第三题数列转化 20分暴力 10分矩阵 20分循环矩阵 20分FFT或者分治 30分傅里叶优化<br><br>0+10+30。。那个循环矩阵可能已经想到了 但是当时不知道有什么用<br><br>day2<br>最高潘神90<br>第一题费用流利用规律 线段树优化 想了个O(sigmaDi)的傻逼dp 本来可能想用线段树优化但是没写出来。。<br>第二题什么dfs序ST查询模型转化 块状数组&nbsp; 直接交了N^2M 膜拜教主的后缀树与漆神期望10-20分潘神拿了50分的dp。<br>第三题提交答案 交了个规律点 第一二个小点 暴力由于套了map&lt;pair&lt;vector&lt;int&gt;,vector&lt;int&gt; &gt;,bool&gt;变的奇慢或者说卡掉了最优解<br>20+0+10<br><br>跟冬令营一样的分数....凄凉的铜牌中间名次.希望apio稍微好点吧<br>
<img src ="http://www.cppblog.com/jsn1993/aggbug/114700.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/jsn1993/" target="_blank">jsn1993</a> 2010-05-06 19:43 <a href="http://www.cppblog.com/jsn1993/archive/2010/05/06/114700.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Codeforces #12</title><link>http://www.cppblog.com/jsn1993/archive/2010/04/29/113993.html</link><dc:creator>jsn1993</dc:creator><author>jsn1993</author><pubDate>Thu, 29 Apr 2010 13:07:00 GMT</pubDate><guid>http://www.cppblog.com/jsn1993/archive/2010/04/29/113993.html</guid><wfw:comment>http://www.cppblog.com/jsn1993/comments/113993.html</wfw:comment><comments>http://www.cppblog.com/jsn1993/archive/2010/04/29/113993.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/jsn1993/comments/commentRss/113993.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/jsn1993/services/trackbacks/113993.html</trackback:ping><description><![CDATA[好吧 我承认做得实在太失败<br><br>A:一开始瞬间秒了A（wa1次 因为把s2写成s3了 - -！） 题意：给你一个3*3矩阵 问你它是否中心对称<br>B:Wa2次 没看到关于前导零的描述（- -！）&nbsp; 题意：<br>C:1A 题意：给你N个数字与M个cnt&nbsp; 求min{∑cnt[i]*A[i]}与max{∑cnt[i]*A[i]}<br>D:最大失败，从19:30到21:00&nbsp;&nbsp; （-10）&nbsp; 与暴力拍不出错，却总是wa3&nbsp; 题意：给你N个三元组 问有多少三元组满足&#8220;存在一个三元组的三个元素都比此三元组的对应三个元素大&#8221;<br>E:还没看<br><br>这次比赛最大的失误便是 我先秒了A&nbsp; 然后写B&nbsp; B没看清题目就放了放先看D 结果就开始写D了 C这种终极水题都没看!<br>导致B C提交时间过晚&nbsp;&nbsp; 由于没有过D题 也就造成了大杯具啊！！！<br><br>呜呜！<br><br>
<img src ="http://www.cppblog.com/jsn1993/aggbug/113993.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/jsn1993/" target="_blank">jsn1993</a> 2010-04-29 21:07 <a href="http://www.cppblog.com/jsn1993/archive/2010/04/29/113993.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Pku 2917  Diophantus of Alexandria</title><link>http://www.cppblog.com/jsn1993/archive/2010/04/23/113313.html</link><dc:creator>jsn1993</dc:creator><author>jsn1993</author><pubDate>Fri, 23 Apr 2010 02:54:00 GMT</pubDate><guid>http://www.cppblog.com/jsn1993/archive/2010/04/23/113313.html</guid><wfw:comment>http://www.cppblog.com/jsn1993/comments/113313.html</wfw:comment><comments>http://www.cppblog.com/jsn1993/archive/2010/04/23/113313.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/jsn1993/comments/commentRss/113313.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/jsn1993/services/trackbacks/113313.html</trackback:ping><description><![CDATA[题意：<br>求 1/x+1/y=1/z x,y的整数解对数<br><br>做法：<br>先将y表示成 y=(x*z)/(x-z)<br>然后呢...我就不知道然后了<br>baidu了题解后才知道了<br>设w=x-z 则x=z+w 那么 y=(z*z+w*z)/w=z*z/w+z<br>所以转化为了求z*z/w的整数解个数<br>即z*z的约数个数&nbsp; 因为要求一对的 所以答案是 (约数个数+1)/2<br><br>然后就解决了。<br><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; BORDER-TOP: #cccccc 1px solid; BORDER-RIGHT: #cccccc 1px solid; PADDING-TOP: 4px"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="COLOR: #008080">&nbsp;1</span>&nbsp;<span style="COLOR: #000000">#include&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">cstdio</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">&nbsp;2</span>&nbsp;<span style="COLOR: #000000"></span><span style="COLOR: #0000ff">#define</span><span style="COLOR: #000000">&nbsp;n&nbsp;50005</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">&nbsp;3</span>&nbsp;<span style="COLOR: #000000"></span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;p[n],T,N,ret;<br></span><span style="COLOR: #008080">&nbsp;4</span>&nbsp;<span style="COLOR: #000000"></span><span style="COLOR: #0000ff">bool</span><span style="COLOR: #000000">&nbsp;mk[n];<br></span><span style="COLOR: #008080">&nbsp;5</span>&nbsp;<span style="COLOR: #000000">inline&nbsp;</span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;mkprime()<br></span><span style="COLOR: #008080">&nbsp;6</span>&nbsp;<span style="COLOR: #000000">{<br></span><span style="COLOR: #008080">&nbsp;7</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;i</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)<br></span><span style="COLOR: #008080">&nbsp;8</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(</span><span style="COLOR: #000000">!</span><span style="COLOR: #000000">mk[i])<br></span><span style="COLOR: #008080">&nbsp;9</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;j</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">i</span><span style="COLOR: #000000">&lt;&lt;</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">i)<br></span><span style="COLOR: #008080">10</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mk[j]</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">;<br></span><span style="COLOR: #008080">11</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;i</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)<br></span><span style="COLOR: #008080">12</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(</span><span style="COLOR: #000000">!</span><span style="COLOR: #000000">mk[i])&nbsp;&nbsp;&nbsp;&nbsp;p[</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">p[</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">]]</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">i;<br></span><span style="COLOR: #008080">13</span>&nbsp;<span style="COLOR: #000000">}<br></span><span style="COLOR: #008080">14</span>&nbsp;<span style="COLOR: #000000">inline&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;getlog(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">N,</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;prime)<br></span><span style="COLOR: #008080">15</span>&nbsp;<span style="COLOR: #000000">{<br></span><span style="COLOR: #008080">16</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;ret</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;<br></span><span style="COLOR: #008080">17</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;(;N</span><span style="COLOR: #000000">%</span><span style="COLOR: #000000">prime</span><span style="COLOR: #000000">==</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;N</span><span style="COLOR: #000000">/=</span><span style="COLOR: #000000">prime,</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">ret);<br></span><span style="COLOR: #008080">18</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;ret;<br></span><span style="COLOR: #008080">19</span>&nbsp;<span style="COLOR: #000000">}<br></span><span style="COLOR: #008080">20</span>&nbsp;<span style="COLOR: #000000"></span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;main()<br></span><span style="COLOR: #008080">21</span>&nbsp;<span style="COLOR: #000000">{<br></span><span style="COLOR: #008080">22</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;mkprime();<br></span><span style="COLOR: #008080">23</span>&nbsp;<span style="COLOR: #000000">&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></span><span style="COLOR: #008080">24</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;Te</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">;Te</span><span style="COLOR: #000000">&lt;=</span><span style="COLOR: #000000">T;</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">Te)<br></span><span style="COLOR: #008080">25</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;{<br></span><span style="COLOR: #008080">26</span>&nbsp;<span style="COLOR: #000000">&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></span><span style="COLOR: #008080">27</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ret</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">;<br></span><span style="COLOR: #008080">28</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;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">p[</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">]</span><span style="COLOR: #000000">&amp;&amp;</span><span style="COLOR: #000000">p[i]</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">p[i]</span><span style="COLOR: #000000">&lt;=</span><span style="COLOR: #000000">N;</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">i)<br></span><span style="COLOR: #008080">29</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(N</span><span style="COLOR: #000000">%</span><span style="COLOR: #000000">p[i]</span><span style="COLOR: #000000">==</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">)&nbsp;&nbsp;&nbsp;&nbsp;ret</span><span style="COLOR: #000000">*=</span><span style="COLOR: #000000">(getlog(N,p[i])</span><span style="COLOR: #000000">&lt;&lt;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">)</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">;<br></span><span style="COLOR: #008080">30</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(N</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">)&nbsp;&nbsp;&nbsp;&nbsp;ret</span><span style="COLOR: #000000">*=</span><span style="COLOR: #000000">3</span><span style="COLOR: #000000">;<br></span><span style="COLOR: #008080">31</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Scenario&nbsp;#%d:\n%d\n\n</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,Te,(ret</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">)</span><span style="COLOR: #000000">&gt;&gt;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">);<br></span><span style="COLOR: #008080">32</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;}<br></span><span style="COLOR: #008080">33</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;<br></span><span style="COLOR: #008080">34</span>&nbsp;<span style="COLOR: #000000">}<br></span><span style="COLOR: #008080">35</span>&nbsp;<span style="COLOR: #000000"></span></div>
<br><br>
<img src ="http://www.cppblog.com/jsn1993/aggbug/113313.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/jsn1993/" target="_blank">jsn1993</a> 2010-04-23 10:54 <a href="http://www.cppblog.com/jsn1993/archive/2010/04/23/113313.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Pku 1845  Sumdiv</title><link>http://www.cppblog.com/jsn1993/archive/2010/04/22/113264.html</link><dc:creator>jsn1993</dc:creator><author>jsn1993</author><pubDate>Thu, 22 Apr 2010 10:58:00 GMT</pubDate><guid>http://www.cppblog.com/jsn1993/archive/2010/04/22/113264.html</guid><wfw:comment>http://www.cppblog.com/jsn1993/comments/113264.html</wfw:comment><comments>http://www.cppblog.com/jsn1993/archive/2010/04/22/113264.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/jsn1993/comments/commentRss/113264.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/jsn1993/services/trackbacks/113264.html</trackback:ping><description><![CDATA[题意：<br>给你N^M (N,M&lt;=50000000) 让你求出N^M的所有约数之和mod 9901 (prime)<br><br>做法：<br>首先可以肯定的是 给你N 让你求出N的所有约数之和的做法<br>便是分解质因数并将N表示成 p1^k1*p2^k2.....pm^km 然后将这些数字分为m类<br>用公式(1+p1+p1^2...+p1^k1)(1+p2+p2^2...+p2^k2)...(1+pm+pm^2+...+pm^km)便可以计算得到<br>因为从每类中选一种pi^j乘出来 等价于将pi^j乘到这个约数中，所有的乘法可能之和便是约数和<br>对于N^M 其实本质一样 p1^(M*k1)*p2^(M*k2).....pm^(M*km)<br><br>问题转化为了如何求1+q+q^2+...+q^Q这个等比数列前N项和<br>高中数学告诉我们可以用(q^Q-1)/(q-1)这个公式快速幂解决<br>离散数学告诉我们可以用构造矩阵用矩阵乘法<br><br>用公式 大部分情况都是对的 <br>但是在比如 (q^Q-1)与(q-1)都能被 9901整除的情况下求出来的肯定是0&nbsp; 不是正确解<br>（我比较愚昧 不知道如何解决 求解决方法）<br><br>用矩阵&nbsp; 其实也很简单&nbsp; 构造一个2*2的矩阵即可<br>我就只讲讲我的大常数sb方法<br>A是答案矩阵<br>A11 表示i次幂的时候当前这个数&nbsp; A12表示i次幂的时候当前这个数加上之前的和&nbsp; 也就是前i项和<br>B是用来转移的矩阵<br>B11 = B12 = Num&nbsp; B21=0&nbsp; B22=1<br>初始 A11=A12=1 A21=A22=0<br>要求 N^M次的时候只要把 B 重新构造 把A乘上B的M次 就可以了<br><br>这样就解决了此题 虽然常数不咋地。。<br><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; BORDER-TOP: #cccccc 1px solid; BORDER-RIGHT: #cccccc 1px solid; PADDING-TOP: 4px"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="COLOR: #008080">&nbsp;1</span>&nbsp;<span style="COLOR: #000000">#include&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">cstdio</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">&nbsp;2</span>&nbsp;<span style="COLOR: #000000">#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></span><span style="COLOR: #008080">&nbsp;3</span>&nbsp;<span style="COLOR: #000000"><br></span><span style="COLOR: #008080">&nbsp;4</span>&nbsp;<span style="COLOR: #000000"></span><span style="COLOR: #0000ff">#define</span><span style="COLOR: #000000">&nbsp;P&nbsp;9901</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">&nbsp;5</span>&nbsp;<span style="COLOR: #000000"></span><span style="COLOR: #0000ff">#define</span><span style="COLOR: #000000">&nbsp;n&nbsp;3</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">&nbsp;6</span>&nbsp;<span style="COLOR: #000000"></span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;p[P],C[n][n],Mat[n][n],tmp[n][n],N,M,ret;<br></span><span style="COLOR: #008080">&nbsp;7</span>&nbsp;<span style="COLOR: #000000"></span><span style="COLOR: #0000ff">bool</span><span style="COLOR: #000000">&nbsp;mk[P];<br></span><span style="COLOR: #008080">&nbsp;8</span>&nbsp;<span style="COLOR: #000000">inline&nbsp;</span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;mkprime()<br></span><span style="COLOR: #008080">&nbsp;9</span>&nbsp;<span style="COLOR: #000000">{<br></span><span style="COLOR: #008080">10</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;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">P;</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">i)<br></span><span style="COLOR: #008080">11</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(</span><span style="COLOR: #000000">!</span><span style="COLOR: #000000">mk[i])<br></span><span style="COLOR: #008080">12</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;j</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">i</span><span style="COLOR: #000000">&lt;&lt;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">;j</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">P;j</span><span style="COLOR: #000000">+=</span><span style="COLOR: #000000">i)<br></span><span style="COLOR: #008080">13</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mk[j]</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">;<br></span><span style="COLOR: #008080">14</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;i</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">P;</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">i)<br></span><span style="COLOR: #008080">15</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(</span><span style="COLOR: #000000">!</span><span style="COLOR: #000000">mk[i])&nbsp;&nbsp;&nbsp;&nbsp;p[</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">p[</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">]]</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">i;<br></span><span style="COLOR: #008080">16</span>&nbsp;<span style="COLOR: #000000">}<br></span><span style="COLOR: #008080">17</span>&nbsp;<span style="COLOR: #000000">inline&nbsp;</span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;matmul(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;A[][n],</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;B[][n])<br></span><span style="COLOR: #008080">18</span>&nbsp;<span style="COLOR: #000000">{<br></span><span style="COLOR: #008080">19</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;memset(C,</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">,</span><span style="COLOR: #0000ff">sizeof</span><span style="COLOR: #000000">(C));<br></span><span style="COLOR: #008080">20</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;i</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">3</span><span style="COLOR: #000000">;</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">i)<br></span><span style="COLOR: #008080">21</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;j</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">3</span><span style="COLOR: #000000">;</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">j)<br></span><span style="COLOR: #008080">22</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;k</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">;k</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">3</span><span style="COLOR: #000000">;</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">k)<br></span><span style="COLOR: #008080">23</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;C[i][j]</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">(C[i][j]</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">A[i][k]</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">(</span><span style="COLOR: #0000ff">long</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">long</span><span style="COLOR: #000000">)B[k][j])</span><span style="COLOR: #000000">%</span><span style="COLOR: #000000">P;<br></span><span style="COLOR: #008080">24</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;memcpy(A,C,</span><span style="COLOR: #0000ff">sizeof</span><span style="COLOR: #000000">(C));<br></span><span style="COLOR: #008080">25</span>&nbsp;<span style="COLOR: #000000">}<br></span><span style="COLOR: #008080">26</span>&nbsp;<span style="COLOR: #000000">inline&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;getlog(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">N,</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;prime)<br></span><span style="COLOR: #008080">27</span>&nbsp;<span style="COLOR: #000000">{<br></span><span style="COLOR: #008080">28</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;ret</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;<br></span><span style="COLOR: #008080">29</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;(;N</span><span style="COLOR: #000000">%</span><span style="COLOR: #000000">prime</span><span style="COLOR: #000000">==</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;N</span><span style="COLOR: #000000">/=</span><span style="COLOR: #000000">prime,</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">ret);<br></span><span style="COLOR: #008080">30</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;ret;<br></span><span style="COLOR: #008080">31</span>&nbsp;<span style="COLOR: #000000">}<br></span><span style="COLOR: #008080">32</span>&nbsp;<span style="COLOR: #000000">inline&nbsp;</span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;Mult(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;prime,</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;log)<br></span><span style="COLOR: #008080">33</span>&nbsp;<span style="COLOR: #000000">{<br></span><span style="COLOR: #008080">34</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;Mat[</span><span style="COLOR: #000000">1</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">Mat[</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">][</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">]</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">;<br></span><span style="COLOR: #008080">35</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;tmp[</span><span style="COLOR: #000000">1</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">tmp[</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">][</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">]</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">prime;<br></span><span style="COLOR: #008080">36</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;tmp[</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">][</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">]</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">,tmp[</span><span style="COLOR: #000000">2</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">1</span><span style="COLOR: #000000">;<br></span><span style="COLOR: #008080">37</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;(;log;log</span><span style="COLOR: #000000">&gt;&gt;=</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">,matmul(tmp,tmp))<br></span><span style="COLOR: #008080">38</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(log</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">)&nbsp;&nbsp;&nbsp;&nbsp;matmul(Mat,tmp);<br></span><span style="COLOR: #008080">39</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;ret</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">(ret</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">Mat[</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">][</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">])</span><span style="COLOR: #000000">%</span><span style="COLOR: #000000">P;<br></span><span style="COLOR: #008080">40</span>&nbsp;<span style="COLOR: #000000">}<br></span><span style="COLOR: #008080">41</span>&nbsp;<span style="COLOR: #000000"></span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;main()<br></span><span style="COLOR: #008080">42</span>&nbsp;<span style="COLOR: #000000">{<br></span><span style="COLOR: #008080">43</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;mkprime();<br></span><span style="COLOR: #008080">44</span>&nbsp;<span style="COLOR: #000000">&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">N,</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">M);<br></span><span style="COLOR: #008080">45</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;ret</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">;<br></span><span style="COLOR: #008080">46</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;i</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">,j;i</span><span style="COLOR: #000000">&lt;=</span><span style="COLOR: #000000">p[</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">]</span><span style="COLOR: #000000">&amp;&amp;</span><span style="COLOR: #000000">p[i]</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">p[i]</span><span style="COLOR: #000000">&lt;=</span><span style="COLOR: #000000">N;</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">i)<br></span><span style="COLOR: #008080">47</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(N</span><span style="COLOR: #000000">%</span><span style="COLOR: #000000">p[i]</span><span style="COLOR: #000000">==</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">)&nbsp;&nbsp;&nbsp;&nbsp;Mult(p[i],getlog(N,p[i])</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">M);<br></span><span style="COLOR: #008080">48</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(N</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">)&nbsp;&nbsp;&nbsp;&nbsp;Mult(N,M);<br></span><span style="COLOR: #008080">49</span>&nbsp;<span style="COLOR: #000000">&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">,ret);<br></span><span style="COLOR: #008080">50</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;<br></span><span style="COLOR: #008080">51</span>&nbsp;<span style="COLOR: #000000">}<br></span><span style="COLOR: #008080">52</span>&nbsp;<span style="COLOR: #000000"></span></div>
<img src ="http://www.cppblog.com/jsn1993/aggbug/113264.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/jsn1993/" target="_blank">jsn1993</a> 2010-04-22 18:58 <a href="http://www.cppblog.com/jsn1993/archive/2010/04/22/113264.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Pku 2480  Longge's Problem</title><link>http://www.cppblog.com/jsn1993/archive/2010/04/22/113242.html</link><dc:creator>jsn1993</dc:creator><author>jsn1993</author><pubDate>Thu, 22 Apr 2010 04:18:00 GMT</pubDate><guid>http://www.cppblog.com/jsn1993/archive/2010/04/22/113242.html</guid><wfw:comment>http://www.cppblog.com/jsn1993/comments/113242.html</wfw:comment><comments>http://www.cppblog.com/jsn1993/archive/2010/04/22/113242.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/jsn1993/comments/commentRss/113242.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/jsn1993/services/trackbacks/113242.html</trackback:ping><description><![CDATA[题意：<br>给定N(int)&nbsp; 求 ∑gcd(i,N) 1&lt;=i&lt;=N<br><br>又是数论题。。我太菜了 想了很久<br><br>做法：<br>直接求不会<br>只能考虑&nbsp; 对于gcd(M,N)=i 有Ci个M满足此式 答案便是∑(Ci*i)<br>gcd(M,N)=i&nbsp; &lt;=&gt; gcd(M/i,N/i)=1 <br>而求gcd(M/i,N/i)=1 有多少个M/i满足 这便是欧拉函数Phi()的定义<br>所以就转化为了求Phi(N/i)<br><br>枚举每个 M|N&nbsp; 求出Phi(N/i)&nbsp; 答案便是 ∑(Phi(N/i)*i)<br>那么如何枚举每个&nbsp; M|N 呢？<br>很简单 枚举1到sqrt(N)的所有整数，所有的约数便是 j|N (N/j)|N<br>这样就搞定了<br><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; BORDER-TOP: #cccccc 1px solid; BORDER-RIGHT: #cccccc 1px solid; PADDING-TOP: 4px"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="COLOR: #008080">&nbsp;1</span>&nbsp;<span style="COLOR: #000000">#include&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">cstdio</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">&nbsp;2</span>&nbsp;<span style="COLOR: #000000">#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></span><span style="COLOR: #008080">&nbsp;3</span>&nbsp;<span style="COLOR: #000000"></span><span style="COLOR: #0000ff">#define</span><span style="COLOR: #000000">&nbsp;n&nbsp;50005</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">&nbsp;4</span>&nbsp;<span style="COLOR: #000000"></span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;p[n],N;<br></span><span style="COLOR: #008080">&nbsp;5</span>&nbsp;<span style="COLOR: #000000"></span><span style="COLOR: #0000ff">bool</span><span style="COLOR: #000000">&nbsp;mk[n];<br></span><span style="COLOR: #008080">&nbsp;6</span>&nbsp;<span style="COLOR: #000000">inline&nbsp;</span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;mkprime()<br></span><span style="COLOR: #008080">&nbsp;7</span>&nbsp;<span style="COLOR: #000000">{<br></span><span style="COLOR: #008080">&nbsp;8</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;i</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)<br></span><span style="COLOR: #008080">&nbsp;9</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(</span><span style="COLOR: #000000">!</span><span style="COLOR: #000000">mk[i])<br></span><span style="COLOR: #008080">10</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;j</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">i</span><span style="COLOR: #000000">&lt;&lt;</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">i)<br></span><span style="COLOR: #008080">11</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mk[j]</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">;<br></span><span style="COLOR: #008080">12</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;i</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)<br></span><span style="COLOR: #008080">13</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(</span><span style="COLOR: #000000">!</span><span style="COLOR: #000000">mk[i])&nbsp;&nbsp;&nbsp;&nbsp;p[</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">p[</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">]]</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">i;<br></span><span style="COLOR: #008080">14</span>&nbsp;<span style="COLOR: #000000">}<br></span><span style="COLOR: #008080">15</span>&nbsp;<span style="COLOR: #000000">inline&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;Phi(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;u)<br></span><span style="COLOR: #008080">16</span>&nbsp;<span style="COLOR: #000000">{<br></span><span style="COLOR: #008080">17</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;phi</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">u;<br></span><span style="COLOR: #008080">18</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;i</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">p[</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">]</span><span style="COLOR: #000000">&amp;&amp;</span><span style="COLOR: #000000">p[i]</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">p[i]</span><span style="COLOR: #000000">&lt;=</span><span style="COLOR: #000000">u;</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">i)<br></span><span style="COLOR: #008080">19</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(u</span><span style="COLOR: #000000">%</span><span style="COLOR: #000000">p[i]</span><span style="COLOR: #000000">==</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">)<br></span><span style="COLOR: #008080">20</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;{<br></span><span style="COLOR: #008080">21</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;phi</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">phi</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">p[i]</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">(p[i]</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">);<br></span><span style="COLOR: #008080">22</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;(;u</span><span style="COLOR: #000000">%</span><span style="COLOR: #000000">p[i]</span><span style="COLOR: #000000">==</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;u</span><span style="COLOR: #000000">/=</span><span style="COLOR: #000000">p[i]);<br></span><span style="COLOR: #008080">23</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;}<br></span><span style="COLOR: #008080">24</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(u</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">)&nbsp;&nbsp;&nbsp;&nbsp;phi</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">phi</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">u</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">(u</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">);<br></span><span style="COLOR: #008080">25</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;phi;<br></span><span style="COLOR: #008080">26</span>&nbsp;<span style="COLOR: #000000">}<br></span><span style="COLOR: #008080">27</span>&nbsp;<span style="COLOR: #000000"></span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;main()<br></span><span style="COLOR: #008080">28</span>&nbsp;<span style="COLOR: #000000">{<br></span><span style="COLOR: #008080">29</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;mkprime();<br></span><span style="COLOR: #008080">30</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&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)</span><span style="COLOR: #000000">!=</span><span style="COLOR: #000000">EOF;)<br></span><span style="COLOR: #008080">31</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;{<br></span><span style="COLOR: #008080">32</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">long</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">long</span><span style="COLOR: #000000">&nbsp;ret</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;<br></span><span style="COLOR: #008080">33</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;i</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">,up</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">)sqrt((</span><span style="COLOR: #0000ff">double</span><span style="COLOR: #000000">)N);i</span><span style="COLOR: #000000">&lt;=</span><span style="COLOR: #000000">up;</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">i)<br></span><span style="COLOR: #008080">34</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(N</span><span style="COLOR: #000000">%</span><span style="COLOR: #000000">i</span><span style="COLOR: #000000">==</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">)<br></span><span style="COLOR: #008080">35</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br></span><span style="COLOR: #008080">36</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ret</span><span style="COLOR: #000000">+=</span><span style="COLOR: #000000">(N</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">i)</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">(</span><span style="COLOR: #0000ff">long</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">long</span><span style="COLOR: #000000">)Phi(i);<br></span><span style="COLOR: #008080">37</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(i</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">i</span><span style="COLOR: #000000">!=</span><span style="COLOR: #000000">N)&nbsp;&nbsp;&nbsp;&nbsp;ret</span><span style="COLOR: #000000">+=</span><span style="COLOR: #000000">i</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">(</span><span style="COLOR: #0000ff">long</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">long</span><span style="COLOR: #000000">)Phi(N</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">i);<br></span><span style="COLOR: #008080">38</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br></span><span style="COLOR: #008080">39</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">%I64d\n</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,ret);<br></span><span style="COLOR: #008080">40</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;}<br></span><span style="COLOR: #008080">41</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;<br></span><span style="COLOR: #008080">42</span>&nbsp;<span style="COLOR: #000000">}<br></span><span style="COLOR: #008080">43</span>&nbsp;<span style="COLOR: #000000"></span></div>
<br>
<img src ="http://www.cppblog.com/jsn1993/aggbug/113242.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/jsn1993/" target="_blank">jsn1993</a> 2010-04-22 12:18 <a href="http://www.cppblog.com/jsn1993/archive/2010/04/22/113242.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Pku 2417  Discrete Logging</title><link>http://www.cppblog.com/jsn1993/archive/2010/04/21/113135.html</link><dc:creator>jsn1993</dc:creator><author>jsn1993</author><pubDate>Wed, 21 Apr 2010 06:58:00 GMT</pubDate><guid>http://www.cppblog.com/jsn1993/archive/2010/04/21/113135.html</guid><wfw:comment>http://www.cppblog.com/jsn1993/comments/113135.html</wfw:comment><comments>http://www.cppblog.com/jsn1993/archive/2010/04/21/113135.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/jsn1993/comments/commentRss/113135.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/jsn1993/services/trackbacks/113135.html</trackback:ping><description><![CDATA[题意：<br>求最小的离散对数B 使得A^B == C (mod P)&nbsp; P是质数 或者判无解<br><br>做法：<br><br>数论题..对于比我大的同学肯定觉得很简单。。<br>由欧拉定理 A^phi(P) == 1 (mod P) (phi(prime)=prime-1)<br>得到 A^(B+phi(P)) == c (mod P) &nbsp; A^(B-Phi(P)) ==c (mod P)<br>所以可以肯定的一点是 如果 [0,phi(P))内无解 由此式子的周期性必然不会有更多解<br><br>一个朴素的想法：枚举 B&#8712;[0,phi(P)) 检验 A^B是否 == C(mod P)<br>问题又出现了 P是个质数 phi(P)=P-1&nbsp; 必然TLE<br>所以就必须用空间换时间。<br><br>设得到的答案是B&nbsp; B=X*sqrt(P)+Y 注意到X,Y&lt;=sqrt(P)<br>列式并化简：<br><br>A^(X*sqrt(P)+Y) == C (mod P)<br>(A*sqrt(P))^X*A^Y == C (mod P)<br><br>设 T=A*sqrt(P) 原式即 T^X*A^Y == C (mod P)<br>两边同除以 A^Y&nbsp; 得到 T^X == C/(A^Y) (mod P)<br><br>好吧 到现在 做法就已经浮出水面了<br><br>我们预处理T^i (mod P) 最多sqrt(P)个 (i&lt;X)<br>手写hash或者用map直接存下来二元组 (T^X (mod P),X)<br><br>然后枚举 Y&#8712;[0,sqrt(P)) 最多sqrt(P)个<br>对于每个Y 我们求出 C/(A^Y) (mod P)&nbsp; 然后在hash或者map中查找这个值<br>如果 (C/(A^Y) (mod P),X) 存在&nbsp; 那么说明 X*sqrt(P)+Y 是可以作为答案的<br><br>最后答案便是所有满足条件的 X*sqrt(P)+Y 中的最小值。<br><br>如果你不知道 C/(A^Y) (mod P) 怎么求<br>那就继续看下去吧<br>C/(A^Y) (mod P) == C*((1/A^Y) mod P)<br>(1/A^Y) (mod P) == (A^Y)^-1 (mod P)<br>即 (A^Y)^(phi(P)-1) (mod P)<br>所以 C/(A^Y) (mod P) 就等于C*(A^Y)^(phi(P)-1) (mod P)<br><br>这样就解决了此题。<br><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; BORDER-TOP: #cccccc 1px solid; BORDER-RIGHT: #cccccc 1px solid; PADDING-TOP: 4px"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="COLOR: #008080">&nbsp;1</span>&nbsp;<span style="COLOR: #000000">#include&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">cstdio</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">&nbsp;2</span>&nbsp;<span style="COLOR: #000000">#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></span><span style="COLOR: #008080">&nbsp;3</span>&nbsp;<span style="COLOR: #000000">#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></span><span style="COLOR: #008080">&nbsp;4</span>&nbsp;<span style="COLOR: #000000"></span><span style="COLOR: #0000ff">#define</span><span style="COLOR: #000000">&nbsp;Prime&nbsp;899037</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">&nbsp;5</span>&nbsp;<span style="COLOR: #000000"></span><span style="COLOR: #0000ff">#define</span><span style="COLOR: #000000">&nbsp;oo&nbsp;2000000005</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">&nbsp;6</span>&nbsp;<span style="COLOR: #000000"></span><span style="COLOR: #0000ff">#define</span><span style="COLOR: #000000">&nbsp;min(a,b)&nbsp;((a)&lt;(b)?(a):(b))</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">&nbsp;7</span>&nbsp;<span style="COLOR: #000000"></span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;P,B,N;<br></span><span style="COLOR: #008080">&nbsp;8</span>&nbsp;<span style="COLOR: #000000"></span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;H[Prime],V[Prime];<br></span><span style="COLOR: #008080">&nbsp;9</span>&nbsp;<span style="COLOR: #000000">inline&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;pow(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;u,</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;v)<br></span><span style="COLOR: #008080">10</span>&nbsp;<span style="COLOR: #000000">{<br></span><span style="COLOR: #008080">11</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;ret</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">;<br></span><span style="COLOR: #008080">12</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;tmp</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">u;v;v</span><span style="COLOR: #000000">&gt;&gt;=</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">,tmp</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">(tmp</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">(</span><span style="COLOR: #0000ff">long</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">long</span><span style="COLOR: #000000">)tmp)</span><span style="COLOR: #000000">%</span><span style="COLOR: #000000">P)<br></span><span style="COLOR: #008080">13</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(v</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">)&nbsp;&nbsp;&nbsp;&nbsp;ret</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">(ret</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">(</span><span style="COLOR: #0000ff">long</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">long</span><span style="COLOR: #000000">)tmp)</span><span style="COLOR: #000000">%</span><span style="COLOR: #000000">P;<br></span><span style="COLOR: #008080">14</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;ret;<br></span><span style="COLOR: #008080">15</span>&nbsp;<span style="COLOR: #000000">}<br></span><span style="COLOR: #008080">16</span>&nbsp;<span style="COLOR: #000000">inline&nbsp;</span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;Hpush(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;u,</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;v)<br></span><span style="COLOR: #008080">17</span>&nbsp;<span style="COLOR: #000000">{<br></span><span style="COLOR: #008080">18</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;t</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">u</span><span style="COLOR: #000000">%</span><span style="COLOR: #000000">Prime;<br></span><span style="COLOR: #008080">19</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;(;H[t];)<br></span><span style="COLOR: #008080">20</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;{<br></span><span style="COLOR: #008080">21</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(H[t]</span><span style="COLOR: #000000">==</span><span style="COLOR: #000000">u)&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">;<br></span><span style="COLOR: #008080">22</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">t</span><span style="COLOR: #000000">==</span><span style="COLOR: #000000">P)&nbsp;&nbsp;&nbsp;&nbsp;t</span><span style="COLOR: #000000">-=</span><span style="COLOR: #000000">P;<br></span><span style="COLOR: #008080">23</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;}<br></span><span style="COLOR: #008080">24</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;H[t]</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">u,V[t]</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">v;<br></span><span style="COLOR: #008080">25</span>&nbsp;<span style="COLOR: #000000">}<br></span><span style="COLOR: #008080">26</span>&nbsp;<span style="COLOR: #000000">inline&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;Hpop(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;u)<br></span><span style="COLOR: #008080">27</span>&nbsp;<span style="COLOR: #000000">{<br></span><span style="COLOR: #008080">28</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;t</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">u</span><span style="COLOR: #000000">%</span><span style="COLOR: #000000">Prime;<br></span><span style="COLOR: #008080">29</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;(;H[t];)<br></span><span style="COLOR: #008080">30</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;{<br></span><span style="COLOR: #008080">31</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(H[t]</span><span style="COLOR: #000000">==</span><span style="COLOR: #000000">u)&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;V[t];<br></span><span style="COLOR: #008080">32</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">t</span><span style="COLOR: #000000">==</span><span style="COLOR: #000000">P)&nbsp;&nbsp;&nbsp;&nbsp;t</span><span style="COLOR: #000000">-=</span><span style="COLOR: #000000">P;<br></span><span style="COLOR: #008080">33</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;}<br></span><span style="COLOR: #008080">34</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;oo;<br></span><span style="COLOR: #008080">35</span>&nbsp;<span style="COLOR: #000000">}<br></span><span style="COLOR: #008080">36</span>&nbsp;<span style="COLOR: #000000"></span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;main()<br></span><span style="COLOR: #008080">37</span>&nbsp;<span style="COLOR: #000000">{<br></span><span style="COLOR: #008080">38</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&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">P,</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">B,</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">N)</span><span style="COLOR: #000000">!=</span><span style="COLOR: #000000">EOF;)<br></span><span style="COLOR: #008080">39</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;{<br></span><span style="COLOR: #008080">40</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;ret</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">oo</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">;<br></span><span style="COLOR: #008080">41</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;memset(H,</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">,</span><span style="COLOR: #0000ff">sizeof</span><span style="COLOR: #000000">(H));<br></span><span style="COLOR: #008080">42</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;memset(V,</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">,</span><span style="COLOR: #0000ff">sizeof</span><span style="COLOR: #000000">(V));<br></span><span style="COLOR: #008080">43</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;sqrtP</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">)sqrt((</span><span style="COLOR: #0000ff">double</span><span style="COLOR: #000000">)P),Bsp</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">pow(B,sqrtP);<br></span><span style="COLOR: #008080">44</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;i</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">,val</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">sqrtP;</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">i,val</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">(val</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">(</span><span style="COLOR: #0000ff">long</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">long</span><span style="COLOR: #000000">)Bsp)</span><span style="COLOR: #000000">%</span><span style="COLOR: #000000">P)<br></span><span style="COLOR: #008080">45</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Hpush(val,i);<br></span><span style="COLOR: #008080">46</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;i</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">,val</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">sqrtP;</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">i,val</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">(val</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">(</span><span style="COLOR: #0000ff">long</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">long</span><span style="COLOR: #000000">)B)</span><span style="COLOR: #000000">%</span><span style="COLOR: #000000">P)<br></span><span style="COLOR: #008080">47</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br></span><span style="COLOR: #008080">48</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;h</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">(N</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">(</span><span style="COLOR: #0000ff">long</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">long</span><span style="COLOR: #000000">)pow(val,P</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">P,v</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">Hpop(h);<br></span><span style="COLOR: #008080">49</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(v</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">oo</span><span style="COLOR: #000000">&amp;&amp;</span><span style="COLOR: #000000">v</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">sqrtP</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">i</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">ret)&nbsp;&nbsp;&nbsp;&nbsp;ret</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">v</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">sqrtP</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">i;<br></span><span style="COLOR: #008080">50</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br></span><span style="COLOR: #008080">51</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(ret</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000">oo)&nbsp;&nbsp;&nbsp;&nbsp;puts(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">no&nbsp;solution</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br></span><span style="COLOR: #008080">52</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">else</span><span style="COLOR: #000000">&nbsp;&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">,ret);<br></span><span style="COLOR: #008080">53</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;}<br></span><span style="COLOR: #008080">54</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;<br></span><span style="COLOR: #008080">55</span>&nbsp;<span style="COLOR: #000000">}<br></span><span style="COLOR: #008080">56</span>&nbsp;<span style="COLOR: #000000"></span></div>
<br>
<img src ="http://www.cppblog.com/jsn1993/aggbug/113135.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/jsn1993/" target="_blank">jsn1993</a> 2010-04-21 14:58 <a href="http://www.cppblog.com/jsn1993/archive/2010/04/21/113135.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>SCTSC 2010 序列操作</title><link>http://www.cppblog.com/jsn1993/archive/2010/04/19/112972.html</link><dc:creator>jsn1993</dc:creator><author>jsn1993</author><pubDate>Mon, 19 Apr 2010 04:04:00 GMT</pubDate><guid>http://www.cppblog.com/jsn1993/archive/2010/04/19/112972.html</guid><wfw:comment>http://www.cppblog.com/jsn1993/comments/112972.html</wfw:comment><comments>http://www.cppblog.com/jsn1993/archive/2010/04/19/112972.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/jsn1993/comments/commentRss/112972.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/jsn1993/services/trackbacks/112972.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 题意：给定一个N&lt;=100000个数的01序列，要你支持共Q&lt;=100000个五种操作0 a b 把[a, b]区间内的所有数全变成0 1 a b 把[a, b]区间内的所有数全变成1 2 a b 把[a,b]区间内的所有数全部取反，也就是说把所有的0变成1，把所有的1变成0 3 a b 询问[a, b]区间内总共有多少个1 4 a b 询问[a, b]区间内最多有多少个连续的1 做法...&nbsp;&nbsp;<a href='http://www.cppblog.com/jsn1993/archive/2010/04/19/112972.html'>阅读全文</a><img src ="http://www.cppblog.com/jsn1993/aggbug/112972.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/jsn1993/" target="_blank">jsn1993</a> 2010-04-19 12:04 <a href="http://www.cppblog.com/jsn1993/archive/2010/04/19/112972.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>CQTSC 2010 内部白点</title><link>http://www.cppblog.com/jsn1993/archive/2010/04/17/112864.html</link><dc:creator>jsn1993</dc:creator><author>jsn1993</author><pubDate>Sat, 17 Apr 2010 12:56:00 GMT</pubDate><guid>http://www.cppblog.com/jsn1993/archive/2010/04/17/112864.html</guid><wfw:comment>http://www.cppblog.com/jsn1993/comments/112864.html</wfw:comment><comments>http://www.cppblog.com/jsn1993/archive/2010/04/17/112864.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/jsn1993/comments/commentRss/112864.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/jsn1993/services/trackbacks/112864.html</trackback:ping><description><![CDATA[题意：<br>给你N&lt;=100000个点&nbsp; 同样x坐标的形成竖线段 同样y坐标的形成横线段<br>让你求出竖线段和横线段的交点数，包括端点。<br><br>做法：<br>我的做法是先求出非端点的交点 最后答案便是 tot+N<br><br>先将数组复制一遍 一个数组按照1关键字x 2关键字y排序 另一个关键字顺序反一反<br>将x或者y离散化 这里以y为例<br>因为已经按y排过序 所以所有横线段已经都能得到了(相邻一段相同y坐标的点属于同一条线段)<br>并标记每条横线段的两个端点。<br><br>然后我们枚举按x坐标由左边向右边的每条竖线段<br>我们只要求出有多少横线段与它有交 便是这条竖线段形成的交点数<br>这等价于求出在当前x坐标的情况下 横线段的右端点x坐标大于当前竖线段x坐标的线数<br>这样就可以用线段树或者树状数组维护y坐标的点（即维护当前还存在的线段）就可以了<br><br>如何维护呢？<br>对于一条竖线段 我们枚举形成当前竖线的所有点 如果某个点已经是横线段的结尾 那就从树中删除这个y坐标<br>反之如果是横线段的开始 那就加入这个y坐标<br>在枚举之前当然要求当前线的交点个数：<br>对于枚举到的相邻两个相同x坐标的点 假设y1&lt;y2&nbsp; 我们求出 [y1,y2)的存在的线段个数 那便是交点个数<br><br>这样就在NLogN时间内解决了此题<br><br>ps：发觉我的基础太差了。。二分查找[y1,y2)的两个端点时候竟然忘记了 (y2-1)这个坐标事实上可能不存在<br>所以二分查找找端点的时候挂了。。<span style="COLOR: red; FONT-SIZE: 18pt">BS我把</span><br><br>本题加强版是 dhx学长 出的 Religious<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; BORDER-TOP: #cccccc 1px solid; BORDER-RIGHT: #cccccc 1px solid; PADDING-TOP: 4px"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="COLOR: #008080">&nbsp;1</span>&nbsp;<span style="COLOR: #000000">#include&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">cstdio</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">&nbsp;2</span>&nbsp;<span style="COLOR: #000000">#include&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">algorithm</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">&nbsp;3</span>&nbsp;<span style="COLOR: #000000"></span><span style="COLOR: #0000ff">using</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">namespace</span><span style="COLOR: #000000">&nbsp;std;<br></span><span style="COLOR: #008080">&nbsp;4</span>&nbsp;<span style="COLOR: #000000"></span><span style="COLOR: #0000ff">#define</span><span style="COLOR: #000000">&nbsp;n&nbsp;100005</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">&nbsp;5</span>&nbsp;<span style="COLOR: #000000"></span><span style="COLOR: #0000ff">struct</span><span style="COLOR: #000000">&nbsp;Tpoint<br></span><span style="COLOR: #008080">&nbsp;6</span>&nbsp;<span style="COLOR: #000000">{<br></span><span style="COLOR: #008080">&nbsp;7</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">#define</span><span style="COLOR: #000000">&nbsp;x0(i)&nbsp;p0[i].x</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">&nbsp;8</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">#define</span><span style="COLOR: #000000">&nbsp;y0(i)&nbsp;p0[i].y</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">&nbsp;9</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">#define</span><span style="COLOR: #000000">&nbsp;nod0(i)&nbsp;p0[i].nod</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">10</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">#define</span><span style="COLOR: #000000">&nbsp;x1(i)&nbsp;p1[i].x</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">11</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">#define</span><span style="COLOR: #000000">&nbsp;y1(i)&nbsp;p1[i].y</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">12</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">#define</span><span style="COLOR: #000000">&nbsp;nod1(i)&nbsp;p1[i].nod</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">13</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;x,y,nod;<br></span><span style="COLOR: #008080">14</span>&nbsp;<span style="COLOR: #000000">}&nbsp;&nbsp;&nbsp;&nbsp;p0[n],p1[n];<br></span><span style="COLOR: #008080">15</span>&nbsp;<span style="COLOR: #000000"></span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;N,ny[n],New,T[n],ret</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;<br></span><span style="COLOR: #008080">16</span>&nbsp;<span style="COLOR: #000000"></span><span style="COLOR: #0000ff">bool</span><span style="COLOR: #000000">&nbsp;sta[n],end[n];<br></span><span style="COLOR: #008080">17</span>&nbsp;<span style="COLOR: #000000">inline&nbsp;</span><span style="COLOR: #0000ff">bool</span><span style="COLOR: #000000">&nbsp;cmp0(</span><span style="COLOR: #0000ff">const</span><span style="COLOR: #000000">&nbsp;Tpoint&nbsp;</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">a,</span><span style="COLOR: #0000ff">const</span><span style="COLOR: #000000">&nbsp;Tpoint&nbsp;</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">b)<br></span><span style="COLOR: #008080">18</span>&nbsp;<span style="COLOR: #000000">{<br></span><span style="COLOR: #008080">19</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;a.y</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">b.y</span><span style="COLOR: #000000">||</span><span style="COLOR: #000000">a.y</span><span style="COLOR: #000000">==</span><span style="COLOR: #000000">b.y</span><span style="COLOR: #000000">&amp;&amp;</span><span style="COLOR: #000000">a.x</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">b.x;<br></span><span style="COLOR: #008080">20</span>&nbsp;<span style="COLOR: #000000">}<br></span><span style="COLOR: #008080">21</span>&nbsp;<span style="COLOR: #000000">inline&nbsp;</span><span style="COLOR: #0000ff">bool</span><span style="COLOR: #000000">&nbsp;cmp1(</span><span style="COLOR: #0000ff">const</span><span style="COLOR: #000000">&nbsp;Tpoint&nbsp;</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">a,</span><span style="COLOR: #0000ff">const</span><span style="COLOR: #000000">&nbsp;Tpoint&nbsp;</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">b)<br></span><span style="COLOR: #008080">22</span>&nbsp;<span style="COLOR: #000000">{<br></span><span style="COLOR: #008080">23</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;a.x</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">b.x</span><span style="COLOR: #000000">||</span><span style="COLOR: #000000">a.x</span><span style="COLOR: #000000">==</span><span style="COLOR: #000000">b.x</span><span style="COLOR: #000000">&amp;&amp;</span><span style="COLOR: #000000">a.y</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">b.y;<br></span><span style="COLOR: #008080">24</span>&nbsp;<span style="COLOR: #000000">}<br></span><span style="COLOR: #008080">25</span>&nbsp;<span style="COLOR: #000000">inline&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;find(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;x)<br></span><span style="COLOR: #008080">26</span>&nbsp;<span style="COLOR: #000000">{<br></span><span style="COLOR: #008080">27</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;l</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">,r</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">New;<br></span><span style="COLOR: #008080">28</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;mid</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">(l</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">r)</span><span style="COLOR: #000000">&gt;&gt;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">;l</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">r;mid</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">(l</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">r)</span><span style="COLOR: #000000">&gt;&gt;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">)<br></span><span style="COLOR: #008080">29</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(ny[mid]</span><span style="COLOR: #000000">&lt;=</span><span style="COLOR: #000000">x)&nbsp;&nbsp;&nbsp;&nbsp;l</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">mid;<br></span><span style="COLOR: #008080">30</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">else</span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;r</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">mid;<br></span><span style="COLOR: #008080">31</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(x</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">ny[r])&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;l;<br></span><span style="COLOR: #008080">32</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;r;<br></span><span style="COLOR: #008080">33</span>&nbsp;<span style="COLOR: #000000">}<br></span><span style="COLOR: #008080">34</span>&nbsp;<span style="COLOR: #000000">inline&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;Sum(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;x)<br></span><span style="COLOR: #008080">35</span>&nbsp;<span style="COLOR: #000000">{<br></span><span style="COLOR: #008080">36</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;ret</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;<br></span><span style="COLOR: #008080">37</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;(;x;x</span><span style="COLOR: #000000">-=</span><span style="COLOR: #000000">x</span><span style="COLOR: #000000">&amp;-</span><span style="COLOR: #000000">x)<br></span><span style="COLOR: #008080">38</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ret</span><span style="COLOR: #000000">+=</span><span style="COLOR: #000000">T[x];<br></span><span style="COLOR: #008080">39</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;ret;<br></span><span style="COLOR: #008080">40</span>&nbsp;<span style="COLOR: #000000">}<br></span><span style="COLOR: #008080">41</span>&nbsp;<span style="COLOR: #000000">inline&nbsp;</span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;Add(</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;delt)<br></span><span style="COLOR: #008080">42</span>&nbsp;<span style="COLOR: #000000">{<br></span><span style="COLOR: #008080">43</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;(;x</span><span style="COLOR: #000000">&lt;=</span><span style="COLOR: #000000">N;x</span><span style="COLOR: #000000">+=</span><span style="COLOR: #000000">x</span><span style="COLOR: #000000">&amp;-</span><span style="COLOR: #000000">x)<br></span><span style="COLOR: #008080">44</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;T[x]</span><span style="COLOR: #000000">+=</span><span style="COLOR: #000000">delt;<br></span><span style="COLOR: #008080">45</span>&nbsp;<span style="COLOR: #000000">}<br></span><span style="COLOR: #008080">46</span>&nbsp;<span style="COLOR: #000000"></span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;main()<br></span><span style="COLOR: #008080">47</span>&nbsp;<span style="COLOR: #000000">{<br></span><span style="COLOR: #008080">48</span>&nbsp;<span style="COLOR: #000000">&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></span><span style="COLOR: #008080">49</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;i</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;i</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">N;</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">i)<br></span><span style="COLOR: #008080">50</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;{<br></span><span style="COLOR: #008080">51</span>&nbsp;<span style="COLOR: #000000">&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">x0(i),</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">y0(i));<br></span><span style="COLOR: #008080">52</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;nod0(i)</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">i;nod1(i)</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">i;<br></span><span style="COLOR: #008080">53</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;x1(i)</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">x0(i),y1(i)</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">y0(i);<br></span><span style="COLOR: #008080">54</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;}<br></span><span style="COLOR: #008080">55</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;sort(p0,p0</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">N,cmp0);<br></span><span style="COLOR: #008080">56</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;sta[nod0(</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">)]</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">end[nod0(N</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">1</span><span style="COLOR: #000000">;<br></span><span style="COLOR: #008080">57</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;i</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;</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">i)<br></span><span style="COLOR: #008080">58</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sta[nod0(i)]</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">(y0(i)</span><span style="COLOR: #000000">!=</span><span style="COLOR: #000000">y0(i</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">));<br></span><span style="COLOR: #008080">59</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;i</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;i</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">N</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">i)<br></span><span style="COLOR: #008080">60</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end[nod0(i)]</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">(y0(i)</span><span style="COLOR: #000000">!=</span><span style="COLOR: #000000">y0(i</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">));<br></span><span style="COLOR: #008080">61</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;ny[</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">New]</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">y0(</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">);<br></span><span style="COLOR: #008080">62</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;i</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;</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">i)<br></span><span style="COLOR: #008080">63</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(y0(i)</span><span style="COLOR: #000000">!=</span><span style="COLOR: #000000">y0(i</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">))&nbsp;&nbsp;&nbsp;&nbsp;ny[</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">New]</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">y0(i);<br></span><span style="COLOR: #008080">64</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;sort(p1,p1</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">N,cmp1);<br></span><span style="COLOR: #008080">65</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;i</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">,k;i</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">N;i</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">k)<br></span><span style="COLOR: #008080">66</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;{<br></span><span style="COLOR: #008080">67</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;(k</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">;k</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">N</span><span style="COLOR: #000000">&amp;&amp;</span><span style="COLOR: #000000">x1(i)</span><span style="COLOR: #000000">==</span><span style="COLOR: #000000">x1(k);</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">k)<br></span><span style="COLOR: #008080">68</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(y1(k</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">)</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">y1(k)</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">)<br></span><span style="COLOR: #008080">69</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ret</span><span style="COLOR: #000000">+=</span><span style="COLOR: #000000">Sum(find(y1(k)</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">Sum(find(y1(k</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">)));<br></span><span style="COLOR: #008080">70</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;j</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">i;j</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">k;</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">j)<br></span><span style="COLOR: #008080">71</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br></span><span style="COLOR: #008080">72</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(sta[nod1(j)]</span><span style="COLOR: #000000">&amp;&amp;!</span><span style="COLOR: #000000">end[nod1(j)])<br></span><span style="COLOR: #008080">73</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Add(find(y1(j)),</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">);<br></span><span style="COLOR: #008080">74</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(</span><span style="COLOR: #000000">!</span><span style="COLOR: #000000">sta[nod1(j)]</span><span style="COLOR: #000000">&amp;&amp;</span><span style="COLOR: #000000">end[nod1(j)])<br></span><span style="COLOR: #008080">75</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Add(find(y1(j)),</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">);<br></span><span style="COLOR: #008080">76</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br></span><span style="COLOR: #008080">77</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;}<br></span><span style="COLOR: #008080">78</span>&nbsp;<span style="COLOR: #000000">&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">,N</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">ret);<br></span><span style="COLOR: #008080">79</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;<br></span><span style="COLOR: #008080">80</span>&nbsp;<span style="COLOR: #000000">}<br></span><span style="COLOR: #008080">81</span>&nbsp;<span style="COLOR: #000000"></span></div>
<br>
<img src ="http://www.cppblog.com/jsn1993/aggbug/112864.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/jsn1993/" target="_blank">jsn1993</a> 2010-04-17 20:56 <a href="http://www.cppblog.com/jsn1993/archive/2010/04/17/112864.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>NEERC 2006 Hard Life</title><link>http://www.cppblog.com/jsn1993/archive/2010/04/16/112773.html</link><dc:creator>jsn1993</dc:creator><author>jsn1993</author><pubDate>Fri, 16 Apr 2010 08:29:00 GMT</pubDate><guid>http://www.cppblog.com/jsn1993/archive/2010/04/16/112773.html</guid><wfw:comment>http://www.cppblog.com/jsn1993/comments/112773.html</wfw:comment><comments>http://www.cppblog.com/jsn1993/archive/2010/04/16/112773.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/jsn1993/comments/commentRss/112773.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/jsn1993/services/trackbacks/112773.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 题意：给定一个图(V&lt;=100,E&lt;=1000) 求一个子图(V',E') 使得|E'| 与 |V'|的比值最大，要求出这个子集。做法：比较裸的最大密度子图。设密度为R 要令R最大R=max{|E'|/|'V'|} 化简得到 max{|E'|-R*|'V'|}=0设 g(x)=max{|E'|-x*|'V'|}由Dinkelbach定理与该函数的单调性得到：&nbsp;&nbsp;&n...&nbsp;&nbsp;<a href='http://www.cppblog.com/jsn1993/archive/2010/04/16/112773.html'>阅读全文</a><img src ="http://www.cppblog.com/jsn1993/aggbug/112773.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/jsn1993/" target="_blank">jsn1993</a> 2010-04-16 16:29 <a href="http://www.cppblog.com/jsn1993/archive/2010/04/16/112773.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>SPOJ DISQUERY</title><link>http://www.cppblog.com/jsn1993/archive/2010/04/15/112626.html</link><dc:creator>jsn1993</dc:creator><author>jsn1993</author><pubDate>Thu, 15 Apr 2010 01:40:00 GMT</pubDate><guid>http://www.cppblog.com/jsn1993/archive/2010/04/15/112626.html</guid><wfw:comment>http://www.cppblog.com/jsn1993/comments/112626.html</wfw:comment><comments>http://www.cppblog.com/jsn1993/archive/2010/04/15/112626.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/jsn1993/comments/commentRss/112626.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/jsn1993/services/trackbacks/112626.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 题意：给定一棵N&lt;=100000个点的树，有Q&lt;=100000个询问，求(u,v)路径上边权最大值和最小值做法：动态树直接上了。。发觉在这里写的题是越来越水..注意要判空节点或者将空节点的最值赋为极限&nbsp;&nbsp;1#include&nbsp;&lt;cstdio&gt;&nbsp;&nbsp;2#define&nbsp;min(a,b)&nbsp;((a)&lt;(b)...&nbsp;&nbsp;<a href='http://www.cppblog.com/jsn1993/archive/2010/04/15/112626.html'>阅读全文</a><img src ="http://www.cppblog.com/jsn1993/aggbug/112626.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/jsn1993/" target="_blank">jsn1993</a> 2010-04-15 09:40 <a href="http://www.cppblog.com/jsn1993/archive/2010/04/15/112626.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>SPOJ GSS6</title><link>http://www.cppblog.com/jsn1993/archive/2010/04/14/112583.html</link><dc:creator>jsn1993</dc:creator><author>jsn1993</author><pubDate>Wed, 14 Apr 2010 13:25:00 GMT</pubDate><guid>http://www.cppblog.com/jsn1993/archive/2010/04/14/112583.html</guid><wfw:comment>http://www.cppblog.com/jsn1993/comments/112583.html</wfw:comment><comments>http://www.cppblog.com/jsn1993/archive/2010/04/14/112583.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/jsn1993/comments/commentRss/112583.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/jsn1993/services/trackbacks/112583.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 题意：给定一个数列，要求支持以下操作：I x y&nbsp;&nbsp;&nbsp; 在第x个数所在位置插入数y并将后面的全部右移动一位D x&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;删除第x个位置上的数R x y&nbsp;&nbsp;将第x个位置上的数替换为yQ x y&nbsp; 求[x,y]之间的最大子段和做法：如果不需要D和I操作那么线段树可以完美支持加入D和I操作后就...&nbsp;&nbsp;<a href='http://www.cppblog.com/jsn1993/archive/2010/04/14/112583.html'>阅读全文</a><img src ="http://www.cppblog.com/jsn1993/aggbug/112583.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/jsn1993/" target="_blank">jsn1993</a> 2010-04-14 21:25 <a href="http://www.cppblog.com/jsn1993/archive/2010/04/14/112583.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>SPOJ QTREE2</title><link>http://www.cppblog.com/jsn1993/archive/2010/04/14/112527.html</link><dc:creator>jsn1993</dc:creator><author>jsn1993</author><pubDate>Wed, 14 Apr 2010 01:54:00 GMT</pubDate><guid>http://www.cppblog.com/jsn1993/archive/2010/04/14/112527.html</guid><wfw:comment>http://www.cppblog.com/jsn1993/comments/112527.html</wfw:comment><comments>http://www.cppblog.com/jsn1993/archive/2010/04/14/112527.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/jsn1993/comments/commentRss/112527.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/jsn1993/services/trackbacks/112527.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 题意：给你一棵N个点的树要求支持两种操作：DIST a b&nbsp;&nbsp; 求a到b路径距离KTH a b k 求a到b路径上的第k个节点做法：还是动态树..跟QTREE本质没什么差别对于DIST 两次拉实然后求两段的SumKTH便是两次拉实后分情况讨论（在左边还是右边还是正好那个LCA)PS:如果本题改成求a到b路径上第k大的数字，那便是CTSC难度的了。。（network）&nbs...&nbsp;&nbsp;<a href='http://www.cppblog.com/jsn1993/archive/2010/04/14/112527.html'>阅读全文</a><img src ="http://www.cppblog.com/jsn1993/aggbug/112527.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/jsn1993/" target="_blank">jsn1993</a> 2010-04-14 09:54 <a href="http://www.cppblog.com/jsn1993/archive/2010/04/14/112527.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>CroatianOI 2009 OTOCI</title><link>http://www.cppblog.com/jsn1993/archive/2010/04/12/112368.html</link><dc:creator>jsn1993</dc:creator><author>jsn1993</author><pubDate>Mon, 12 Apr 2010 11:53:00 GMT</pubDate><guid>http://www.cppblog.com/jsn1993/archive/2010/04/12/112368.html</guid><wfw:comment>http://www.cppblog.com/jsn1993/comments/112368.html</wfw:comment><comments>http://www.cppblog.com/jsn1993/archive/2010/04/12/112368.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/jsn1993/comments/commentRss/112368.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/jsn1993/services/trackbacks/112368.html</trackback:ping><description><![CDATA[题意：<br>给定N个节点要求维护森林：<br>b x y表示查询x y的连通性 如果连通输出"no"否则输出"yes"并在x,y之间连边<br>p x y表示将x节点权值修改为y<br>e x y表示查询x到y路径上的权值和 如果连通输出答案否则输出"impossible"<br>N&lt;=30000 Q&lt;=300000<br><br>做法：<br>要在线么..动态树搞搞吧<br><br>对于B<br>查询两个节点是否在同一棵动态树中 其实便是拉实后看根节点是否一样<br>如果不连通 那么将其中一个节点变成所在动态树的根 然后接到另一个节点上去<br><br>对于P 没什么好说的 别忘了update<br><br>对于E 也没什么好说的 两次拉实就可以了 找到LCA然后查询<br><br><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; BORDER-TOP: #cccccc 1px solid; BORDER-RIGHT: #cccccc 1px solid; PADDING-TOP: 4px"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="COLOR: #008080">&nbsp;&nbsp;1</span>&nbsp;<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></span><span style="COLOR: #008080">&nbsp;&nbsp;2</span>&nbsp;<span style="COLOR: #000000"></span><span style="COLOR: #0000ff">struct</span><span style="COLOR: #000000">&nbsp;Tsplay<br></span><span style="COLOR: #008080">&nbsp;&nbsp;3</span>&nbsp;<span style="COLOR: #000000">{<br></span><span style="COLOR: #008080">&nbsp;&nbsp;4</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">#define</span><span style="COLOR: #000000">&nbsp;Lch(t)&nbsp;&nbsp;&nbsp;&nbsp;(T[t].l)</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">&nbsp;&nbsp;5</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">#define</span><span style="COLOR: #000000">&nbsp;Rch(t)&nbsp;&nbsp;&nbsp;&nbsp;(T[t].r)</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">&nbsp;&nbsp;6</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">#define</span><span style="COLOR: #000000">&nbsp;Par(t)&nbsp;&nbsp;&nbsp;&nbsp;(T[t].p)</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">&nbsp;&nbsp;7</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">#define</span><span style="COLOR: #000000">&nbsp;Sum(t)&nbsp;&nbsp;&nbsp;&nbsp;(T[t].sum)</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">&nbsp;&nbsp;8</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">#define</span><span style="COLOR: #000000">&nbsp;Val(t)&nbsp;&nbsp;&nbsp;&nbsp;(T[t].val)</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">&nbsp;&nbsp;9</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">#define</span><span style="COLOR: #000000">&nbsp;Rev(t)&nbsp;&nbsp;&nbsp;&nbsp;(T[t].rev)</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">&nbsp;10</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">#define</span><span style="COLOR: #000000">&nbsp;Root(t)&nbsp;&nbsp;&nbsp;&nbsp;(Lch(Par(t))!=t&amp;&amp;Rch(Par(t))!=t)</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">&nbsp;11</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;l,r,p;<br></span><span style="COLOR: #008080">&nbsp;12</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;sum,val;<br></span><span style="COLOR: #008080">&nbsp;13</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">bool</span><span style="COLOR: #000000">&nbsp;rev;<br></span><span style="COLOR: #008080">&nbsp;14</span>&nbsp;<span style="COLOR: #000000">}&nbsp;&nbsp;&nbsp;&nbsp;T[</span><span style="COLOR: #000000">30005</span><span style="COLOR: #000000">];<br></span><span style="COLOR: #008080">&nbsp;15</span>&nbsp;<span style="COLOR: #000000"></span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;Stk[</span><span style="COLOR: #000000">30005</span><span style="COLOR: #000000">],N,Q,x,y;<br></span><span style="COLOR: #008080">&nbsp;16</span>&nbsp;<span style="COLOR: #000000"></span><span style="COLOR: #0000ff">char</span><span style="COLOR: #000000">&nbsp;cmd[</span><span style="COLOR: #000000">1005</span><span style="COLOR: #000000">];<br></span><span style="COLOR: #008080">&nbsp;17</span>&nbsp;<span style="COLOR: #000000">inline&nbsp;</span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;Down(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;x)<br></span><span style="COLOR: #008080">&nbsp;18</span>&nbsp;<span style="COLOR: #000000">{<br></span><span style="COLOR: #008080">&nbsp;19</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(Rev(x))<br></span><span style="COLOR: #008080">&nbsp;20</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;{<br></span><span style="COLOR: #008080">&nbsp;21</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;t</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">Lch(x);Lch(x)</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">Rch(x);Rch(x)</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">t;<br></span><span style="COLOR: #008080">&nbsp;22</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Rev(Lch(x))</span><span style="COLOR: #000000">^=</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">,Rev(Rch(x))</span><span style="COLOR: #000000">^=</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">,Rev(x)</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;<br></span><span style="COLOR: #008080">&nbsp;23</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;}<br></span><span style="COLOR: #008080">&nbsp;24</span>&nbsp;<span style="COLOR: #000000">}<br></span><span style="COLOR: #008080">&nbsp;25</span>&nbsp;<span style="COLOR: #000000">inline&nbsp;</span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;Tupdate(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;x)<br></span><span style="COLOR: #008080">&nbsp;26</span>&nbsp;<span style="COLOR: #000000">{<br></span><span style="COLOR: #008080">&nbsp;27</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;Sum(x)</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">Sum(Lch(x))</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">Val(x)</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">Sum(Rch(x));<br></span><span style="COLOR: #008080">&nbsp;28</span>&nbsp;<span style="COLOR: #000000">}<br></span><span style="COLOR: #008080">&nbsp;29</span>&nbsp;<span style="COLOR: #000000">inline&nbsp;</span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;zig(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;x)<br></span><span style="COLOR: #008080">&nbsp;30</span>&nbsp;<span style="COLOR: #000000">{<br></span><span style="COLOR: #008080">&nbsp;31</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;y</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">Par(x),z</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">Par(y);<br></span><span style="COLOR: #008080">&nbsp;32</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;Lch(y)</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">Rch(x),Par(Lch(y))</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">Rch(x)</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">y;<br></span><span style="COLOR: #008080">&nbsp;33</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(Lch(z)</span><span style="COLOR: #000000">==</span><span style="COLOR: #000000">y)&nbsp;&nbsp;&nbsp;&nbsp;Lch(z)</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">x;<br></span><span style="COLOR: #008080">&nbsp;34</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">else</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">&nbsp;35</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(Rch(z)</span><span style="COLOR: #000000">==</span><span style="COLOR: #000000">y)&nbsp;&nbsp;&nbsp;&nbsp;Rch(z)</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">x;<br></span><span style="COLOR: #008080">&nbsp;36</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;Par(x)</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">z,Par(y)</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">x;<br></span><span style="COLOR: #008080">&nbsp;37</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;Tupdate(y);<br></span><span style="COLOR: #008080">&nbsp;38</span>&nbsp;<span style="COLOR: #000000">}<br></span><span style="COLOR: #008080">&nbsp;39</span>&nbsp;<span style="COLOR: #000000">inline&nbsp;</span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;zag(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;x)<br></span><span style="COLOR: #008080">&nbsp;40</span>&nbsp;<span style="COLOR: #000000">{<br></span><span style="COLOR: #008080">&nbsp;41</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;y</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">Par(x),z</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">Par(y);<br></span><span style="COLOR: #008080">&nbsp;42</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;Rch(y)</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">Lch(x),Par(Rch(y))</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">Lch(x)</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">y;<br></span><span style="COLOR: #008080">&nbsp;43</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(Lch(z)</span><span style="COLOR: #000000">==</span><span style="COLOR: #000000">y)&nbsp;&nbsp;&nbsp;&nbsp;Lch(z)</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">x;<br></span><span style="COLOR: #008080">&nbsp;44</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">else</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">&nbsp;45</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(Rch(z)</span><span style="COLOR: #000000">==</span><span style="COLOR: #000000">y)&nbsp;&nbsp;&nbsp;&nbsp;Rch(z)</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">x;<br></span><span style="COLOR: #008080">&nbsp;46</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;Par(x)</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">z,Par(y)</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">x;<br></span><span style="COLOR: #008080">&nbsp;47</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;Tupdate(y);<br></span><span style="COLOR: #008080">&nbsp;48</span>&nbsp;<span style="COLOR: #000000">}<br></span><span style="COLOR: #008080">&nbsp;49</span>&nbsp;<span style="COLOR: #000000">inline&nbsp;</span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;splay(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;x)<br></span><span style="COLOR: #008080">&nbsp;50</span>&nbsp;<span style="COLOR: #000000">{<br></span><span style="COLOR: #008080">&nbsp;51</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;Stk[</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">Stk[</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">]]</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">x;<br></span><span style="COLOR: #008080">&nbsp;52</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;u</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">x;</span><span style="COLOR: #000000">!</span><span style="COLOR: #000000">Root(u);u</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">Par(u))<br></span><span style="COLOR: #008080">&nbsp;53</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Stk[</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">Stk[</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">]]</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">Par(u);<br></span><span style="COLOR: #008080">&nbsp;54</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;(;Stk[</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">];</span><span style="COLOR: #000000">--</span><span style="COLOR: #000000">Stk[</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">])<br></span><span style="COLOR: #008080">&nbsp;55</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Down(Stk[Stk[</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">]]);<br></span><span style="COLOR: #008080">&nbsp;56</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;y,z;</span><span style="COLOR: #000000">!</span><span style="COLOR: #000000">Root(x);)<br></span><span style="COLOR: #008080">&nbsp;57</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;{<br></span><span style="COLOR: #008080">&nbsp;58</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;y</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">Par(x),z</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">Par(y);<br></span><span style="COLOR: #008080">&nbsp;59</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(Root(y))<br></span><span style="COLOR: #008080">&nbsp;60</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(Lch(y)</span><span style="COLOR: #000000">==</span><span style="COLOR: #000000">x)&nbsp;&nbsp;&nbsp;&nbsp;zig(x);<br></span><span style="COLOR: #008080">&nbsp;61</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">else</span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;zag(x);<br></span><span style="COLOR: #008080">&nbsp;62</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">else</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">&nbsp;63</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(Lch(z)</span><span style="COLOR: #000000">==</span><span style="COLOR: #000000">y)<br></span><span style="COLOR: #008080">&nbsp;64</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(Lch(y)</span><span style="COLOR: #000000">==</span><span style="COLOR: #000000">x)&nbsp;&nbsp;&nbsp;&nbsp;zig(y),zig(x);<br></span><span style="COLOR: #008080">&nbsp;65</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">else</span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;zag(x),zig(x);<br></span><span style="COLOR: #008080">&nbsp;66</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">else</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">&nbsp;67</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(Rch(y)</span><span style="COLOR: #000000">==</span><span style="COLOR: #000000">x)&nbsp;&nbsp;&nbsp;&nbsp;zag(y),zag(x);<br></span><span style="COLOR: #008080">&nbsp;68</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">else</span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;zig(x),zag(x);<br></span><span style="COLOR: #008080">&nbsp;69</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;}<br></span><span style="COLOR: #008080">&nbsp;70</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;Tupdate(x);<br></span><span style="COLOR: #008080">&nbsp;71</span>&nbsp;<span style="COLOR: #000000">}<br></span><span style="COLOR: #008080">&nbsp;72</span>&nbsp;<span style="COLOR: #000000">inline&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;Expose(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;u)<br></span><span style="COLOR: #008080">&nbsp;73</span>&nbsp;<span style="COLOR: #000000">{<br></span><span style="COLOR: #008080">&nbsp;74</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;v</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;<br></span><span style="COLOR: #008080">&nbsp;75</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;(;u;u</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">Par(u))<br></span><span style="COLOR: #008080">&nbsp;76</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;splay(u),Rch(u)</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">v,Tupdate(v</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">u);<br></span><span style="COLOR: #008080">&nbsp;77</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;(;Lch(v);v</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">Lch(v));<br></span><span style="COLOR: #008080">&nbsp;78</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;v;<br></span><span style="COLOR: #008080">&nbsp;79</span>&nbsp;<span style="COLOR: #000000">}<br></span><span style="COLOR: #008080">&nbsp;80</span>&nbsp;<span style="COLOR: #000000">inline&nbsp;</span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;Modify(</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)<br></span><span style="COLOR: #008080">&nbsp;81</span>&nbsp;<span style="COLOR: #000000">{<br></span><span style="COLOR: #008080">&nbsp;82</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;splay(x),Val(x)</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">y,Tupdate(x);<br></span><span style="COLOR: #008080">&nbsp;83</span>&nbsp;<span style="COLOR: #000000">}<br></span><span style="COLOR: #008080">&nbsp;84</span>&nbsp;<span style="COLOR: #000000">inline&nbsp;</span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;Query(</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)<br></span><span style="COLOR: #008080">&nbsp;85</span>&nbsp;<span style="COLOR: #000000">{<br></span><span style="COLOR: #008080">&nbsp;86</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;Ry</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">Expose(y),Rx</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">Expose(x);<br></span><span style="COLOR: #008080">&nbsp;87</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(Rx</span><span style="COLOR: #000000">!=</span><span style="COLOR: #000000">Ry)&nbsp;&nbsp;&nbsp;&nbsp;puts(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">impossible</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br></span><span style="COLOR: #008080">&nbsp;88</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">else</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">&nbsp;89</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;u</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">y,v</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;u;u</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">Par(u))<br></span><span style="COLOR: #008080">&nbsp;90</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;{<br></span><span style="COLOR: #008080">&nbsp;91</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(splay(u),</span><span style="COLOR: #000000">!</span><span style="COLOR: #000000">Par(u))<br></span><span style="COLOR: #008080">&nbsp;92</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br></span><span style="COLOR: #008080">&nbsp;93</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">%d\n</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,Sum(Rch(u))</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">Val(u)</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">Sum(v));<br></span><span style="COLOR: #008080">&nbsp;94</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">;<br></span><span style="COLOR: #008080">&nbsp;95</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br></span><span style="COLOR: #008080">&nbsp;96</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Rch(u)</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">v,Tupdate(v</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">u);<br></span><span style="COLOR: #008080">&nbsp;97</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;}<br></span><span style="COLOR: #008080">&nbsp;98</span>&nbsp;<span style="COLOR: #000000">}<br></span><span style="COLOR: #008080">&nbsp;99</span>&nbsp;<span style="COLOR: #000000">inline&nbsp;</span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;Connect(</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)<br></span><span style="COLOR: #008080">100</span>&nbsp;<span style="COLOR: #000000">{<br></span><span style="COLOR: #008080">101</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;Ry</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">Expose(y),Rx</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">Expose(x);<br></span><span style="COLOR: #008080">102</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(Rx</span><span style="COLOR: #000000">==</span><span style="COLOR: #000000">Ry)&nbsp;&nbsp;&nbsp;&nbsp;puts(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">no</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br></span><span style="COLOR: #008080">103</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">else</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">104</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;{<br></span><span style="COLOR: #008080">105</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;splay(x);<br></span><span style="COLOR: #008080">106</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Rch(x)</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">,Rev(x)</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">,Par(x)</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">y;<br></span><span style="COLOR: #008080">107</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;puts(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">yes</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br></span><span style="COLOR: #008080">108</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;}<br></span><span style="COLOR: #008080">109</span>&nbsp;<span style="COLOR: #000000">}<br></span><span style="COLOR: #008080">110</span>&nbsp;<span style="COLOR: #000000"></span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;main()<br></span><span style="COLOR: #008080">111</span>&nbsp;<span style="COLOR: #000000">{<br></span><span style="COLOR: #008080">112</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;freopen(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">otoci.in</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">r</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,stdin);<br></span><span style="COLOR: #008080">113</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;freopen(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">otoci.out</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">w</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,stdout);<br></span><span style="COLOR: #008080">114</span>&nbsp;<span style="COLOR: #000000">&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></span><span style="COLOR: #008080">115</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;i</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;</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">i)<br></span><span style="COLOR: #008080">116</span>&nbsp;<span style="COLOR: #000000">&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">Val(i)),Sum(i)</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">Val(i);<br></span><span style="COLOR: #008080">117</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&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">Q);Q</span><span style="COLOR: #000000">--</span><span style="COLOR: #000000">;)<br></span><span style="COLOR: #008080">118</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;{<br></span><span style="COLOR: #008080">119</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;scanf(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">%s%d%d</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,cmd,</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">x,</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">y);<br></span><span style="COLOR: #008080">120</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(cmd[</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">]</span><span style="COLOR: #000000">==</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">e</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">)&nbsp;&nbsp;&nbsp;&nbsp;Query(x,y);<br></span><span style="COLOR: #008080">121</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">else</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">122</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(cmd[</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">]</span><span style="COLOR: #000000">==</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">b</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">)&nbsp;&nbsp;&nbsp;&nbsp;Connect(x,y);<br></span><span style="COLOR: #008080">123</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">else</span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;Modify(x,y);<br></span><span style="COLOR: #008080">124</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;}<br></span><span style="COLOR: #008080">125</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;<br></span><span style="COLOR: #008080">126</span>&nbsp;<span style="COLOR: #000000">}<br></span><span style="COLOR: #008080">127</span>&nbsp;<span style="COLOR: #000000"><br></span><span style="COLOR: #008080">128</span>&nbsp;<span style="COLOR: #000000"></span></div>
<br>
<img src ="http://www.cppblog.com/jsn1993/aggbug/112368.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/jsn1993/" target="_blank">jsn1993</a> 2010-04-12 19:53 <a href="http://www.cppblog.com/jsn1993/archive/2010/04/12/112368.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>