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

<channel>
	<title>Greenmoon55's Blog</title>
	<atom:link href="http://greenmoon55.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://greenmoon55.com</link>
	<description>Just another WordPress weblog</description>
	<lastBuildDate>Sat, 12 May 2012 15:28:00 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Google Code Jam 2012</title>
		<link>http://greenmoon55.com/google-code-jam-2012/</link>
		<comments>http://greenmoon55.com/google-code-jam-2012/#comments</comments>
		<pubDate>Sat, 12 May 2012 04:12:33 +0000</pubDate>
		<dc:creator>Greenmoon55</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[CodeJam]]></category>

		<guid isPermaLink="false">http://greenmoon55.com/?p=366</guid>
		<description><![CDATA[Qualification Round Problem A. Speaking in Tongues 简单的按规律替换字符串 Problem B. Dancing With the Googlers 忘记了具体内容了，反正要注意边界特殊情况。 Problem C. Recycled Numbers 比赛时想不明白 Case #4，于是没交大数据，后来看了 Contest Analysis 才知道有1212这种情况，会重复。比赛的时候移位是用字符串实现的。。后来才改过来。看了代码 Contest Analysis 的才知道不用数组记录数字是否出现的，只要移回原数就退出，即可避免循环节的问题。 #include &#60;iostream&#62; #include &#60;cstdio&#62; using namespace std; &#160; int a, b; long long ans; &#160; void work&#40;int num&#41; &#123; int temp = num; int base = 1; [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Qualification Round</strong><br />
Problem A. Speaking in Tongues<br />
简单的按规律替换字符串<br />
Problem B. Dancing With the Googlers<br />
忘记了具体内容了，反正要注意边界特殊情况。<br />
Problem C. Recycled Numbers<br />
比赛时想不明白 Case #4，于是没交大数据，后来看了 Contest Analysis 才知道有1212这种情况，会重复。比赛的时候移位是用字符串实现的。。后来才改过来。看了代码 Contest Analysis 的才知道不用数组记录数字是否出现的，<strong>只要移回原数就退出</strong>，即可避免循环节的问题。</p>

<div class="wp_syntax"><div class="code"><pre class="cpp" style="font-family:monospace;"><span style="color: #339900;">#include &lt;iostream&gt;</span>
<span style="color: #339900;">#include &lt;cstdio&gt;</span>
<span style="color: #0000ff;">using</span> <span style="color: #0000ff;">namespace</span> std<span style="color: #008080;">;</span>
&nbsp;
<span style="color: #0000ff;">int</span> a, b<span style="color: #008080;">;</span>
<span style="color: #0000ff;">long</span> <span style="color: #0000ff;">long</span> ans<span style="color: #008080;">;</span>
&nbsp;
<span style="color: #0000ff;">void</span> work<span style="color: #008000;">&#40;</span><span style="color: #0000ff;">int</span> num<span style="color: #008000;">&#41;</span>
<span style="color: #008000;">&#123;</span>
    <span style="color: #0000ff;">int</span> temp <span style="color: #000080;">=</span> num<span style="color: #008080;">;</span>
    <span style="color: #0000ff;">int</span> base <span style="color: #000080;">=</span> <span style="color: #0000dd;">1</span><span style="color: #008080;">;</span>
    <span style="color: #0000ff;">int</span> digit <span style="color: #000080;">=</span> <span style="color: #0000dd;">1</span><span style="color: #008080;">;</span>
    <span style="color: #0000ff;">while</span> <span style="color: #008000;">&#40;</span>temp <span style="color: #000040;">/</span> <span style="color: #0000dd;">10</span> <span style="color: #000080;">&gt;</span> <span style="color: #0000dd;">0</span><span style="color: #008000;">&#41;</span>
    <span style="color: #008000;">&#123;</span>
        base <span style="color: #000040;">*</span><span style="color: #000080;">=</span> <span style="color: #0000dd;">10</span><span style="color: #008080;">;</span>
        temp <span style="color: #000040;">/</span><span style="color: #000080;">=</span> <span style="color: #0000dd;">10</span><span style="color: #008080;">;</span>
        <span style="color: #000040;">++</span>digit<span style="color: #008080;">;</span>
    <span style="color: #008000;">&#125;</span>
    <span style="color: #0000ff;">int</span> move<span style="color: #008080;">;</span>
    <span style="color: #0000ff;">int</span> a<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">10</span><span style="color: #008000;">&#93;</span><span style="color: #008080;">;</span>
    temp <span style="color: #000080;">=</span> num<span style="color: #008080;">;</span>
    <span style="color: #0000ff;">for</span> <span style="color: #008000;">&#40;</span><span style="color: #0000ff;">int</span> i <span style="color: #000080;">=</span> <span style="color: #0000dd;">0</span><span style="color: #008080;">;</span> i <span style="color: #000080;">&lt;</span> digit <span style="color: #000040;">-</span> <span style="color: #0000dd;">1</span><span style="color: #008080;">;</span> i<span style="color: #000040;">++</span><span style="color: #008000;">&#41;</span>
    <span style="color: #008000;">&#123;</span>
        move <span style="color: #000080;">=</span> temp <span style="color: #000040;">%</span> <span style="color: #0000dd;">10</span><span style="color: #008080;">;</span>
        temp <span style="color: #000040;">/</span><span style="color: #000080;">=</span> <span style="color: #0000dd;">10</span><span style="color: #008080;">;</span>
        temp <span style="color: #000040;">+</span><span style="color: #000080;">=</span> base <span style="color: #000040;">*</span> move<span style="color: #008080;">;</span>
        a<span style="color: #008000;">&#91;</span>i<span style="color: #008000;">&#93;</span> <span style="color: #000080;">=</span> temp<span style="color: #008080;">;</span>
        <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>temp <span style="color: #000080;">&gt;</span> num <span style="color: #000040;">&amp;&amp;</span> temp <span style="color: #000080;">&lt;=</span> b<span style="color: #008000;">&#41;</span>
        <span style="color: #008000;">&#123;</span>
            ans<span style="color: #000040;">++</span><span style="color: #008080;">;</span>
            <span style="color: #666666;">// 判断 temp 是否出现过</span>
            <span style="color: #0000ff;">for</span> <span style="color: #008000;">&#40;</span><span style="color: #0000ff;">int</span> j <span style="color: #000080;">=</span> <span style="color: #0000dd;">0</span><span style="color: #008080;">;</span> j <span style="color: #000080;">&lt;</span> i<span style="color: #008080;">;</span> j<span style="color: #000040;">++</span><span style="color: #008000;">&#41;</span>
                <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>a<span style="color: #008000;">&#91;</span>i<span style="color: #008000;">&#93;</span> <span style="color: #000080;">==</span> a<span style="color: #008000;">&#91;</span>j<span style="color: #008000;">&#93;</span><span style="color: #008000;">&#41;</span>
                <span style="color: #008000;">&#123;</span>
                    <span style="color: #000040;">--</span>ans<span style="color: #008080;">;</span>
                    <span style="color: #0000ff;">break</span><span style="color: #008080;">;</span>
                <span style="color: #008000;">&#125;</span>
        <span style="color: #008000;">&#125;</span>
&nbsp;
    <span style="color: #008000;">&#125;</span>
<span style="color: #008000;">&#125;</span>
&nbsp;
<span style="color: #0000ff;">int</span> main<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span>
<span style="color: #008000;">&#123;</span>
    <span style="color: #0000ff;">int</span> t<span style="color: #008080;">;</span>
    <span style="color: #0000dd;">cin</span> <span style="color: #000080;">&gt;&gt;</span> t<span style="color: #008080;">;</span>
    <span style="color: #0000ff;">for</span> <span style="color: #008000;">&#40;</span><span style="color: #0000ff;">int</span> tcase <span style="color: #000080;">=</span> <span style="color: #0000dd;">1</span><span style="color: #008080;">;</span> tcase <span style="color: #000080;">&lt;=</span> t<span style="color: #008080;">;</span> tcase<span style="color: #000040;">++</span><span style="color: #008000;">&#41;</span>
    <span style="color: #008000;">&#123;</span>
        <span style="color: #0000dd;">scanf</span><span style="color: #008000;">&#40;</span><span style="color: #FF0000;">&quot;%d%d&quot;</span>, <span style="color: #000040;">&amp;</span>a, <span style="color: #000040;">&amp;</span>b<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
        ans <span style="color: #000080;">=</span> <span style="color: #0000dd;">0</span><span style="color: #008080;">;</span>
        <span style="color: #0000ff;">for</span> <span style="color: #008000;">&#40;</span><span style="color: #0000ff;">int</span> i <span style="color: #000080;">=</span> a<span style="color: #008080;">;</span> i <span style="color: #000080;">&lt;</span> b<span style="color: #008080;">;</span> i<span style="color: #000040;">++</span><span style="color: #008000;">&#41;</span>
        <span style="color: #008000;">&#123;</span>
            work<span style="color: #008000;">&#40;</span>i<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
        <span style="color: #008000;">&#125;</span>
        <span style="color: #0000dd;">printf</span><span style="color: #008000;">&#40;</span><span style="color: #FF0000;">&quot;Case #%d: &quot;</span>, tcase<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
        <span style="color: #0000dd;">cout</span> <span style="color: #000080;">&lt;&lt;</span> ans <span style="color: #000080;">&lt;&lt;</span> endl<span style="color: #008080;">;</span>
    <span style="color: #008000;">&#125;</span>
    <span style="color: #0000ff;">return</span> <span style="color: #0000dd;">0</span><span style="color: #008080;">;</span>
<span style="color: #008000;">&#125;</span></pre></div></div>

<p><strong>Round 1B</strong><br />
Problem A. Safety in Numbers<br />
这道题非常好玩。题意是这样的：每位选手的得分 = 评委给分 + 所有选手得到的评委给分和 * 这位选手的观众投票率(0-100%)。每个观众只能投一个选手，现在要淘汰得分最低的选手，若有多位选手得分相同，且都为最低分数，那么没人会被淘汰。求每位选手至少需要得到多少观众投票才能不被淘汰。</p>
<p>第一个想法就是先不考虑观众投票，对于当前选手A，找现在得分最低的选手B，算一下A要多少投票率才能超过剩下的票都投B的得分。这个想法是错误的。因为算完之后，其他多个选手可能比A、B得分都少，只需要让A的得分大于等于所有人都最低分数即可。</p>
<p>看看 Case #4，</p>
<blockquote><p>
Input: 3 24 30 21<br />
Output: 34.666667 26.666667 38.666667
</p></blockquote>
<p>每个人的得分是相同的！这是一个巧合吗？不是的，由于评委给分已知，每个观众只能投一票，所有选手的得分总和是固定的，那么每个选手只要得到 所有选手的得分总和 / 选手个数 即可保证不被淘汰。那么，先求出平均得分，然后对每个选手解方程求投票率即可。</p>
<p>小数据里有这样一种情况。</p>
<blockquote><p>8 0 0 0 0 72 0 0 0</p></blockquote>
<p>每位选手的平均得分是(72 + 72) / 8 = 18，显然72已经远远超过18了。那么此时就不考虑72（也就是说72不需要观众投票），平均得分为(0 + 72) /7 = 10.2857143，然后投票率为 (10.2857143 &#8211; 0) / 72 = 14.2857143%。</p>
<p>这样就可以过小数据了，不过还有一个问题，如果去掉72之后，仍然有数字大于平均得分怎么办？<br />
先从大到小排个序，然后依次考虑即可，大于平均得分就说明这位选手不需要投票，答案为 0。最后的就肯定需要投票啦，不管他的评委得分是多少，如果得到100%的观众投票就肯定不会被淘汰，如：</p>
<blockquote><p>2 10 0</p></blockquote>

<div class="wp_syntax"><div class="code"><pre class="cpp" style="font-family:monospace;"><span style="color: #339900;">#include &lt;iostream&gt;</span>
<span style="color: #339900;">#include &lt;cstdio&gt;</span>
<span style="color: #339900;">#include &lt;cstring&gt;</span>
<span style="color: #339900;">#include &lt;algorithm&gt;</span>
<span style="color: #0000ff;">using</span> <span style="color: #0000ff;">namespace</span> std<span style="color: #008080;">;</span>
&nbsp;
<span style="color: #0000ff;">int</span> num<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">250</span><span style="color: #008000;">&#93;</span>,num2<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">250</span><span style="color: #008000;">&#93;</span><span style="color: #008080;">;</span>
<span style="color: #0000ff;">int</span> main<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span>
<span style="color: #008000;">&#123;</span>
    <span style="color: #0000ff;">int</span> t<span style="color: #008080;">;</span>
    <span style="color: #0000ff;">int</span> n<span style="color: #008080;">;</span>
    <span style="color: #0000dd;">cin</span> <span style="color: #000080;">&gt;&gt;</span> t<span style="color: #008080;">;</span>
    <span style="color: #0000ff;">for</span> <span style="color: #008000;">&#40;</span><span style="color: #0000ff;">int</span> tcase <span style="color: #000080;">=</span> <span style="color: #0000dd;">1</span><span style="color: #008080;">;</span> tcase <span style="color: #000080;">&lt;=</span> t<span style="color: #008080;">;</span> tcase<span style="color: #000040;">++</span><span style="color: #008000;">&#41;</span>
    <span style="color: #008000;">&#123;</span>
        <span style="color: #0000dd;">cin</span> <span style="color: #000080;">&gt;&gt;</span> n<span style="color: #008080;">;</span>
        <span style="color: #0000ff;">int</span> sum <span style="color: #000080;">=</span> <span style="color: #0000dd;">0</span><span style="color: #008080;">;</span>
        <span style="color: #0000ff;">for</span> <span style="color: #008000;">&#40;</span><span style="color: #0000ff;">int</span> i <span style="color: #000080;">=</span> <span style="color: #0000dd;">0</span><span style="color: #008080;">;</span> i <span style="color: #000080;">&lt;</span> n<span style="color: #008080;">;</span> i<span style="color: #000040;">++</span><span style="color: #008000;">&#41;</span>
        <span style="color: #008000;">&#123;</span>
            <span style="color: #0000dd;">cin</span> <span style="color: #000080;">&gt;&gt;</span> num<span style="color: #008000;">&#91;</span>i<span style="color: #008000;">&#93;</span><span style="color: #008080;">;</span>
            sum <span style="color: #000040;">+</span><span style="color: #000080;">=</span> num<span style="color: #008000;">&#91;</span>i<span style="color: #008000;">&#93;</span><span style="color: #008080;">;</span>
        <span style="color: #008000;">&#125;</span>
        <span style="color: #0000dd;">memcpy</span><span style="color: #008000;">&#40;</span>num2, num, <span style="color: #0000dd;">sizeof</span><span style="color: #008000;">&#40;</span>num2<span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
        sort<span style="color: #008000;">&#40;</span>num, num<span style="color: #000040;">+</span>n, greater<span style="color: #000080;">&lt;</span><span style="color: #0000ff;">int</span><span style="color: #000080;">&gt;</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
        <span style="color: #0000ff;">double</span> temp <span style="color: #000080;">=</span> <span style="color: #008000;">&#40;</span>sum <span style="color: #000040;">*</span> <span style="color: #0000dd;">2</span><span style="color: #008000;">&#41;</span> <span style="color: #000040;">/</span> <span style="color: #008000;">&#40;</span><span style="color: #0000ff;">double</span><span style="color: #008000;">&#41;</span>n<span style="color: #008080;">;</span>
        <span style="color: #0000ff;">int</span> count <span style="color: #000080;">=</span> n<span style="color: #008080;">;</span>
        <span style="color: #0000ff;">int</span> total <span style="color: #000080;">=</span> sum<span style="color: #008080;">;</span>
        <span style="color: #0000ff;">for</span> <span style="color: #008000;">&#40;</span><span style="color: #0000ff;">int</span> i <span style="color: #000080;">=</span> <span style="color: #0000dd;">0</span><span style="color: #008080;">;</span> i <span style="color: #000080;">&lt;</span> n<span style="color: #008080;">;</span> i<span style="color: #000040;">++</span><span style="color: #008000;">&#41;</span>
        <span style="color: #008000;">&#123;</span>
            <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>temp <span style="color: #000080;">&lt;</span> num<span style="color: #008000;">&#91;</span>i<span style="color: #008000;">&#93;</span><span style="color: #008000;">&#41;</span>
            <span style="color: #008000;">&#123;</span>
                total<span style="color: #000040;">-</span><span style="color: #000080;">=</span>num<span style="color: #008000;">&#91;</span>i<span style="color: #008000;">&#93;</span><span style="color: #008080;">;</span>
                <span style="color: #000040;">--</span>count<span style="color: #008080;">;</span>
                temp <span style="color: #000080;">=</span> <span style="color: #008000;">&#40;</span>total <span style="color: #000040;">+</span> sum<span style="color: #008000;">&#41;</span> <span style="color: #000040;">/</span> <span style="color: #008000;">&#40;</span><span style="color: #0000ff;">double</span><span style="color: #008000;">&#41;</span>count<span style="color: #008080;">;</span>
            <span style="color: #008000;">&#125;</span>
        <span style="color: #008000;">&#125;</span>
        <span style="color: #0000dd;">printf</span><span style="color: #008000;">&#40;</span><span style="color: #FF0000;">&quot;Case #%d: &quot;</span>, tcase<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
        <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>num2<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">0</span><span style="color: #008000;">&#93;</span> <span style="color: #000080;">&gt;</span> temp<span style="color: #008000;">&#41;</span> <span style="color: #0000dd;">printf</span><span style="color: #008000;">&#40;</span><span style="color: #FF0000;">&quot;0&quot;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
        <span style="color: #0000ff;">else</span> <span style="color: #0000dd;">printf</span><span style="color: #008000;">&#40;</span><span style="color: #FF0000;">&quot;%lf&quot;</span>, <span style="color: #008000;">&#40;</span>temp <span style="color: #000040;">-</span> num2<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">0</span><span style="color: #008000;">&#93;</span><span style="color: #008000;">&#41;</span> <span style="color: #000040;">/</span> sum <span style="color: #000040;">*</span> <span style="color: #0000dd;">100</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
        <span style="color: #0000ff;">for</span> <span style="color: #008000;">&#40;</span><span style="color: #0000ff;">int</span> i <span style="color: #000080;">=</span> <span style="color: #0000dd;">1</span><span style="color: #008080;">;</span> i <span style="color: #000080;">&lt;</span> n<span style="color: #008080;">;</span> i<span style="color: #000040;">++</span><span style="color: #008000;">&#41;</span>
        <span style="color: #008000;">&#123;</span>
            <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>num2<span style="color: #008000;">&#91;</span>i<span style="color: #008000;">&#93;</span> <span style="color: #000080;">&gt;</span> temp<span style="color: #008000;">&#41;</span> <span style="color: #0000dd;">printf</span><span style="color: #008000;">&#40;</span><span style="color: #FF0000;">&quot; 0&quot;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
            <span style="color: #0000ff;">else</span> <span style="color: #0000dd;">printf</span><span style="color: #008000;">&#40;</span><span style="color: #FF0000;">&quot; %lf&quot;</span>, <span style="color: #008000;">&#40;</span>temp <span style="color: #000040;">-</span> num2<span style="color: #008000;">&#91;</span>i<span style="color: #008000;">&#93;</span><span style="color: #008000;">&#41;</span> <span style="color: #000040;">/</span> sum <span style="color: #000040;">*</span> <span style="color: #0000dd;">100</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
        <span style="color: #008000;">&#125;</span>
        <span style="color: #0000dd;">cout</span> <span style="color: #000080;">&lt;&lt;</span> endl<span style="color: #008080;">;</span>
    <span style="color: #008000;">&#125;</span>
    <span style="color: #0000ff;">return</span> <span style="color: #0000dd;">0</span><span style="color: #008080;">;</span>
<span style="color: #008000;">&#125;</span></pre></div></div>

<p><strong>Round 1C</strong><br />
Problem A. Diamond Inheritance<br />
判断是否有这种情况发生：D类继承自B类和C类，B类继承自A类，C类也继承自A类，这就形成了一个菱形。<br />
我用并查集做的&#8230;DFS，如果结点被访问时已经和上一个结点在同一个集合里就说明出现了这种情况。<br />
呃，似乎用不到并查集啊，用个bool used[]标记就行了吧。。<br />
虽然共有1000个类，但每个类最多继承自10个类。</p>

<div class="wp_syntax"><div class="code"><pre class="cpp" style="font-family:monospace;"><span style="color: #339900;">#include &lt;iostream&gt;</span>
<span style="color: #339900;">#include &lt;cstdio&gt;</span>
<span style="color: #339900;">#include &lt;algorithm&gt;</span>
<span style="color: #0000ff;">using</span> <span style="color: #0000ff;">namespace</span> std<span style="color: #008080;">;</span>
<span style="color: #0000ff;">const</span> <span style="color: #0000ff;">int</span> nodeMax <span style="color: #000080;">=</span> <span style="color: #0000dd;">1010</span><span style="color: #008080;">;</span>
<span style="color: #0000ff;">int</span> p<span style="color: #008000;">&#91;</span>nodeMax<span style="color: #008000;">&#93;</span><span style="color: #008080;">;</span><span style="color: #666666;">//p:parent</span>
<span style="color: #0000ff;">int</span> rank<span style="color: #008000;">&#91;</span>nodeMax<span style="color: #008000;">&#93;</span><span style="color: #008080;">;</span>
<span style="color: #0000ff;">int</span> map<span style="color: #008000;">&#91;</span>nodeMax<span style="color: #008000;">&#93;</span><span style="color: #008000;">&#91;</span>nodeMax<span style="color: #008000;">&#93;</span><span style="color: #008080;">;</span>
<span style="color: #0000ff;">int</span> n<span style="color: #008080;">;</span>
&nbsp;
<span style="color: #0000ff;">void</span> make_set<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span>
<span style="color: #008000;">&#123;</span>
    <span style="color: #0000ff;">for</span> <span style="color: #008000;">&#40;</span><span style="color: #0000ff;">int</span> i<span style="color: #000080;">=</span><span style="color: #0000dd;">1</span><span style="color: #008080;">;</span>i<span style="color: #000080;">&lt;=</span>n<span style="color: #008080;">;</span>i<span style="color: #000040;">++</span><span style="color: #008000;">&#41;</span> <span style="color: #666666;">//pay attention!</span>
    <span style="color: #008000;">&#123;</span>
        p<span style="color: #008000;">&#91;</span>i<span style="color: #008000;">&#93;</span><span style="color: #000080;">=</span>i<span style="color: #008080;">;</span>
        rank<span style="color: #008000;">&#91;</span>i<span style="color: #008000;">&#93;</span><span style="color: #000080;">=</span><span style="color: #0000dd;">0</span><span style="color: #008080;">;</span>
    <span style="color: #008000;">&#125;</span>
<span style="color: #008000;">&#125;</span>
&nbsp;
<span style="color: #0000ff;">int</span> find_set<span style="color: #008000;">&#40;</span><span style="color: #0000ff;">int</span> x<span style="color: #008000;">&#41;</span>
<span style="color: #008000;">&#123;</span>
    <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>x<span style="color: #000040;">!</span><span style="color: #000080;">=</span>p<span style="color: #008000;">&#91;</span>x<span style="color: #008000;">&#93;</span><span style="color: #008000;">&#41;</span> p<span style="color: #008000;">&#91;</span>x<span style="color: #008000;">&#93;</span><span style="color: #000080;">=</span>find_set<span style="color: #008000;">&#40;</span>p<span style="color: #008000;">&#91;</span>x<span style="color: #008000;">&#93;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
    <span style="color: #0000ff;">return</span> p<span style="color: #008000;">&#91;</span>x<span style="color: #008000;">&#93;</span><span style="color: #008080;">;</span>
<span style="color: #008000;">&#125;</span>
&nbsp;
<span style="color: #0000ff;">bool</span> work<span style="color: #008000;">&#40;</span><span style="color: #0000ff;">int</span> a<span style="color: #008000;">&#41;</span>
<span style="color: #008000;">&#123;</span>
    <span style="color: #0000ff;">int</span> x, y<span style="color: #008080;">;</span>
    <span style="color: #0000ff;">int</span> temp<span style="color: #008080;">;</span>
    <span style="color: #0000ff;">for</span> <span style="color: #008000;">&#40;</span><span style="color: #0000ff;">int</span> i <span style="color: #000080;">=</span> <span style="color: #0000dd;">1</span><span style="color: #008080;">;</span> i <span style="color: #000080;">&lt;=</span>map<span style="color: #008000;">&#91;</span>a<span style="color: #008000;">&#93;</span><span style="color: #008000;">&#91;</span><span style="color: #0000dd;">0</span><span style="color: #008000;">&#93;</span><span style="color: #008080;">;</span> i<span style="color: #000040;">++</span><span style="color: #008000;">&#41;</span>
    <span style="color: #008000;">&#123;</span>
        temp <span style="color: #000080;">=</span> map<span style="color: #008000;">&#91;</span>a<span style="color: #008000;">&#93;</span><span style="color: #008000;">&#91;</span>i<span style="color: #008000;">&#93;</span><span style="color: #008080;">;</span>
        x <span style="color: #000080;">=</span> find_set<span style="color: #008000;">&#40;</span>a<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
        y <span style="color: #000080;">=</span> find_set<span style="color: #008000;">&#40;</span>map<span style="color: #008000;">&#91;</span>a<span style="color: #008000;">&#93;</span><span style="color: #008000;">&#91;</span>i<span style="color: #008000;">&#93;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
        <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>x <span style="color: #000040;">!</span><span style="color: #000080;">=</span> y<span style="color: #008000;">&#41;</span>
        <span style="color: #008000;">&#123;</span>
            <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>rank<span style="color: #008000;">&#91;</span>x<span style="color: #008000;">&#93;</span><span style="color: #000080;">&gt;</span>rank<span style="color: #008000;">&#91;</span>y<span style="color: #008000;">&#93;</span><span style="color: #008000;">&#41;</span> p<span style="color: #008000;">&#91;</span>y<span style="color: #008000;">&#93;</span><span style="color: #000080;">=</span>x<span style="color: #008080;">;</span>
            <span style="color: #0000ff;">else</span>
            <span style="color: #008000;">&#123;</span>
                p<span style="color: #008000;">&#91;</span>x<span style="color: #008000;">&#93;</span><span style="color: #000080;">=</span>y<span style="color: #008080;">;</span>
                <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>rank<span style="color: #008000;">&#91;</span>x<span style="color: #008000;">&#93;</span><span style="color: #000080;">==</span>rank<span style="color: #008000;">&#91;</span>y<span style="color: #008000;">&#93;</span><span style="color: #008000;">&#41;</span> rank<span style="color: #008000;">&#91;</span>y<span style="color: #008000;">&#93;</span><span style="color: #000040;">++</span><span style="color: #008080;">;</span>
            <span style="color: #008000;">&#125;</span>
        <span style="color: #008000;">&#125;</span>
        <span style="color: #0000ff;">else</span> <span style="color: #0000ff;">return</span> <span style="color: #0000ff;">true</span><span style="color: #008080;">;</span>
    <span style="color: #008000;">&#125;</span>
    <span style="color: #0000ff;">for</span> <span style="color: #008000;">&#40;</span><span style="color: #0000ff;">int</span> i <span style="color: #000080;">=</span> <span style="color: #0000dd;">1</span><span style="color: #008080;">;</span> i <span style="color: #000080;">&lt;=</span> map<span style="color: #008000;">&#91;</span>a<span style="color: #008000;">&#93;</span><span style="color: #008000;">&#91;</span><span style="color: #0000dd;">0</span><span style="color: #008000;">&#93;</span><span style="color: #008080;">;</span> i<span style="color: #000040;">++</span><span style="color: #008000;">&#41;</span>
    <span style="color: #008000;">&#123;</span>
        <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>work<span style="color: #008000;">&#40;</span>map<span style="color: #008000;">&#91;</span>a<span style="color: #008000;">&#93;</span><span style="color: #008000;">&#91;</span>i<span style="color: #008000;">&#93;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span> <span style="color: #0000ff;">return</span> <span style="color: #0000ff;">true</span><span style="color: #008080;">;</span>
    <span style="color: #008000;">&#125;</span>
    <span style="color: #0000ff;">return</span> <span style="color: #0000ff;">false</span><span style="color: #008080;">;</span>
<span style="color: #008000;">&#125;</span>
&nbsp;
<span style="color: #0000ff;">int</span> main<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span>
<span style="color: #008000;">&#123;</span>
    <span style="color: #0000ff;">int</span> t<span style="color: #008080;">;</span>
&nbsp;
    <span style="color: #0000dd;">cin</span> <span style="color: #000080;">&gt;&gt;</span> t<span style="color: #008080;">;</span>
    <span style="color: #0000ff;">for</span> <span style="color: #008000;">&#40;</span><span style="color: #0000ff;">int</span> tcase <span style="color: #000080;">=</span> <span style="color: #0000dd;">1</span><span style="color: #008080;">;</span> tcase <span style="color: #000080;">&lt;=</span> t<span style="color: #008080;">;</span> tcase<span style="color: #000040;">++</span><span style="color: #008000;">&#41;</span>
    <span style="color: #008000;">&#123;</span>
        <span style="color: #0000dd;">cin</span> <span style="color: #000080;">&gt;&gt;</span> n<span style="color: #008080;">;</span>
        <span style="color: #0000ff;">for</span> <span style="color: #008000;">&#40;</span><span style="color: #0000ff;">int</span> i <span style="color: #000080;">=</span> <span style="color: #0000dd;">1</span><span style="color: #008080;">;</span> i <span style="color: #000080;">&lt;=</span> n<span style="color: #008080;">;</span> i<span style="color: #000040;">++</span><span style="color: #008000;">&#41;</span>
        <span style="color: #008000;">&#123;</span>
            <span style="color: #0000dd;">cin</span> <span style="color: #000080;">&gt;&gt;</span> map<span style="color: #008000;">&#91;</span>i<span style="color: #008000;">&#93;</span><span style="color: #008000;">&#91;</span><span style="color: #0000dd;">0</span><span style="color: #008000;">&#93;</span><span style="color: #008080;">;</span>
            <span style="color: #0000ff;">for</span> <span style="color: #008000;">&#40;</span><span style="color: #0000ff;">int</span> j  <span style="color: #000080;">=</span> <span style="color: #0000dd;">1</span><span style="color: #008080;">;</span> j <span style="color: #000080;">&lt;=</span> map<span style="color: #008000;">&#91;</span>i<span style="color: #008000;">&#93;</span><span style="color: #008000;">&#91;</span><span style="color: #0000dd;">0</span><span style="color: #008000;">&#93;</span><span style="color: #008080;">;</span> j<span style="color: #000040;">++</span><span style="color: #008000;">&#41;</span> <span style="color: #0000dd;">cin</span> <span style="color: #000080;">&gt;&gt;</span> map<span style="color: #008000;">&#91;</span>i<span style="color: #008000;">&#93;</span><span style="color: #008000;">&#91;</span>j<span style="color: #008000;">&#93;</span><span style="color: #008080;">;</span>
        <span style="color: #008000;">&#125;</span>
        <span style="color: #0000ff;">bool</span> yes <span style="color: #000080;">=</span> <span style="color: #0000ff;">false</span><span style="color: #008080;">;</span>
        <span style="color: #0000ff;">for</span> <span style="color: #008000;">&#40;</span><span style="color: #0000ff;">int</span> i <span style="color: #000080;">=</span> <span style="color: #0000dd;">1</span><span style="color: #008080;">;</span> i <span style="color: #000080;">&lt;=</span> n<span style="color: #008080;">;</span> i<span style="color: #000040;">++</span><span style="color: #008000;">&#41;</span>
        <span style="color: #008000;">&#123;</span>
            make_set<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
            <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>work<span style="color: #008000;">&#40;</span>i<span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span>
            <span style="color: #008000;">&#123;</span>
                yes <span style="color: #000080;">=</span> <span style="color: #0000ff;">true</span><span style="color: #008080;">;</span>
                <span style="color: #0000ff;">break</span><span style="color: #008080;">;</span>
            <span style="color: #008000;">&#125;</span>
        <span style="color: #008000;">&#125;</span>
        <span style="color: #0000dd;">printf</span><span style="color: #008000;">&#40;</span><span style="color: #FF0000;">&quot;Case #%d: &quot;</span>, tcase<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
        <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>yes<span style="color: #008000;">&#41;</span> <span style="color: #0000dd;">printf</span><span style="color: #008000;">&#40;</span><span style="color: #FF0000;">&quot;Yes<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
         <span style="color: #0000ff;">else</span> <span style="color: #0000dd;">printf</span><span style="color: #008000;">&#40;</span><span style="color: #FF0000;">&quot;No<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
    <span style="color: #008000;">&#125;</span>
    <span style="color: #0000ff;">return</span> <span style="color: #0000dd;">0</span><span style="color: #008080;">;</span>
<span style="color: #008000;">&#125;</span></pre></div></div>

<p>Problem B. Out of Gas<br />
这完全是个物理题，读题很费时间。<br />
你开一辆车，给定最大加速度，减速的加速度随意，也就是说可以瞬间停车。前面有一辆车一直匀速运动，不过它的速度在特定的点可以突然改变。求从起始点到指定位置的最短时间。<br />
Small Input 最多只有两个点，比一下前面的车还是自己的车一直加速先到指定位置即可。刚花了一晚上写大数据，越写越烦，一看才73人A了这个。。还是算了吧。。</p>

<div class="wp_syntax"><div class="code"><pre class="cpp" style="font-family:monospace;"><span style="color: #339900;">#include &lt;iostream&gt;</span>
<span style="color: #339900;">#include &lt;cstdio&gt;</span>
<span style="color: #339900;">#include &lt;algorithm&gt;</span>
<span style="color: #339900;">#include &lt;cmath&gt;</span>
<span style="color: #0000ff;">using</span> <span style="color: #0000ff;">namespace</span> std<span style="color: #008080;">;</span>
&nbsp;
<span style="color: #0000ff;">struct</span> point
<span style="color: #008000;">&#123;</span>
    <span style="color: #0000ff;">double</span> t<span style="color: #008080;">;</span>
    <span style="color: #0000ff;">double</span> x<span style="color: #008080;">;</span>
<span style="color: #008000;">&#125;</span>p<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">5</span><span style="color: #008000;">&#93;</span><span style="color: #008080;">;</span>
<span style="color: #0000ff;">double</span> acc<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">15</span><span style="color: #008000;">&#93;</span><span style="color: #008080;">;</span>
<span style="color: #0000ff;">int</span> main<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span>
<span style="color: #008000;">&#123;</span>
    <span style="color: #0000ff;">int</span> t<span style="color: #008080;">;</span>
    <span style="color: #0000ff;">double</span> d<span style="color: #008080;">;</span>
    <span style="color: #0000ff;">int</span> n, a<span style="color: #008080;">;</span>
    <span style="color: #0000dd;">cin</span> <span style="color: #000080;">&gt;&gt;</span> t<span style="color: #008080;">;</span>
    <span style="color: #0000ff;">for</span> <span style="color: #008000;">&#40;</span><span style="color: #0000ff;">int</span> tcase <span style="color: #000080;">=</span> <span style="color: #0000dd;">1</span><span style="color: #008080;">;</span> tcase <span style="color: #000080;">&lt;=</span>t<span style="color: #008080;">;</span> tcase<span style="color: #000040;">++</span><span style="color: #008000;">&#41;</span>
    <span style="color: #008000;">&#123;</span>
        <span style="color: #0000dd;">printf</span><span style="color: #008000;">&#40;</span><span style="color: #FF0000;">&quot;Case #%d:<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span>, tcase<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
        <span style="color: #0000dd;">cin</span> <span style="color: #000080;">&gt;&gt;</span> d <span style="color: #000080;">&gt;&gt;</span> n <span style="color: #000080;">&gt;&gt;</span> a<span style="color: #008080;">;</span>
        <span style="color: #0000ff;">for</span> <span style="color: #008000;">&#40;</span><span style="color: #0000ff;">int</span> i <span style="color: #000080;">=</span> <span style="color: #0000dd;">0</span><span style="color: #008080;">;</span> i <span style="color: #000080;">&lt;</span> n<span style="color: #008080;">;</span> i<span style="color: #000040;">++</span><span style="color: #008000;">&#41;</span>
        <span style="color: #0000dd;">scanf</span><span style="color: #008000;">&#40;</span><span style="color: #FF0000;">&quot;%lf%lf&quot;</span>, <span style="color: #000040;">&amp;</span>p<span style="color: #008000;">&#91;</span>i<span style="color: #008000;">&#93;</span>.<span style="color: #007788;">t</span>, <span style="color: #000040;">&amp;</span>p<span style="color: #008000;">&#91;</span>i<span style="color: #008000;">&#93;</span>.<span style="color: #007788;">x</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
        <span style="color: #0000ff;">for</span> <span style="color: #008000;">&#40;</span><span style="color: #0000ff;">int</span> i <span style="color: #000080;">=</span> <span style="color: #0000dd;">0</span><span style="color: #008080;">;</span> i <span style="color: #000080;">&lt;</span> a<span style="color: #008080;">;</span> i<span style="color: #000040;">++</span><span style="color: #008000;">&#41;</span>
        <span style="color: #0000dd;">scanf</span><span style="color: #008000;">&#40;</span><span style="color: #FF0000;">&quot;%lf&quot;</span>, <span style="color: #000040;">&amp;</span>acc<span style="color: #008000;">&#91;</span>i<span style="color: #008000;">&#93;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
        <span style="color: #0000ff;">double</span> t1, t2<span style="color: #008080;">;</span>
        <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>n <span style="color: #000080;">==</span> <span style="color: #0000dd;">2</span><span style="color: #008000;">&#41;</span>
        <span style="color: #008000;">&#123;</span>
            t2 <span style="color: #000080;">=</span> p<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">0</span><span style="color: #008000;">&#93;</span>.<span style="color: #007788;">t</span> <span style="color: #000040;">+</span> <span style="color: #008000;">&#40;</span>d <span style="color: #000040;">-</span> p<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">0</span><span style="color: #008000;">&#93;</span>.<span style="color: #007788;">x</span><span style="color: #008000;">&#41;</span> <span style="color: #000040;">*</span> <span style="color: #008000;">&#40;</span>p<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">1</span><span style="color: #008000;">&#93;</span>.<span style="color: #007788;">t</span> <span style="color: #000040;">-</span> p<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">0</span><span style="color: #008000;">&#93;</span>.<span style="color: #007788;">t</span><span style="color: #008000;">&#41;</span> <span style="color: #000040;">/</span> <span style="color: #008000;">&#40;</span>p<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">1</span><span style="color: #008000;">&#93;</span>.<span style="color: #007788;">x</span> <span style="color: #000040;">-</span> p<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">0</span><span style="color: #008000;">&#93;</span>.<span style="color: #007788;">x</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
            <span style="color: #0000ff;">for</span> <span style="color: #008000;">&#40;</span><span style="color: #0000ff;">int</span> i <span style="color: #000080;">=</span> <span style="color: #0000dd;">0</span><span style="color: #008080;">;</span> i <span style="color: #000080;">&lt;</span> a<span style="color: #008080;">;</span> i<span style="color: #000040;">++</span><span style="color: #008000;">&#41;</span>
            <span style="color: #008000;">&#123;</span>
                t1 <span style="color: #000080;">=</span> <span style="color: #0000dd;">sqrt</span><span style="color: #008000;">&#40;</span><span style="color: #0000dd;">2</span><span style="color: #000040;">*</span>d<span style="color: #000040;">/</span>acc<span style="color: #008000;">&#91;</span>i<span style="color: #008000;">&#93;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
                <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>t1 <span style="color: #000080;">&gt;</span> t2<span style="color: #008000;">&#41;</span> <span style="color: #0000dd;">printf</span><span style="color: #008000;">&#40;</span><span style="color: #FF0000;">&quot;%.7lf<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span>, t1<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
                <span style="color: #0000ff;">else</span> <span style="color: #0000dd;">printf</span><span style="color: #008000;">&#40;</span><span style="color: #FF0000;">&quot;%.7lf<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span>, t2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
            <span style="color: #008000;">&#125;</span>
        <span style="color: #008000;">&#125;</span>
        <span style="color: #0000ff;">else</span>
        <span style="color: #008000;">&#123;</span>
            <span style="color: #0000ff;">for</span> <span style="color: #008000;">&#40;</span><span style="color: #0000ff;">int</span> i <span style="color: #000080;">=</span> <span style="color: #0000dd;">0</span><span style="color: #008080;">;</span> i <span style="color: #000080;">&lt;</span> a<span style="color: #008080;">;</span> i<span style="color: #000040;">++</span><span style="color: #008000;">&#41;</span>
            <span style="color: #008000;">&#123;</span>
                t1 <span style="color: #000080;">=</span> <span style="color: #0000dd;">sqrt</span><span style="color: #008000;">&#40;</span><span style="color: #0000dd;">2</span><span style="color: #000040;">*</span>d<span style="color: #000040;">/</span>acc<span style="color: #008000;">&#91;</span>i<span style="color: #008000;">&#93;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
                <span style="color: #0000dd;">printf</span><span style="color: #008000;">&#40;</span><span style="color: #FF0000;">&quot;%.7lf<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span>, t1<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
            <span style="color: #008000;">&#125;</span>
        <span style="color: #008000;">&#125;</span>
    <span style="color: #008000;">&#125;</span>
    <span style="color: #0000ff;">return</span> <span style="color: #0000dd;">0</span><span style="color: #008080;">;</span>
<span style="color: #008000;">&#125;</span></pre></div></div>

<p>Code Jam 还是挺好玩的，而且比赛结束之后马上出排名。最后1015没进，明年再来吧。<br />
还想看看 Round 1C 的 Problem C. Box Factory 和 Round 1B 的 Problem C. Equal Sums。</p>
]]></content:encoded>
			<wfw:commentRss>http://greenmoon55.com/google-code-jam-2012/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>练习曲 (2006)</title>
		<link>http://greenmoon55.com/lianxiqu-2006/</link>
		<comments>http://greenmoon55.com/lianxiqu-2006/#comments</comments>
		<pubDate>Tue, 08 May 2012 08:04:47 +0000</pubDate>
		<dc:creator>Greenmoon55</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://greenmoon55.com/?p=363</guid>
		<description><![CDATA[图片来源：http://www.wretch.cc/blog/EtudeBike 评分：4/5 很像一部纪录片，没想到骑行的主人公听力不好，说话也不清楚。环岛游倒没什么特别，肯定在路上遇到一些好心人，电影后面一小段节奏有点慢。。 几个印象深刻的情节：小虫爬过地图、镜头（小女孩）透过啤酒看别人、一条鱼从天而降，貌似是从海鸥嘴里掉下来的（？）、抗议女工租车，半价优惠。 另外感觉台湾人讲话跟以前室友的闽南话确实有点像。。 === 好久没看电影，好久没看纪录片了。 以前不知道在这里发海报算不算侵权，现在觉得应该算合理使用吧。]]></description>
			<content:encoded><![CDATA[<p><a href="http://greenmoon55.com/wp-content/uploads/2012/05/lianxiqu.jpg"><img class="aligncenter size-full wp-image-365" title="练习曲" src="http://greenmoon55.com/wp-content/uploads/2012/05/lianxiqu.jpg" alt="练习曲海报" width="448" height="640" /></a><br />
图片来源：<a href="http://www.wretch.cc/blog/EtudeBike">http://www.wretch.cc/blog/EtudeBike</a></p>
<p>评分：4/5<br />
很像一部纪录片，没想到骑行的主人公听力不好，说话也不清楚。环岛游倒没什么特别，肯定在路上遇到一些好心人，电影后面一小段节奏有点慢。。</p>
<p>几个印象深刻的情节：小虫爬过地图、镜头（小女孩）透过啤酒看别人、一条鱼从天而降，貌似是从海鸥嘴里掉下来的（？）、抗议女工租车，半价优惠。</p>
<p>另外感觉台湾人讲话跟以前室友的闽南话确实有点像。。</p>
<p>===<br />
好久没看电影，好久没看<a href="http://www.daolan.net/">纪录片</a>了。<br />
以前不知道在这里发海报算不算侵权，现在觉得应该算<a href="http://zh.wikipedia.org/wiki/%E5%90%88%E7%90%86%E4%BD%BF%E7%94%A8">合理使用</a>吧。</p>
]]></content:encoded>
			<wfw:commentRss>http://greenmoon55.com/lianxiqu-2006/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>数学建模邀请赛</title>
		<link>http://greenmoon55.com/mathematical-contest-in-modeling/</link>
		<comments>http://greenmoon55.com/mathematical-contest-in-modeling/#comments</comments>
		<pubDate>Sat, 05 May 2012 19:10:24 +0000</pubDate>
		<dc:creator>Greenmoon55</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://greenmoon55.com/?p=362</guid>
		<description><![CDATA[从上周六到这周六，折腾一周数学建模。 两道题目，第一个是说水滴的高度和体积之间的关系，随着体积的增大高度先增大后减小，没注意具体什么问了什么。。 第二个什么条件都没给，直接问如何在城市布局 PM2.5 监测站。 完全是去打酱油，前几天每天晚上都语音好几个小时，查查论文，英文的看不懂，中文的没什么资料。大家都不怎么说话，。因为没思路。。我觉得非常非常痛苦。。后来H提出个想法，就是按风向和温度对 PM2.5 监测的影响，对上海地图拉伸两次，然后在地图里面画N个圆，要求半径相同，求出每个圆的位置，然后再把这些坐标转换到原来的上海地图上。 我就写了个凸包，让地图拉伸之后仍然是个凸多边形，不过由于我们没取几个点，其实肉眼看一下就行的&#8230;还写了一个显示这些点的程序，不过没用上，原来 MATLAB 直接就能弄。求圆的位置用的是 LINGO，貌似是线性规划，原来还有这种神奇的软件。。当然这些都不是我弄的。 最后我发的第一份pdf排版有点问题。。只好最后几分钟再发一遍。囧。。其实还有个大问题，这里就不说了= = 我们的假设是扩散快的地方少放监测站，因为这些地方的代表性不强。感觉怪怪的，不过细想还是有道理的。当然还要看环保局怎么想了，哪里有地方放设备，哪里空气质量比较好（貌似北京把一个监测站从前门挪到郊区了）。 找资料的时候还谈到了热岛效应、盛行风向、迎风坡背风坡（为啥迎风坡降水多、背风坡降水少来着？完全忘了！！）高中学地理那段时光多好啊～高中还选了地理选修课呢。。 还是对数学建模不太感兴趣。。当时想着为我们那个创新项目学点MATLAB，结果现在一点都没学，我也不想学。。 这一周大约在这上面花了多于（1号一天+3小时/天（其余天）），而且很影响心情。。好不容易有个作业这么少的假期啊。也是因为这个间接导致图形学作业没按时交。。就是不想做了。。晚了两天交，而且只写了旋转。当然很感谢两位队友～程序和论文基本都是他们写的。 以后还要不要参加数学建模呢&#8230;看到一个例子是根据客流量安排公交班次，那个倒是很好玩的。不过其他的都不好玩。 话说本来准备这周六从安亭北去苏州运转呢，结果没起来，还好没起来，否则被问到就尴尬了= = ==================== 今天 codejam 太悲剧了。。纠结了半天到底睡不睡觉，在床上躺着玩手机没睡着，于是就起来喝杯咖啡写比赛。（第一次喝这种，雀巢醇品五毛钱一袋冲出来的味道和麦当劳的一样哦！） A题想了半天才明白，大数据居然还挂了，不知道存在哪里。（输出里居然有-0.000333，难道是精度问题） B不想看 C写了一半不想写了，于是过来写blog&#8230; 于是晚上再来一次吧～重在参与。。 ==================== 晚上搞完数学建模玩了会 openBVE，没想到这么小！听说很多年了，第一次玩。画面效果不错，就是。。AI不会动，而且限速提示、停站提示不清楚。玩到九点有点头晕就算了。 ==================== 呃。。最近在看Coursera上的编译原理。。视频大约两个多小时，作业还要花一两个小时啊，有的题目有点难/tricky，有论坛，不知道以后能不能坚持下去。]]></description>
			<content:encoded><![CDATA[<p>从上周六到这周六，折腾一周<a href="http://www.mcmm.fudan.edu.cn/?p=306">数学建模</a>。</p>
<p>两道题目，第一个是说水滴的高度和体积之间的关系，随着体积的增大高度先增大后减小，没注意具体什么问了什么。。<br />
第二个什么条件都没给，直接问如何在城市布局 PM2.5 监测站。</p>
<p>完全是去打酱油，前几天每天晚上都语音好几个小时，查查论文，英文的看不懂，中文的没什么资料。大家都不怎么说话，。因为没思路。。我觉得非常非常痛苦。。后来H提出个想法，就是按风向和温度对 PM2.5 监测的影响，对上海地图拉伸两次，然后在地图里面画N个圆，要求半径相同，求出每个圆的位置，然后再把这些坐标转换到原来的上海地图上。</p>
<p>我就写了个凸包，让地图拉伸之后仍然是个凸多边形，不过由于我们没取几个点，其实肉眼看一下就行的&#8230;还写了一个显示这些点的程序，不过没用上，原来 MATLAB 直接就能弄。求圆的位置用的是 LINGO，貌似是线性规划，原来还有这种神奇的软件。。当然这些都不是我弄的。</p>
<p>最后我发的第一份pdf排版有点问题。。只好最后几分钟再发一遍。囧。。其实还有个大问题，这里就不说了= =</p>
<p>我们的假设是扩散快的地方少放监测站，因为这些地方的代表性不强。感觉怪怪的，不过细想还是有道理的。当然还要看环保局怎么想了，哪里有地方放设备，哪里空气质量比较好（貌似<a href="http://news.sina.com.cn/c/2012-02-26/025823997941.shtml">北京把一个监测站从前门挪到郊区</a>了）。</p>
<p>找资料的时候还谈到了热岛效应、盛行风向、迎风坡背风坡（为啥迎风坡降水多、背风坡降水少来着？完全忘了！！）高中学地理那段时光多好啊～高中还选了地理选修课呢。。</p>
<p>还是对数学建模不太感兴趣。。当时想着为我们那个创新项目学点MATLAB，结果现在一点都没学，我也不想学。。</p>
<p>这一周大约在这上面花了多于（1号一天+3小时/天（其余天）），而且很影响心情。。好不容易有个作业这么少的假期啊。也是因为这个间接导致图形学作业没按时交。。就是不想做了。。晚了两天交，而且只写了旋转。当然很感谢两位队友～程序和论文基本都是他们写的。</p>
<p>以后还要不要参加数学建模呢&#8230;看到一个例子是根据客流量安排公交班次，那个倒是很好玩的。不过其他的都不好玩。</p>
<p>话说本来准备这周六从安亭北去苏州运转呢，结果没起来，还好没起来，否则被问到就尴尬了= =</p>
<p>====================<br />
今天 codejam 太悲剧了。。纠结了半天到底睡不睡觉，在床上躺着玩手机没睡着，于是就起来喝杯咖啡写比赛。（第一次喝这种，雀巢醇品五毛钱一袋冲出来的味道和麦当劳的一样哦！）<br />
A题想了半天才明白，大数据居然还挂了，不知道存在哪里。（输出里居然有-0.000333，难道是精度问题）<br />
B不想看<br />
C写了一半不想写了，于是过来写blog&#8230;</p>
<p>于是晚上再来一次吧～重在参与。。</p>
<p>====================<br />
晚上搞完数学建模玩了会 openBVE，没想到这么小！听说很多年了，第一次玩。画面效果不错，就是。。AI不会动，而且限速提示、停站提示不清楚。玩到九点有点头晕就算了。</p>
<p>====================<br />
呃。。最近在看Coursera上的编译原理。。视频大约两个多小时，作业还要花一两个小时啊，有的题目有点难/tricky，有论坛，不知道以后能不能坚持下去。</p>
]]></content:encoded>
			<wfw:commentRss>http://greenmoon55.com/mathematical-contest-in-modeling/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>USTC1305 Maximum income</title>
		<link>http://greenmoon55.com/ustc1305-maximum-income/</link>
		<comments>http://greenmoon55.com/ustc1305-maximum-income/#comments</comments>
		<pubDate>Thu, 19 Apr 2012 16:20:22 +0000</pubDate>
		<dc:creator>Greenmoon55</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[单调队列]]></category>

		<guid isPermaLink="false">http://greenmoon55.com/?p=358</guid>
		<description><![CDATA[来自 xw 和 wh： 维护一个递减的单调队列，因为后入队的数只有比前面所有的数小才有可能成为符合条件区间的起点，若不满足这个条件，就二分找当前最大区间。复杂度 nlogn。 === 最近好忙= = #include &#60;iostream&#62; #include &#60;cstdio&#62; #include &#60;cstring&#62; using namespace std; const int MAXN = 100010; int a&#91;MAXN&#93;; int queue&#91;MAXN&#93;; int day&#91;MAXN&#93;; int main&#40;&#41; &#123; int t; int n, c; int p, ans; cin &#62;&#62; t; while &#40;t--&#41; &#123; scanf&#40;&#34;%d%d&#34;, &#38;n, &#38;c&#41;; for &#40;int i = 0; i [...]]]></description>
			<content:encoded><![CDATA[<p>来自 xw 和 wh：<br />
维护一个递减的单调队列，因为后入队的数只有比前面所有的数小才有可能成为符合条件区间的起点，若不满足这个条件，就二分找当前最大区间。复杂度 nlogn。</p>
<p>===<br />
最近好忙= =</p>

<div class="wp_syntax"><div class="code"><pre class="cpp" style="font-family:monospace;"><span style="color: #339900;">#include &lt;iostream&gt;</span>
<span style="color: #339900;">#include &lt;cstdio&gt;</span>
<span style="color: #339900;">#include &lt;cstring&gt;</span>
<span style="color: #0000ff;">using</span> <span style="color: #0000ff;">namespace</span> std<span style="color: #008080;">;</span>
<span style="color: #0000ff;">const</span> <span style="color: #0000ff;">int</span> MAXN <span style="color: #000080;">=</span> <span style="color: #0000dd;">100010</span><span style="color: #008080;">;</span>
<span style="color: #0000ff;">int</span> a<span style="color: #008000;">&#91;</span>MAXN<span style="color: #008000;">&#93;</span><span style="color: #008080;">;</span>
<span style="color: #0000ff;">int</span> queue<span style="color: #008000;">&#91;</span>MAXN<span style="color: #008000;">&#93;</span><span style="color: #008080;">;</span>
<span style="color: #0000ff;">int</span> day<span style="color: #008000;">&#91;</span>MAXN<span style="color: #008000;">&#93;</span><span style="color: #008080;">;</span>
<span style="color: #0000ff;">int</span> main<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span>
<span style="color: #008000;">&#123;</span>
    <span style="color: #0000ff;">int</span> t<span style="color: #008080;">;</span>
    <span style="color: #0000ff;">int</span> n, c<span style="color: #008080;">;</span>
    <span style="color: #0000ff;">int</span> p, ans<span style="color: #008080;">;</span>
    <span style="color: #0000dd;">cin</span> <span style="color: #000080;">&gt;&gt;</span> t<span style="color: #008080;">;</span>
    <span style="color: #0000ff;">while</span> <span style="color: #008000;">&#40;</span>t<span style="color: #000040;">--</span><span style="color: #008000;">&#41;</span>
    <span style="color: #008000;">&#123;</span>
        <span style="color: #0000dd;">scanf</span><span style="color: #008000;">&#40;</span><span style="color: #FF0000;">&quot;%d%d&quot;</span>, <span style="color: #000040;">&amp;</span>n, <span style="color: #000040;">&amp;</span>c<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
        <span style="color: #0000ff;">for</span> <span style="color: #008000;">&#40;</span><span style="color: #0000ff;">int</span> i <span style="color: #000080;">=</span> <span style="color: #0000dd;">0</span><span style="color: #008080;">;</span> i <span style="color: #000080;">&lt;</span> n<span style="color: #008080;">;</span> i<span style="color: #000040;">++</span><span style="color: #008000;">&#41;</span> <span style="color: #0000dd;">scanf</span><span style="color: #008000;">&#40;</span><span style="color: #FF0000;">&quot;%d&quot;</span>, <span style="color: #000040;">&amp;</span>a<span style="color: #008000;">&#91;</span>i<span style="color: #008000;">&#93;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
&nbsp;
        queue<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">0</span><span style="color: #008000;">&#93;</span> <span style="color: #000080;">=</span> a<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">0</span><span style="color: #008000;">&#93;</span><span style="color: #008080;">;</span>
        day<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">0</span><span style="color: #008000;">&#93;</span> <span style="color: #000080;">=</span> <span style="color: #0000dd;">0</span><span style="color: #008080;">;</span>
        p <span style="color: #000080;">=</span> <span style="color: #0000dd;">0</span><span style="color: #008080;">;</span>
        ans <span style="color: #000080;">=</span> <span style="color: #0000dd;">0</span><span style="color: #008080;">;</span>
&nbsp;
        <span style="color: #0000ff;">for</span> <span style="color: #008000;">&#40;</span><span style="color: #0000ff;">int</span> i <span style="color: #000080;">=</span> <span style="color: #0000dd;">1</span><span style="color: #008080;">;</span> i <span style="color: #000080;">&lt;</span> n<span style="color: #008080;">;</span> i<span style="color: #000040;">++</span><span style="color: #008000;">&#41;</span>
        <span style="color: #008000;">&#123;</span>
            <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>a<span style="color: #008000;">&#91;</span>i<span style="color: #008000;">&#93;</span> <span style="color: #000080;">&lt;</span> queue<span style="color: #008000;">&#91;</span>p<span style="color: #008000;">&#93;</span><span style="color: #008000;">&#41;</span>
            <span style="color: #008000;">&#123;</span>
                queue<span style="color: #008000;">&#91;</span><span style="color: #000040;">++</span>p<span style="color: #008000;">&#93;</span> <span style="color: #000080;">=</span> a<span style="color: #008000;">&#91;</span>i<span style="color: #008000;">&#93;</span><span style="color: #008080;">;</span>
                day<span style="color: #008000;">&#91;</span>p<span style="color: #008000;">&#93;</span> <span style="color: #000080;">=</span> i<span style="color: #008080;">;</span>
            <span style="color: #008000;">&#125;</span>
            <span style="color: #0000ff;">else</span>
            <span style="color: #008000;">&#123;</span>
                <span style="color: #0000ff;">int</span> l <span style="color: #000080;">=</span> <span style="color: #0000dd;">0</span>, r <span style="color: #000080;">=</span> p<span style="color: #008080;">;</span>
                <span style="color: #0000ff;">int</span> mid<span style="color: #008080;">;</span>
                <span style="color: #0000ff;">while</span> <span style="color: #008000;">&#40;</span>l <span style="color: #000080;">&lt;</span> r<span style="color: #008000;">&#41;</span>
                <span style="color: #008000;">&#123;</span>
                    mid <span style="color: #000080;">=</span> <span style="color: #008000;">&#40;</span>l <span style="color: #000040;">+</span> r<span style="color: #008000;">&#41;</span><span style="color: #000040;">/</span><span style="color: #0000dd;">2</span><span style="color: #008080;">;</span>
                    <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>queue<span style="color: #008000;">&#91;</span>mid<span style="color: #008000;">&#93;</span> <span style="color: #000080;">&lt;=</span> a<span style="color: #008000;">&#91;</span>i<span style="color: #008000;">&#93;</span><span style="color: #008000;">&#41;</span>
                    <span style="color: #008000;">&#123;</span>
                        r <span style="color: #000080;">=</span> mid<span style="color: #008080;">;</span>
                    <span style="color: #008000;">&#125;</span>
                    <span style="color: #0000ff;">else</span> l <span style="color: #000080;">=</span> mid <span style="color: #000040;">+</span> <span style="color: #0000dd;">1</span><span style="color: #008080;">;</span>
                <span style="color: #008000;">&#125;</span>
                <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>i <span style="color: #000040;">-</span> day<span style="color: #008000;">&#91;</span>l<span style="color: #008000;">&#93;</span> <span style="color: #000080;">&gt;</span> ans<span style="color: #008000;">&#41;</span> ans <span style="color: #000080;">=</span> i <span style="color: #000040;">-</span> day<span style="color: #008000;">&#91;</span>l<span style="color: #008000;">&#93;</span><span style="color: #008080;">;</span>
            <span style="color: #008000;">&#125;</span>
        <span style="color: #008000;">&#125;</span>
        <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>ans<span style="color: #008000;">&#41;</span> ans <span style="color: #000080;">=</span> <span style="color: #008000;">&#40;</span><span style="color: #000040;">++</span>ans<span style="color: #008000;">&#41;</span><span style="color: #000040;">*</span>c<span style="color: #008080;">;</span>
        <span style="color: #0000dd;">printf</span><span style="color: #008000;">&#40;</span><span style="color: #FF0000;">&quot;%d<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span>, ans<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
    <span style="color: #008000;">&#125;</span>
    <span style="color: #0000ff;">return</span> <span style="color: #0000dd;">0</span><span style="color: #008080;">;</span>
<span style="color: #008000;">&#125;</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://greenmoon55.com/ustc1305-maximum-income/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>USTC1300 Big grid</title>
		<link>http://greenmoon55.com/ustc1300-big-grid/</link>
		<comments>http://greenmoon55.com/ustc1300-big-grid/#comments</comments>
		<pubDate>Thu, 19 Apr 2012 16:10:30 +0000</pubDate>
		<dc:creator>Greenmoon55</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[DP]]></category>

		<guid isPermaLink="false">http://greenmoon55.com/?p=357</guid>
		<description><![CDATA[USTC1300 DP，dp[i][SAME 或 DIFF] 表示格子[0][i]和[1][i-1]相同颜色或不同颜色有多少种情况。然后就很好写了。 数学解法不会= = #include &#60;iostream&#62; #include &#60;cstdio&#62; #include &#60;cstring&#62; using namespace std; const int SAME = 1; const int DIFF = 0; long long dp&#91;10010&#93;&#91;2&#93;; int main&#40;&#41; &#123; int t,n,m,k; long long ans; cin &#62;&#62; t; while &#40;t--&#41; &#123; memset&#40;dp, 0, sizeof&#40;dp&#41;&#41;; scanf&#40;&#34;%d%d%d&#34;, &#38;n, &#38;m, &#38;k&#41;; if &#40;n == 1&#41; &#123; [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://acm.ustc.edu.cn/ustcoj/problem.php?id=1300">USTC1300</a></p>
<p>DP，dp[i][SAME 或 DIFF] 表示格子[0][i]和[1][i-1]相同颜色或不同颜色有多少种情况。然后就很好写了。</p>
<p>数学解法不会= =</p>

<div class="wp_syntax"><div class="code"><pre class="cpp" style="font-family:monospace;"><span style="color: #339900;">#include &lt;iostream&gt;</span>
<span style="color: #339900;">#include &lt;cstdio&gt;</span>
<span style="color: #339900;">#include &lt;cstring&gt;</span>
<span style="color: #0000ff;">using</span> <span style="color: #0000ff;">namespace</span> std<span style="color: #008080;">;</span>
<span style="color: #0000ff;">const</span> <span style="color: #0000ff;">int</span> SAME <span style="color: #000080;">=</span> <span style="color: #0000dd;">1</span><span style="color: #008080;">;</span>
<span style="color: #0000ff;">const</span> <span style="color: #0000ff;">int</span> DIFF <span style="color: #000080;">=</span> <span style="color: #0000dd;">0</span><span style="color: #008080;">;</span>
<span style="color: #0000ff;">long</span> <span style="color: #0000ff;">long</span> dp<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">10010</span><span style="color: #008000;">&#93;</span><span style="color: #008000;">&#91;</span><span style="color: #0000dd;">2</span><span style="color: #008000;">&#93;</span><span style="color: #008080;">;</span>
<span style="color: #0000ff;">int</span> main<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span>
<span style="color: #008000;">&#123;</span>
    <span style="color: #0000ff;">int</span> t,n,m,k<span style="color: #008080;">;</span>
    <span style="color: #0000ff;">long</span> <span style="color: #0000ff;">long</span> ans<span style="color: #008080;">;</span>
    <span style="color: #0000dd;">cin</span> <span style="color: #000080;">&gt;&gt;</span> t<span style="color: #008080;">;</span>
    <span style="color: #0000ff;">while</span> <span style="color: #008000;">&#40;</span>t<span style="color: #000040;">--</span><span style="color: #008000;">&#41;</span>
    <span style="color: #008000;">&#123;</span>
        <span style="color: #0000dd;">memset</span><span style="color: #008000;">&#40;</span>dp, <span style="color: #0000dd;">0</span>, <span style="color: #0000dd;">sizeof</span><span style="color: #008000;">&#40;</span>dp<span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
        <span style="color: #0000dd;">scanf</span><span style="color: #008000;">&#40;</span><span style="color: #FF0000;">&quot;%d%d%d&quot;</span>, <span style="color: #000040;">&amp;</span>n, <span style="color: #000040;">&amp;</span>m, <span style="color: #000040;">&amp;</span>k<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
        <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>n <span style="color: #000080;">==</span> <span style="color: #0000dd;">1</span><span style="color: #008000;">&#41;</span>
        <span style="color: #008000;">&#123;</span>
            ans <span style="color: #000080;">=</span> k<span style="color: #008080;">;</span>
            <span style="color: #0000ff;">for</span> <span style="color: #008000;">&#40;</span><span style="color: #0000ff;">int</span> i <span style="color: #000080;">=</span> <span style="color: #0000dd;">1</span><span style="color: #008080;">;</span> i <span style="color: #000080;">&lt;</span> m<span style="color: #008080;">;</span> i<span style="color: #000040;">++</span><span style="color: #008000;">&#41;</span>
            <span style="color: #008000;">&#123;</span>
                ans <span style="color: #000040;">*</span><span style="color: #000080;">=</span> k <span style="color: #000040;">-</span> <span style="color: #0000dd;">1</span><span style="color: #008080;">;</span>
                ans <span style="color: #000040;">%</span><span style="color: #000080;">=</span> <span style="color: #0000dd;">1000000007</span><span style="color: #008080;">;</span>
            <span style="color: #008000;">&#125;</span>
        <span style="color: #008000;">&#125;</span>
        <span style="color: #0000ff;">else</span>
        <span style="color: #008000;">&#123;</span>
            <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>m <span style="color: #000080;">==</span> <span style="color: #0000dd;">1</span><span style="color: #008000;">&#41;</span>
            <span style="color: #008000;">&#123;</span>
                ans <span style="color: #000080;">=</span> k<span style="color: #000040;">*</span><span style="color: #008000;">&#40;</span>k <span style="color: #000040;">-</span> <span style="color: #0000dd;">1</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
                ans <span style="color: #000040;">%</span><span style="color: #000080;">=</span> <span style="color: #0000dd;">1000000007</span><span style="color: #008080;">;</span>
            <span style="color: #008000;">&#125;</span>
            <span style="color: #0000ff;">else</span>
            <span style="color: #008000;">&#123;</span>
                dp<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">1</span><span style="color: #008000;">&#93;</span><span style="color: #008000;">&#91;</span>SAME<span style="color: #008000;">&#93;</span> <span style="color: #000080;">=</span> k<span style="color: #000040;">*</span><span style="color: #008000;">&#40;</span>k <span style="color: #000040;">-</span> <span style="color: #0000dd;">1</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
                dp<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">1</span><span style="color: #008000;">&#93;</span><span style="color: #008000;">&#91;</span>SAME<span style="color: #008000;">&#93;</span> <span style="color: #000040;">%</span><span style="color: #000080;">=</span> <span style="color: #0000dd;">1000000007</span><span style="color: #008080;">;</span>
                dp<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">1</span><span style="color: #008000;">&#93;</span><span style="color: #008000;">&#91;</span>DIFF<span style="color: #008000;">&#93;</span> <span style="color: #000080;">=</span> k<span style="color: #000040;">*</span><span style="color: #008000;">&#40;</span>k <span style="color: #000040;">-</span> <span style="color: #0000dd;">1</span><span style="color: #008000;">&#41;</span><span style="color: #000040;">*</span><span style="color: #008000;">&#40;</span>k <span style="color: #000040;">-</span> <span style="color: #0000dd;">2</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
                dp<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">1</span><span style="color: #008000;">&#93;</span><span style="color: #008000;">&#91;</span>DIFF<span style="color: #008000;">&#93;</span> <span style="color: #000040;">%</span><span style="color: #000080;">=</span> <span style="color: #0000dd;">1000000007</span><span style="color: #008080;">;</span>
                <span style="color: #0000ff;">for</span> <span style="color: #008000;">&#40;</span><span style="color: #0000ff;">int</span> i <span style="color: #000080;">=</span> <span style="color: #0000dd;">2</span><span style="color: #008080;">;</span> i <span style="color: #000080;">&lt;</span> m<span style="color: #008080;">;</span> i<span style="color: #000040;">++</span><span style="color: #008000;">&#41;</span>
                <span style="color: #008000;">&#123;</span>
                    dp<span style="color: #008000;">&#91;</span>i<span style="color: #008000;">&#93;</span><span style="color: #008000;">&#91;</span>SAME<span style="color: #008000;">&#93;</span> <span style="color: #000080;">=</span> dp<span style="color: #008000;">&#91;</span>i <span style="color: #000040;">-</span> <span style="color: #0000dd;">1</span><span style="color: #008000;">&#93;</span><span style="color: #008000;">&#91;</span>DIFF<span style="color: #008000;">&#93;</span><span style="color: #000040;">*</span><span style="color: #008000;">&#40;</span>k <span style="color: #000040;">-</span> <span style="color: #0000dd;">2</span><span style="color: #008000;">&#41;</span> <span style="color: #000040;">+</span> dp<span style="color: #008000;">&#91;</span>i <span style="color: #000040;">-</span> <span style="color: #0000dd;">1</span><span style="color: #008000;">&#93;</span><span style="color: #008000;">&#91;</span>SAME<span style="color: #008000;">&#93;</span><span style="color: #000040;">*</span><span style="color: #008000;">&#40;</span>k <span style="color: #000040;">-</span> <span style="color: #0000dd;">1</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
                    dp<span style="color: #008000;">&#91;</span>i<span style="color: #008000;">&#93;</span><span style="color: #008000;">&#91;</span>SAME<span style="color: #008000;">&#93;</span> <span style="color: #000040;">%</span><span style="color: #000080;">=</span> <span style="color: #0000dd;">1000000007</span><span style="color: #008080;">;</span>
                    dp<span style="color: #008000;">&#91;</span>i<span style="color: #008000;">&#93;</span><span style="color: #008000;">&#91;</span>DIFF<span style="color: #008000;">&#93;</span> <span style="color: #000080;">=</span> dp<span style="color: #008000;">&#91;</span>i <span style="color: #000040;">-</span> <span style="color: #0000dd;">1</span><span style="color: #008000;">&#93;</span><span style="color: #008000;">&#91;</span>SAME<span style="color: #008000;">&#93;</span><span style="color: #000040;">*</span><span style="color: #008000;">&#40;</span>k <span style="color: #000040;">-</span> <span style="color: #0000dd;">1</span><span style="color: #008000;">&#41;</span><span style="color: #000040;">*</span><span style="color: #008000;">&#40;</span>k <span style="color: #000040;">-</span> <span style="color: #0000dd;">2</span><span style="color: #008000;">&#41;</span> <span style="color: #000040;">+</span> dp<span style="color: #008000;">&#91;</span>i <span style="color: #000040;">-</span> <span style="color: #0000dd;">1</span><span style="color: #008000;">&#93;</span><span style="color: #008000;">&#91;</span>DIFF<span style="color: #008000;">&#93;</span><span style="color: #000040;">*</span><span style="color: #008000;">&#40;</span>k <span style="color: #000040;">-</span> <span style="color: #0000dd;">2</span><span style="color: #008000;">&#41;</span><span style="color: #000040;">*</span><span style="color: #008000;">&#40;</span>k <span style="color: #000040;">-</span> <span style="color: #0000dd;">2</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
                    dp<span style="color: #008000;">&#91;</span>i<span style="color: #008000;">&#93;</span><span style="color: #008000;">&#91;</span>DIFF<span style="color: #008000;">&#93;</span> <span style="color: #000040;">%</span><span style="color: #000080;">=</span> <span style="color: #0000dd;">1000000007</span><span style="color: #008080;">;</span>
                <span style="color: #008000;">&#125;</span>
                ans <span style="color: #000080;">=</span> <span style="color: #008000;">&#40;</span>dp<span style="color: #008000;">&#91;</span>m <span style="color: #000040;">-</span> <span style="color: #0000dd;">1</span><span style="color: #008000;">&#93;</span><span style="color: #008000;">&#91;</span>SAME<span style="color: #008000;">&#93;</span><span style="color: #000040;">*</span><span style="color: #008000;">&#40;</span>k <span style="color: #000040;">-</span> <span style="color: #0000dd;">1</span><span style="color: #008000;">&#41;</span> <span style="color: #000040;">+</span> dp<span style="color: #008000;">&#91;</span>m <span style="color: #000040;">-</span> <span style="color: #0000dd;">1</span><span style="color: #008000;">&#93;</span><span style="color: #008000;">&#91;</span>DIFF<span style="color: #008000;">&#93;</span><span style="color: #000040;">*</span><span style="color: #008000;">&#40;</span>k <span style="color: #000040;">-</span> <span style="color: #0000dd;">2</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span> <span style="color: #000040;">%</span> <span style="color: #0000dd;">1000000007</span><span style="color: #008080;">;</span>
            <span style="color: #008000;">&#125;</span>
        <span style="color: #008000;">&#125;</span>
        <span style="color: #0000dd;">cout</span> <span style="color: #000080;">&lt;&lt;</span> ans <span style="color: #000080;">&lt;&lt;</span> endl<span style="color: #008080;">;</span>
    <span style="color: #008000;">&#125;</span>
    <span style="color: #0000ff;">return</span> <span style="color: #0000dd;">0</span><span style="color: #008080;">;</span>
<span style="color: #008000;">&#125;</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://greenmoon55.com/ustc1300-big-grid/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>HDU4193 Non-negative Partial Sums</title>
		<link>http://greenmoon55.com/hdu4193-non-negative-partial-sums/</link>
		<comments>http://greenmoon55.com/hdu4193-non-negative-partial-sums/#comments</comments>
		<pubDate>Sat, 14 Apr 2012 15:39:19 +0000</pubDate>
		<dc:creator>Greenmoon55</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[单调队列]]></category>

		<guid isPermaLink="false">http://greenmoon55.com/?p=353</guid>
		<description><![CDATA[HDU4193 终于知道单调队列了！其实挺简单的。搜到了这个：补缺补漏：单调队列- Blog of Felix021 &#8211; TechOnly 因为每个元素最多入队出队一次，所以复杂度是O(n)的。 这道题怎么做呢？开一个 2n 的数组，sum[i] 记录 a[1] 到 a[i] 的和。若在某个长度为 n 的区间里的最小 sum 大于等于区间左侧的 sum，也就是说区间里没有负数，答案计数加一。 // cin 会超时，不用 deque 会快一点 #include &#60;iostream&#62; #include &#60;cstdio&#62; #include &#60;queue&#62; using namespace std; const int MAXN = 2000010; int a&#91;MAXN&#93;; int main&#40;&#41; &#123; int n; while &#40;scanf&#40;&#34;%d&#34;, &#38;n&#41;&#41; &#123; if &#40;n == 0&#41; [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://acm.hdu.edu.cn/showproblem.php?pid=4193">HDU4193</a><br />
终于知道单调队列了！其实挺简单的。搜到了这个：<a href="http://www.felix021.com/blog/read.php?1965">补缺补漏：单调队列- Blog of Felix021 &#8211; TechOnly</a></p>
<p>因为每个元素最多入队出队一次，所以复杂度是O(n)的。</p>
<p>这道题怎么做呢？开一个 2n 的数组，sum[i] 记录 a[1] 到 a[i] 的和。若在某个长度为 n 的区间里的最小 sum 大于等于区间左侧的 sum，也就是说区间里没有负数，答案计数加一。</p>

<div class="wp_syntax"><div class="code"><pre class="cpp" style="font-family:monospace;"><span style="color: #666666;">// cin 会超时，不用 deque 会快一点</span>
<span style="color: #339900;">#include &lt;iostream&gt;</span>
<span style="color: #339900;">#include &lt;cstdio&gt;</span>
<span style="color: #339900;">#include &lt;queue&gt;</span>
<span style="color: #0000ff;">using</span> <span style="color: #0000ff;">namespace</span> std<span style="color: #008080;">;</span>
<span style="color: #0000ff;">const</span> <span style="color: #0000ff;">int</span> MAXN <span style="color: #000080;">=</span> <span style="color: #0000dd;">2000010</span><span style="color: #008080;">;</span>
<span style="color: #0000ff;">int</span> a<span style="color: #008000;">&#91;</span>MAXN<span style="color: #008000;">&#93;</span><span style="color: #008080;">;</span>
<span style="color: #0000ff;">int</span> main<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span>
<span style="color: #008000;">&#123;</span>
    <span style="color: #0000ff;">int</span> n<span style="color: #008080;">;</span>
    <span style="color: #0000ff;">while</span> <span style="color: #008000;">&#40;</span><span style="color: #0000dd;">scanf</span><span style="color: #008000;">&#40;</span><span style="color: #FF0000;">&quot;%d&quot;</span>, <span style="color: #000040;">&amp;</span>n<span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span>
    <span style="color: #008000;">&#123;</span>
        <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>n <span style="color: #000080;">==</span> <span style="color: #0000dd;">0</span><span style="color: #008000;">&#41;</span> <span style="color: #0000ff;">break</span><span style="color: #008080;">;</span>
        <span style="color: #0000ff;">for</span> <span style="color: #008000;">&#40;</span><span style="color: #0000ff;">int</span> i <span style="color: #000080;">=</span> <span style="color: #0000dd;">1</span><span style="color: #008080;">;</span> i <span style="color: #000080;">&lt;=</span> n<span style="color: #008080;">;</span> i<span style="color: #000040;">++</span><span style="color: #008000;">&#41;</span>
        <span style="color: #008000;">&#123;</span>
            <span style="color: #0000dd;">scanf</span><span style="color: #008000;">&#40;</span><span style="color: #FF0000;">&quot;%d&quot;</span>, <span style="color: #000040;">&amp;</span>a<span style="color: #008000;">&#91;</span>i<span style="color: #008000;">&#93;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
            a<span style="color: #008000;">&#91;</span>i<span style="color: #000040;">+</span>n<span style="color: #008000;">&#93;</span> <span style="color: #000080;">=</span> a<span style="color: #008000;">&#91;</span>i<span style="color: #008000;">&#93;</span><span style="color: #008080;">;</span>
        <span style="color: #008000;">&#125;</span>
        <span style="color: #0000ff;">for</span> <span style="color: #008000;">&#40;</span><span style="color: #0000ff;">int</span> i <span style="color: #000080;">=</span> <span style="color: #0000dd;">1</span><span style="color: #008080;">;</span> i <span style="color: #000080;">&lt;=</span> n<span style="color: #000040;">*</span><span style="color: #0000dd;">2</span><span style="color: #008080;">;</span> i<span style="color: #000040;">++</span><span style="color: #008000;">&#41;</span>
        <span style="color: #008000;">&#123;</span>
            a<span style="color: #008000;">&#91;</span>i<span style="color: #008000;">&#93;</span> <span style="color: #000040;">+</span><span style="color: #000080;">=</span> a<span style="color: #008000;">&#91;</span>i<span style="color: #000040;">-</span><span style="color: #0000dd;">1</span><span style="color: #008000;">&#93;</span><span style="color: #008080;">;</span>
        <span style="color: #008000;">&#125;</span>
&nbsp;
        deque<span style="color: #000080;">&lt;</span><span style="color: #0000ff;">int</span><span style="color: #000080;">&gt;</span> q<span style="color: #008080;">;</span>
        <span style="color: #0000ff;">int</span> ans <span style="color: #000080;">=</span> <span style="color: #0000dd;">0</span><span style="color: #008080;">;</span>
        <span style="color: #0000ff;">for</span> <span style="color: #008000;">&#40;</span><span style="color: #0000ff;">int</span> i <span style="color: #000080;">=</span> <span style="color: #0000dd;">1</span><span style="color: #008080;">;</span> i <span style="color: #000080;">&lt;=</span> n<span style="color: #000040;">*</span><span style="color: #0000dd;">2</span><span style="color: #008080;">;</span> i<span style="color: #000040;">++</span><span style="color: #008000;">&#41;</span>
        <span style="color: #008000;">&#123;</span>
            <span style="color: #0000ff;">while</span> <span style="color: #008000;">&#40;</span><span style="color: #000040;">!</span>q.<span style="color: #007788;">empty</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span> <span style="color: #000040;">&amp;&amp;</span> a<span style="color: #008000;">&#91;</span>q.<span style="color: #007788;">back</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#93;</span><span style="color: #000080;">&gt;=</span>a<span style="color: #008000;">&#91;</span>i<span style="color: #008000;">&#93;</span><span style="color: #008000;">&#41;</span> q.<span style="color: #007788;">pop_back</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
            q.<span style="color: #007788;">push_back</span><span style="color: #008000;">&#40;</span>i<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
            <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>i <span style="color: #000080;">&gt;</span> n <span style="color: #000040;">&amp;&amp;</span> a<span style="color: #008000;">&#91;</span>i <span style="color: #000040;">-</span> n<span style="color: #008000;">&#93;</span> <span style="color: #000080;">&lt;=</span> a<span style="color: #008000;">&#91;</span>q.<span style="color: #007788;">front</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#93;</span><span style="color: #008000;">&#41;</span> <span style="color: #000040;">++</span>ans<span style="color: #008080;">;</span>
            <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span><span style="color: #000040;">!</span>q.<span style="color: #007788;">empty</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span> <span style="color: #000040;">&amp;&amp;</span> i <span style="color: #000040;">-</span> q.<span style="color: #007788;">front</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span> <span style="color: #000080;">&gt;=</span> n <span style="color: #000040;">-</span> <span style="color: #0000dd;">1</span><span style="color: #008000;">&#41;</span> q.<span style="color: #007788;">pop_front</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
        <span style="color: #008000;">&#125;</span>
        <span style="color: #0000dd;">printf</span><span style="color: #008000;">&#40;</span><span style="color: #FF0000;">&quot;%d<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span>, ans<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
    <span style="color: #008000;">&#125;</span>
    <span style="color: #0000ff;">return</span> <span style="color: #0000dd;">0</span><span style="color: #008080;">;</span>
<span style="color: #008000;">&#125;</span></pre></div></div>

<p>===<br />
还有一些问题</p>
<ol>
<li>单调队列的英文是什么</li>
<li>队尾去掉元素的时候等号可以不考虑吧，貌似那个文章有很多问题&#8230;</li>
<li>好像还有什么，突然忘了&#8230;</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://greenmoon55.com/hdu4193-non-negative-partial-sums/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>HDU4190 Distributing Ballot Boxes</title>
		<link>http://greenmoon55.com/hdu4190-distributing-ballot-boxes/</link>
		<comments>http://greenmoon55.com/hdu4190-distributing-ballot-boxes/#comments</comments>
		<pubDate>Sat, 14 Apr 2012 14:47:11 +0000</pubDate>
		<dc:creator>Greenmoon55</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[ACM]]></category>
		<category><![CDATA[二分]]></category>

		<guid isPermaLink="false">http://greenmoon55.com/?p=352</guid>
		<description><![CDATA[HDU 4190 举行大选，N (1]]></description>
			<content:encoded><![CDATA[<p><a href="http://acm.hdu.edu.cn/showproblem.php?pid=4190">HDU 4190</a><br />
举行大选，N (1<=N<=500,000) 个城市，一共 B(N<=B<=2,000,000) 个投票箱，每个城市人口为 ai(1<=ai<=5,000,000)，求怎么分配投票箱，使放选票最多的那个投票箱里的选票最少。</p>
<p>怎么办呢？xw想到的，二分答案就行&#8230;然后算投票箱个数。</p>
]]></content:encoded>
			<wfw:commentRss>http://greenmoon55.com/hdu4190-distributing-ballot-boxes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>120405</title>
		<link>http://greenmoon55.com/120405/</link>
		<comments>http://greenmoon55.com/120405/#comments</comments>
		<pubDate>Thu, 05 Apr 2012 14:33:05 +0000</pubDate>
		<dc:creator>Greenmoon55</dc:creator>
				<category><![CDATA[Life]]></category>

		<guid isPermaLink="false">http://greenmoon55.com/?p=351</guid>
		<description><![CDATA[这么快一天就过去了，今天大部分时间都在看Struts、Spring、Hibernate框架，结果还没弄好最简单的login&#8230; 原计划第七节上课之前看完，然后想晚饭之前看完，结果最后也没弄好&#8230; 我没搜到特别靠谱的教程，英文的搜到了一个，还是印度的网站，中午去图书馆借了本书，太厚完全没用。看了以前借的比较薄的书。感觉今天还是太着急了，虽然不是老师留的作业，我心里还是当成有个deadline那样写的，想着早点写完早点结束。欲速则不达= = 我对Java、JavaEE不是很感兴趣，以前觉得最有可能退掉这门课，老师的英语不错，很幸运进了非常靠谱的组，希望能在这学期多学点html, css, js等等等。。以前连css和html有什么关系都不知道，高中的时候觉得ul、li特别神秘&#8230;当时我怎么就不知道去搜搜呢&#8230;]]></description>
			<content:encoded><![CDATA[<p>这么快一天就过去了，今天大部分时间都在看Struts、Spring、Hibernate框架，结果还没弄好最简单的login&#8230;</p>
<p>原计划第七节上课之前看完，然后想晚饭之前看完，结果最后也没弄好&#8230;</p>
<p>我没搜到特别靠谱的教程，英文的搜到了一个，还是印度的网站，中午去图书馆借了本书，太厚完全没用。看了以前借的比较薄的书。感觉今天还是太着急了，虽然不是老师留的作业，我心里还是当成有个deadline那样写的，想着早点写完早点结束。欲速则不达= =</p>
<p>我对Java、JavaEE不是很感兴趣，以前觉得最有可能退掉这门课，老师的英语不错，很幸运进了非常靠谱的组，希望能在这学期多学点html, css, js等等等。。以前连css和html有什么关系都不知道，高中的时候觉得ul、li特别神秘&#8230;当时我怎么就不知道去搜搜呢&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://greenmoon55.com/120405/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Codeforces Round #104 (Div. 2)</title>
		<link>http://greenmoon55.com/codeforces-round-104-div-2/</link>
		<comments>http://greenmoon55.com/codeforces-round-104-div-2/#comments</comments>
		<pubDate>Fri, 16 Mar 2012 12:54:02 +0000</pubDate>
		<dc:creator>Greenmoon55</dc:creator>
				<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://greenmoon55.com/?p=346</guid>
		<description><![CDATA[Codeforces Round #104 (Div. 2) Editorial 比赛时做出三题 A略 B忘了题意，也略吧&#8230; C Lucky Conversion 只需记录两字符串相应位置分别出现47和74的次数，输出这两个数的最大值 D Lucky Number 2 这个看了题解 想象删除所有相邻重复数字，可以得到形如47474747474747的串，所以 a3 与 a4 的差的绝对值一定小于等于1。然后分三种情况讨论： a3 = a4，若 a1 = a3，则说明4不够多，生成的串以7开头，如74747，多余的7插入到最右面，多余的4放在最左边的4。。否则形如47474，多余的7插入到最右面的7，多余的4放在最左边。 a3 > a4，形如47474747，多余的4放在最前面，7放在最后面 a3 < a4，形如74747474，多余的4插入到1位置，7插入到最后面的7 #include &#60;iostream&#62; #include &#60;cstdlib&#62; #include &#60;cstdio&#62; #include &#60;string&#62; using namespace std; int main&#40;&#41; &#123; int a1, a2, a3, a4; cin [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://codeforces.com/contest/146">Codeforces Round #104 (Div. 2) </a><br />
<a href="http://codeforces.com/blog/entry/3746">Editorial</a></p>
<p>比赛时做出三题</p>
<p>A略 B忘了题意，也略吧&#8230;</p>
<p><strong>C Lucky Conversion</strong><br />
只需记录两字符串相应位置分别出现47和74的次数，输出这两个数的最大值</p>
<p><strong>D Lucky Number 2</strong><br />
这个看了题解<br />
想象删除所有相邻重复数字，可以得到形如47474747474747的串，所以 a3 与 a4 的差的绝对值一定小于等于1。然后分三种情况讨论：</p>
<ol>
<li>a3 = a4，若 a1 = a3，则说明4不够多，生成的串以7开头，如74747，多余的7插入到最右面，多余的4放在最左边的4。。否则形如47474，多余的7插入到最右面的7，多余的4放在最左边。</li>
<li>a3 > a4，形如47474747，多余的4放在最前面，7放在最后面</li>
<li>a3 < a4，形如74747474，多余的4插入到1位置，7插入到最后面的7</li>
</ol>

<div class="wp_syntax"><div class="code"><pre class="cpp" style="font-family:monospace;"><span style="color: #339900;">#include &lt;iostream&gt;</span>
<span style="color: #339900;">#include &lt;cstdlib&gt;</span>
<span style="color: #339900;">#include &lt;cstdio&gt;</span>
<span style="color: #339900;">#include &lt;string&gt;</span>
<span style="color: #0000ff;">using</span> <span style="color: #0000ff;">namespace</span> std<span style="color: #008080;">;</span>
<span style="color: #0000ff;">int</span> main<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span>
<span style="color: #008000;">&#123;</span>
    <span style="color: #0000ff;">int</span> a1, a2, a3, a4<span style="color: #008080;">;</span>
    <span style="color: #0000dd;">cin</span> <span style="color: #000080;">&gt;&gt;</span> a1 <span style="color: #000080;">&gt;&gt;</span> a2 <span style="color: #000080;">&gt;&gt;</span> a3 <span style="color: #000080;">&gt;&gt;</span> a4<span style="color: #008080;">;</span>
    <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span><span style="color: #0000dd;">abs</span><span style="color: #008000;">&#40;</span>a3 <span style="color: #000040;">-</span> a4<span style="color: #008000;">&#41;</span> <span style="color: #000080;">&gt;</span> <span style="color: #0000dd;">1</span><span style="color: #008000;">&#41;</span>
    <span style="color: #008000;">&#123;</span>
        <span style="color: #0000dd;">puts</span><span style="color: #008000;">&#40;</span><span style="color: #FF0000;">&quot;-1&quot;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
        <span style="color: #0000ff;">return</span> <span style="color: #0000dd;">0</span><span style="color: #008080;">;</span>
    <span style="color: #008000;">&#125;</span>
    string str<span style="color: #008080;">;</span>
    <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>a3 <span style="color: #000080;">==</span> a4<span style="color: #008000;">&#41;</span>
    <span style="color: #008000;">&#123;</span>
        <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span><span style="color: #008000;">&#40;</span>a1 <span style="color: #000080;">==</span> a3 <span style="color: #000040;">&amp;&amp;</span> a2 <span style="color: #000080;">==</span> a3<span style="color: #008000;">&#41;</span> <span style="color: #000040;">||</span>
        a1 <span style="color: #000080;">&lt;</span> a3 <span style="color: #000040;">||</span> a2 <span style="color: #000080;">&lt;</span> a3<span style="color: #008000;">&#41;</span>
        <span style="color: #008000;">&#123;</span>
            <span style="color: #0000dd;">puts</span><span style="color: #008000;">&#40;</span><span style="color: #FF0000;">&quot;-1&quot;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
            <span style="color: #0000ff;">return</span> <span style="color: #0000dd;">0</span><span style="color: #008080;">;</span>
        <span style="color: #008000;">&#125;</span>
        <span style="color: #666666;">// '4' is not enough</span>
        <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>a1 <span style="color: #000080;">==</span> a3<span style="color: #008000;">&#41;</span>
        <span style="color: #008000;">&#123;</span>
            <span style="color: #0000ff;">for</span> <span style="color: #008000;">&#40;</span><span style="color: #0000ff;">int</span> i <span style="color: #000080;">=</span> <span style="color: #0000dd;">0</span><span style="color: #008080;">;</span> i <span style="color: #000080;">&lt;</span> a3<span style="color: #008080;">;</span> i<span style="color: #000040;">++</span><span style="color: #008000;">&#41;</span> str <span style="color: #000040;">+</span><span style="color: #000080;">=</span> <span style="color: #FF0000;">&quot;74&quot;</span><span style="color: #008080;">;</span>
            str <span style="color: #000040;">+</span><span style="color: #000080;">=</span> <span style="color: #FF0000;">&quot;7&quot;</span><span style="color: #008080;">;</span>
            <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>a2 <span style="color: #000080;">&gt;</span> a3 <span style="color: #000040;">+</span> <span style="color: #0000dd;">1</span><span style="color: #008000;">&#41;</span>
            <span style="color: #008000;">&#123;</span>
                string temp<span style="color: #008000;">&#40;</span>a2 <span style="color: #000040;">-</span> a3 <span style="color: #000040;">-</span> <span style="color: #0000dd;">1</span>, <span style="color: #FF0000;">'7'</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
                str.<span style="color: #007788;">append</span><span style="color: #008000;">&#40;</span>temp<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
            <span style="color: #008000;">&#125;</span>
        <span style="color: #008000;">&#125;</span>
        <span style="color: #0000ff;">else</span> <span style="color: #666666;">// '4' is enough</span>
        <span style="color: #008000;">&#123;</span>
            <span style="color: #0000ff;">for</span> <span style="color: #008000;">&#40;</span><span style="color: #0000ff;">int</span> i <span style="color: #000080;">=</span> <span style="color: #0000dd;">0</span><span style="color: #008080;">;</span> i <span style="color: #000080;">&lt;</span> a3<span style="color: #008080;">;</span> i<span style="color: #000040;">++</span><span style="color: #008000;">&#41;</span> str <span style="color: #000040;">+</span><span style="color: #000080;">=</span> <span style="color: #FF0000;">&quot;47&quot;</span><span style="color: #008080;">;</span>
            str <span style="color: #000040;">+</span><span style="color: #000080;">=</span> <span style="color: #FF0000;">&quot;4&quot;</span><span style="color: #008080;">;</span>
            <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>a1 <span style="color: #000080;">&gt;</span> a3 <span style="color: #000040;">+</span> <span style="color: #0000dd;">1</span><span style="color: #008000;">&#41;</span>
            <span style="color: #008000;">&#123;</span>
                <span style="color: #ff0000; font-style: italic;">/*
                string ( size_t n, char c );
                Content is initialized as a string formed
                by a repetition of character c, n times.
                */</span>
                string temp<span style="color: #008000;">&#40;</span>a1 <span style="color: #000040;">-</span> a3 <span style="color: #000040;">-</span> <span style="color: #0000dd;">1</span>, <span style="color: #FF0000;">'4'</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
                str.<span style="color: #007788;">insert</span><span style="color: #008000;">&#40;</span><span style="color: #0000dd;">0</span>, temp<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
            <span style="color: #008000;">&#125;</span>
            <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>a2 <span style="color: #000080;">&gt;</span> a3<span style="color: #008000;">&#41;</span>
            <span style="color: #008000;">&#123;</span>
                string temp<span style="color: #008000;">&#40;</span>a2 <span style="color: #000040;">-</span> a3, <span style="color: #FF0000;">'7'</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
                str.<span style="color: #007788;">insert</span><span style="color: #008000;">&#40;</span>str.<span style="color: #007788;">find_last_of</span><span style="color: #008000;">&#40;</span><span style="color: #FF0000;">'7'</span><span style="color: #008000;">&#41;</span>, temp<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
            <span style="color: #008000;">&#125;</span>
        <span style="color: #008000;">&#125;</span>
    <span style="color: #008000;">&#125;</span>
    <span style="color: #0000ff;">else</span> <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>a3 <span style="color: #000080;">&lt;</span> a4<span style="color: #008000;">&#41;</span>
    <span style="color: #008000;">&#123;</span>
        <span style="color: #0000ff;">for</span> <span style="color: #008000;">&#40;</span><span style="color: #0000ff;">int</span> i <span style="color: #000080;">=</span> <span style="color: #0000dd;">0</span><span style="color: #008080;">;</span> i <span style="color: #000080;">&lt;</span> a4<span style="color: #008080;">;</span> i<span style="color: #000040;">++</span><span style="color: #008000;">&#41;</span> str <span style="color: #000040;">+</span><span style="color: #000080;">=</span> <span style="color: #FF0000;">&quot;74&quot;</span><span style="color: #008080;">;</span>
        <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>a1 <span style="color: #000080;">&lt;</span> a4 <span style="color: #000040;">||</span> a2 <span style="color: #000080;">&lt;</span> a4<span style="color: #008000;">&#41;</span>
        <span style="color: #008000;">&#123;</span>
            <span style="color: #0000dd;">puts</span><span style="color: #008000;">&#40;</span><span style="color: #FF0000;">&quot;-1&quot;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
            <span style="color: #0000ff;">return</span> <span style="color: #0000dd;">0</span><span style="color: #008080;">;</span>
        <span style="color: #008000;">&#125;</span>
        <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>a1 <span style="color: #000080;">&gt;</span> a4<span style="color: #008000;">&#41;</span>
        <span style="color: #008000;">&#123;</span>
            string temp<span style="color: #008000;">&#40;</span>a1 <span style="color: #000040;">-</span> a4, <span style="color: #FF0000;">'4'</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
            str.<span style="color: #007788;">insert</span><span style="color: #008000;">&#40;</span><span style="color: #0000dd;">1</span>, temp<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
        <span style="color: #008000;">&#125;</span>
        <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>a2 <span style="color: #000080;">&gt;</span> a4<span style="color: #008000;">&#41;</span>
        <span style="color: #008000;">&#123;</span>
            string temp<span style="color: #008000;">&#40;</span>a2 <span style="color: #000040;">-</span> a4, <span style="color: #FF0000;">'7'</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
            str.<span style="color: #007788;">insert</span><span style="color: #008000;">&#40;</span>str.<span style="color: #007788;">find_last_of</span><span style="color: #008000;">&#40;</span><span style="color: #FF0000;">'7'</span><span style="color: #008000;">&#41;</span>, temp<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
        <span style="color: #008000;">&#125;</span>
    <span style="color: #008000;">&#125;</span>
    <span style="color: #0000ff;">else</span> <span style="color: #666666;">// a3 &gt; a4</span>
    <span style="color: #008000;">&#123;</span>
        <span style="color: #0000ff;">for</span> <span style="color: #008000;">&#40;</span><span style="color: #0000ff;">int</span> i <span style="color: #000080;">=</span> <span style="color: #0000dd;">0</span><span style="color: #008080;">;</span> i <span style="color: #000080;">&lt;</span> a3<span style="color: #008080;">;</span> i<span style="color: #000040;">++</span><span style="color: #008000;">&#41;</span> str <span style="color: #000040;">+</span><span style="color: #000080;">=</span> <span style="color: #FF0000;">&quot;47&quot;</span><span style="color: #008080;">;</span>
        <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>a1 <span style="color: #000080;">&lt;</span> a3 <span style="color: #000040;">||</span> a2 <span style="color: #000080;">&lt;</span> a3<span style="color: #008000;">&#41;</span>
        <span style="color: #008000;">&#123;</span>
            <span style="color: #0000dd;">puts</span><span style="color: #008000;">&#40;</span><span style="color: #FF0000;">&quot;-1&quot;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
            <span style="color: #0000ff;">return</span> <span style="color: #0000dd;">0</span><span style="color: #008080;">;</span>
        <span style="color: #008000;">&#125;</span>
        <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>a1 <span style="color: #000080;">&gt;</span> a3<span style="color: #008000;">&#41;</span>
        <span style="color: #008000;">&#123;</span>
            string temp<span style="color: #008000;">&#40;</span>a1 <span style="color: #000040;">-</span> a3, <span style="color: #FF0000;">'4'</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
            str.<span style="color: #007788;">insert</span><span style="color: #008000;">&#40;</span><span style="color: #0000dd;">0</span>, temp<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
        <span style="color: #008000;">&#125;</span>
        <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>a2 <span style="color: #000080;">&gt;</span> a3<span style="color: #008000;">&#41;</span>
        <span style="color: #008000;">&#123;</span>
            string temp<span style="color: #008000;">&#40;</span>a2 <span style="color: #000040;">-</span> a3, <span style="color: #FF0000;">'7'</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
            str.<span style="color: #007788;">insert</span><span style="color: #008000;">&#40;</span>str.<span style="color: #007788;">find_last_of</span><span style="color: #008000;">&#40;</span><span style="color: #FF0000;">'7'</span><span style="color: #008000;">&#41;</span>, temp<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
        <span style="color: #008000;">&#125;</span>
    <span style="color: #008000;">&#125;</span>
    <span style="color: #0000dd;">cout</span> <span style="color: #000080;">&lt;&lt;</span> str <span style="color: #000080;">&lt;&lt;</span> endl<span style="color: #008080;">;</span>
    <span style="color: #0000ff;">return</span> <span style="color: #0000dd;">0</span><span style="color: #008080;">;</span>
<span style="color: #008000;">&#125;</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://greenmoon55.com/codeforces-round-104-div-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>HDU4096 Universal Question Answering System</title>
		<link>http://greenmoon55.com/hdu4096-universal-question-answering-system/</link>
		<comments>http://greenmoon55.com/hdu4096-universal-question-answering-system/#comments</comments>
		<pubDate>Sun, 11 Mar 2012 06:27:07 +0000</pubDate>
		<dc:creator>Greenmoon55</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[ACM]]></category>

		<guid isPermaLink="false">http://greenmoon55.com/?p=345</guid>
		<description><![CDATA[其实是2010年上海赛区F题，现场读入数据就写了很久&#8230;交上去之后是个诡异的错误，现在忘了是啥错误了&#8230; 连边判断连通性即可。这个题比较坑人&#8230;输入数据就比较恶心，当时还不会sscanf。名词和动词可能一样，所以需要两个map来存，还可能直接问are cat cat?要输出Y&#8230; BFS和DFS时间差不多&#8230; http://acm.fudan.edu.cn 还有数据呢。 #include &#60;algorithm&#62; #include &#60;cstdio&#62; #include &#60;cstring&#62; #include &#60;iostream&#62; #include &#60;map&#62; //#include &#60;assert.h&#62; using namespace std; &#160; const int N = 205; &#160; map&#60;string, int&#62; nmap, vmap; int mapcount; &#160; int getn&#40;char* ch&#41; &#123; if &#40;!nmap.count&#40;ch&#41;&#41; nmap&#91;ch&#93; = mapcount++; return nmap&#91;ch&#93;; &#125; &#160; int getv&#40;char* ch&#41; &#123; if &#40;!vmap.count&#40;ch&#41;&#41; [...]]]></description>
			<content:encoded><![CDATA[<p>其实是2010年<a href="http://acm.hdu.edu.cn/showproblem.php?pid=4096">上海赛区F题</a>，现场读入数据就写了很久&#8230;交上去之后是个诡异的错误，现在忘了是啥错误了&#8230;</p>
<p>连边判断连通性即可。这个题比较坑人&#8230;输入数据就比较恶心，当时还不会sscanf。名词和动词可能一样，所以需要两个map来存，还可能直接问are cat cat?要输出Y&#8230;</p>
<p>BFS和DFS时间差不多&#8230;<br />
<a href="http://acm.fudan.edu.cn">http://acm.fudan.edu.cn</a> 还有数据呢。</p>

<div class="wp_syntax"><div class="code"><pre class="cpp" style="font-family:monospace;"><span style="color: #339900;">#include &lt;algorithm&gt;</span>
<span style="color: #339900;">#include &lt;cstdio&gt;</span>
<span style="color: #339900;">#include &lt;cstring&gt;</span>
<span style="color: #339900;">#include &lt;iostream&gt;</span>
<span style="color: #339900;">#include &lt;map&gt;</span>
<span style="color: #666666;">//#include &lt;assert.h&gt;</span>
<span style="color: #0000ff;">using</span> <span style="color: #0000ff;">namespace</span> std<span style="color: #008080;">;</span>
&nbsp;
<span style="color: #0000ff;">const</span> <span style="color: #0000ff;">int</span> N <span style="color: #000080;">=</span> <span style="color: #0000dd;">205</span><span style="color: #008080;">;</span>
&nbsp;
map<span style="color: #000080;">&lt;</span>string, <span style="color: #0000ff;">int</span><span style="color: #000080;">&gt;</span> nmap, vmap<span style="color: #008080;">;</span>
<span style="color: #0000ff;">int</span> mapcount<span style="color: #008080;">;</span>
&nbsp;
<span style="color: #0000ff;">int</span> getn<span style="color: #008000;">&#40;</span><span style="color: #0000ff;">char</span><span style="color: #000040;">*</span> ch<span style="color: #008000;">&#41;</span>
<span style="color: #008000;">&#123;</span>
    <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span><span style="color: #000040;">!</span>nmap.<span style="color: #007788;">count</span><span style="color: #008000;">&#40;</span>ch<span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span> nmap<span style="color: #008000;">&#91;</span>ch<span style="color: #008000;">&#93;</span> <span style="color: #000080;">=</span> mapcount<span style="color: #000040;">++</span><span style="color: #008080;">;</span>
    <span style="color: #0000ff;">return</span> nmap<span style="color: #008000;">&#91;</span>ch<span style="color: #008000;">&#93;</span><span style="color: #008080;">;</span>
<span style="color: #008000;">&#125;</span>
&nbsp;
<span style="color: #0000ff;">int</span> getv<span style="color: #008000;">&#40;</span><span style="color: #0000ff;">char</span><span style="color: #000040;">*</span> ch<span style="color: #008000;">&#41;</span>
<span style="color: #008000;">&#123;</span>
    <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span><span style="color: #000040;">!</span>vmap.<span style="color: #007788;">count</span><span style="color: #008000;">&#40;</span>ch<span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span> vmap<span style="color: #008000;">&#91;</span>ch<span style="color: #008000;">&#93;</span> <span style="color: #000080;">=</span> mapcount<span style="color: #000040;">++</span><span style="color: #008080;">;</span>
    <span style="color: #0000ff;">return</span> vmap<span style="color: #008000;">&#91;</span>ch<span style="color: #008000;">&#93;</span><span style="color: #008080;">;</span>
<span style="color: #008000;">&#125;</span>
&nbsp;
<span style="color: #0000ff;">struct</span> edge
<span style="color: #008000;">&#123;</span>
    <span style="color: #0000ff;">int</span> v, next<span style="color: #008080;">;</span>
<span style="color: #008000;">&#125;</span>e<span style="color: #008000;">&#91;</span>N <span style="color: #000040;">*</span> N<span style="color: #008000;">&#93;</span><span style="color: #008080;">;</span>
<span style="color: #0000ff;">int</span> head<span style="color: #008000;">&#91;</span>N<span style="color: #008000;">&#93;</span>, edgenum<span style="color: #008080;">;</span>
&nbsp;
<span style="color: #0000ff;">void</span> addedge<span style="color: #008000;">&#40;</span><span style="color: #0000ff;">int</span> a, <span style="color: #0000ff;">int</span> b<span style="color: #008000;">&#41;</span>
<span style="color: #008000;">&#123;</span>
    e<span style="color: #008000;">&#91;</span>edgenum<span style="color: #008000;">&#93;</span>.<span style="color: #007788;">v</span> <span style="color: #000080;">=</span> b<span style="color: #008080;">;</span>
    e<span style="color: #008000;">&#91;</span>edgenum<span style="color: #008000;">&#93;</span>.<span style="color: #007788;">next</span> <span style="color: #000080;">=</span> head<span style="color: #008000;">&#91;</span>a<span style="color: #008000;">&#93;</span><span style="color: #008080;">;</span>
    head<span style="color: #008000;">&#91;</span>a<span style="color: #008000;">&#93;</span> <span style="color: #000080;">=</span> edgenum<span style="color: #000040;">++</span><span style="color: #008080;">;</span>
<span style="color: #008000;">&#125;</span>
&nbsp;
<span style="color: #0000ff;">void</span> workstatement<span style="color: #008000;">&#40;</span><span style="color: #0000ff;">char</span> <span style="color: #000040;">*</span>buf<span style="color: #008000;">&#41;</span>
<span style="color: #008000;">&#123;</span>
    <span style="color: #0000ff;">char</span> n1<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">20</span><span style="color: #008000;">&#93;</span>, n2<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">20</span><span style="color: #008000;">&#93;</span><span style="color: #008080;">;</span>
    <span style="color: #0000ff;">int</span> a, b<span style="color: #008080;">;</span>
    <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span><span style="color: #0000dd;">sscanf</span><span style="color: #008000;">&#40;</span>buf, <span style="color: #FF0000;">&quot;%s are %s&quot;</span>, n1, n2<span style="color: #008000;">&#41;</span> <span style="color: #000080;">==</span> <span style="color: #0000dd;">2</span><span style="color: #008000;">&#41;</span>
    <span style="color: #008000;">&#123;</span>
        a <span style="color: #000080;">=</span> getn<span style="color: #008000;">&#40;</span>n1<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
        b <span style="color: #000080;">=</span> getn<span style="color: #008000;">&#40;</span>n2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
    <span style="color: #008000;">&#125;</span>
    <span style="color: #0000ff;">else</span> <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span><span style="color: #0000dd;">sscanf</span><span style="color: #008000;">&#40;</span>buf, <span style="color: #FF0000;">&quot;%s can %s&quot;</span>, n1, n2<span style="color: #008000;">&#41;</span> <span style="color: #000080;">==</span> <span style="color: #0000dd;">2</span><span style="color: #008000;">&#41;</span>
    <span style="color: #008000;">&#123;</span>
        a <span style="color: #000080;">=</span> getn<span style="color: #008000;">&#40;</span>n1<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
        b <span style="color: #000080;">=</span> getv<span style="color: #008000;">&#40;</span>n2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
    <span style="color: #008000;">&#125;</span>
    <span style="color: #0000ff;">else</span> <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span><span style="color: #0000dd;">sscanf</span><span style="color: #008000;">&#40;</span>buf, <span style="color: #FF0000;">&quot;everything which can %s can %s&quot;</span>, n1, n2<span style="color: #008000;">&#41;</span> <span style="color: #000080;">==</span> <span style="color: #0000dd;">2</span><span style="color: #008000;">&#41;</span>
    <span style="color: #008000;">&#123;</span>
        a <span style="color: #000080;">=</span> getv<span style="color: #008000;">&#40;</span>n1<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
        b <span style="color: #000080;">=</span> getv<span style="color: #008000;">&#40;</span>n2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
    <span style="color: #008000;">&#125;</span>
    <span style="color: #0000ff;">else</span> <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span><span style="color: #0000dd;">sscanf</span><span style="color: #008000;">&#40;</span>buf, <span style="color: #FF0000;">&quot;everything which can %s are %s&quot;</span>, n1, n2<span style="color: #008000;">&#41;</span> <span style="color: #000080;">==</span> <span style="color: #0000dd;">2</span><span style="color: #008000;">&#41;</span>
    <span style="color: #008000;">&#123;</span>
        a <span style="color: #000080;">=</span> getv<span style="color: #008000;">&#40;</span>n1<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
        b <span style="color: #000080;">=</span> getn<span style="color: #008000;">&#40;</span>n2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
    <span style="color: #008000;">&#125;</span>
    <span style="color: #666666;">//else assert(&quot;workstatement error&quot;);</span>
    addedge<span style="color: #008000;">&#40;</span>a, b<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
<span style="color: #008000;">&#125;</span>
&nbsp;
<span style="color: #0000ff;">bool</span> vis<span style="color: #008000;">&#91;</span>N<span style="color: #008000;">&#93;</span><span style="color: #008080;">;</span>
<span style="color: #ff0000; font-style: italic;">/*
bool dfs(int a, int b)
{
    vis[a] = true;
    if (a == b) return true;
    for (int i = head[a]; i != -1; i = e[i].next)
    {
        if (!vis[e[i].v])
        {
            if (dfs(e[i].v, b)) return true;
        }
    }
    return false;
}
*/</span>
&nbsp;
<span style="color: #0000ff;">bool</span> bfs<span style="color: #008000;">&#40;</span><span style="color: #0000ff;">int</span> a, <span style="color: #0000ff;">int</span> b<span style="color: #008000;">&#41;</span>
<span style="color: #008000;">&#123;</span>
    <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>a <span style="color: #000080;">==</span> b<span style="color: #008000;">&#41;</span> <span style="color: #0000ff;">return</span> <span style="color: #0000ff;">true</span><span style="color: #008080;">;</span>
    <span style="color: #0000ff;">int</span> q<span style="color: #008000;">&#91;</span>N<span style="color: #008000;">&#93;</span>, begin, end<span style="color: #008080;">;</span>
    begin <span style="color: #000080;">=</span> <span style="color: #0000dd;">0</span><span style="color: #008080;">;</span>
    end <span style="color: #000080;">=</span> <span style="color: #0000dd;">0</span><span style="color: #008080;">;</span>
    q<span style="color: #008000;">&#91;</span>end<span style="color: #000040;">++</span><span style="color: #008000;">&#93;</span> <span style="color: #000080;">=</span> a<span style="color: #008080;">;</span>
    vis<span style="color: #008000;">&#91;</span>a<span style="color: #008000;">&#93;</span> <span style="color: #000080;">=</span> <span style="color: #0000ff;">true</span><span style="color: #008080;">;</span>
    <span style="color: #0000ff;">while</span> <span style="color: #008000;">&#40;</span>begin <span style="color: #000040;">!</span><span style="color: #000080;">=</span> end<span style="color: #008000;">&#41;</span>
    <span style="color: #008000;">&#123;</span>
        <span style="color: #0000ff;">int</span> x <span style="color: #000080;">=</span> q<span style="color: #008000;">&#91;</span>begin<span style="color: #000040;">++</span><span style="color: #008000;">&#93;</span><span style="color: #008080;">;</span>
        <span style="color: #0000ff;">for</span> <span style="color: #008000;">&#40;</span><span style="color: #0000ff;">int</span> i <span style="color: #000080;">=</span> head<span style="color: #008000;">&#91;</span>x<span style="color: #008000;">&#93;</span><span style="color: #008080;">;</span> i <span style="color: #000040;">!</span><span style="color: #000080;">=</span> <span style="color: #000040;">-</span><span style="color: #0000dd;">1</span><span style="color: #008080;">;</span> i <span style="color: #000080;">=</span> e<span style="color: #008000;">&#91;</span>i<span style="color: #008000;">&#93;</span>.<span style="color: #007788;">next</span><span style="color: #008000;">&#41;</span>
        <span style="color: #008000;">&#123;</span>
            <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span><span style="color: #000040;">!</span>vis<span style="color: #008000;">&#91;</span>e<span style="color: #008000;">&#91;</span>i<span style="color: #008000;">&#93;</span>.<span style="color: #007788;">v</span><span style="color: #008000;">&#93;</span><span style="color: #008000;">&#41;</span>
            <span style="color: #008000;">&#123;</span>
                vis<span style="color: #008000;">&#91;</span>e<span style="color: #008000;">&#91;</span>i<span style="color: #008000;">&#93;</span>.<span style="color: #007788;">v</span><span style="color: #008000;">&#93;</span> <span style="color: #000080;">=</span> <span style="color: #0000ff;">true</span><span style="color: #008080;">;</span>
                <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>e<span style="color: #008000;">&#91;</span>i<span style="color: #008000;">&#93;</span>.<span style="color: #007788;">v</span> <span style="color: #000080;">==</span> b<span style="color: #008000;">&#41;</span> <span style="color: #0000ff;">return</span> <span style="color: #0000ff;">true</span><span style="color: #008080;">;</span>
                q<span style="color: #008000;">&#91;</span>end<span style="color: #000040;">++</span><span style="color: #008000;">&#93;</span> <span style="color: #000080;">=</span> e<span style="color: #008000;">&#91;</span>i<span style="color: #008000;">&#93;</span>.<span style="color: #007788;">v</span><span style="color: #008080;">;</span>
            <span style="color: #008000;">&#125;</span>
        <span style="color: #008000;">&#125;</span>
    <span style="color: #008000;">&#125;</span>
    <span style="color: #0000ff;">return</span> <span style="color: #0000ff;">false</span><span style="color: #008080;">;</span>
<span style="color: #008000;">&#125;</span>
&nbsp;
<span style="color: #0000ff;">void</span> workquestion<span style="color: #008000;">&#40;</span><span style="color: #0000ff;">char</span><span style="color: #000040;">*</span> buf<span style="color: #008000;">&#41;</span>
<span style="color: #008000;">&#123;</span>
    <span style="color: #0000ff;">char</span> n1<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">20</span><span style="color: #008000;">&#93;</span>, n2<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">20</span><span style="color: #008000;">&#93;</span><span style="color: #008080;">;</span>
    <span style="color: #0000ff;">int</span> a, b<span style="color: #008080;">;</span>
    <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span><span style="color: #0000dd;">sscanf</span><span style="color: #008000;">&#40;</span>buf, <span style="color: #FF0000;">&quot;can everything which can %s %s&quot;</span>, n1, n2<span style="color: #008000;">&#41;</span> <span style="color: #000080;">==</span> <span style="color: #0000dd;">2</span><span style="color: #008000;">&#41;</span>
    <span style="color: #008000;">&#123;</span>
        a <span style="color: #000080;">=</span> getv<span style="color: #008000;">&#40;</span>n1<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
        b <span style="color: #000080;">=</span> getv<span style="color: #008000;">&#40;</span>n2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
    <span style="color: #008000;">&#125;</span>
    <span style="color: #0000ff;">else</span> <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span><span style="color: #0000dd;">sscanf</span><span style="color: #008000;">&#40;</span>buf, <span style="color: #FF0000;">&quot;are everything which can %s %s&quot;</span>, n1, n2<span style="color: #008000;">&#41;</span> <span style="color: #000080;">==</span> <span style="color: #0000dd;">2</span><span style="color: #008000;">&#41;</span>
    <span style="color: #008000;">&#123;</span>
        a <span style="color: #000080;">=</span> getv<span style="color: #008000;">&#40;</span>n1<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
        b <span style="color: #000080;">=</span> getn<span style="color: #008000;">&#40;</span>n2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
    <span style="color: #008000;">&#125;</span>
    <span style="color: #0000ff;">else</span> <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span><span style="color: #0000dd;">sscanf</span><span style="color: #008000;">&#40;</span>buf, <span style="color: #FF0000;">&quot;are %s %s&quot;</span>, n1, n2<span style="color: #008000;">&#41;</span> <span style="color: #000080;">==</span> <span style="color: #0000dd;">2</span><span style="color: #008000;">&#41;</span>
    <span style="color: #008000;">&#123;</span>
        a <span style="color: #000080;">=</span> getn<span style="color: #008000;">&#40;</span>n1<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
        b <span style="color: #000080;">=</span> getn<span style="color: #008000;">&#40;</span>n2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
    <span style="color: #008000;">&#125;</span>
    <span style="color: #0000ff;">else</span> <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span><span style="color: #0000dd;">sscanf</span><span style="color: #008000;">&#40;</span>buf, <span style="color: #FF0000;">&quot;can %s %s&quot;</span>, n1, n2<span style="color: #008000;">&#41;</span> <span style="color: #000080;">==</span> <span style="color: #0000dd;">2</span><span style="color: #008000;">&#41;</span>
    <span style="color: #008000;">&#123;</span>
        a <span style="color: #000080;">=</span> getn<span style="color: #008000;">&#40;</span>n1<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
        b <span style="color: #000080;">=</span> getv<span style="color: #008000;">&#40;</span>n2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
    <span style="color: #008000;">&#125;</span>
    <span style="color: #666666;">//else assert(&quot;workquestion error&quot;);</span>
    <span style="color: #0000dd;">memset</span><span style="color: #008000;">&#40;</span>vis, <span style="color: #0000dd;">0</span>, <span style="color: #0000dd;">sizeof</span><span style="color: #008000;">&#40;</span>vis<span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
    <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>bfs<span style="color: #008000;">&#40;</span>a, b<span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span> <span style="color: #0000dd;">printf</span><span style="color: #008000;">&#40;</span><span style="color: #FF0000;">&quot;Y&quot;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
    <span style="color: #0000ff;">else</span> <span style="color: #0000dd;">printf</span><span style="color: #008000;">&#40;</span><span style="color: #FF0000;">&quot;M&quot;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
<span style="color: #008000;">&#125;</span>
&nbsp;
<span style="color: #0000ff;">int</span> read<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span>
<span style="color: #008000;">&#123;</span>
    <span style="color: #0000ff;">char</span> buf<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">200</span><span style="color: #008000;">&#93;</span><span style="color: #008080;">;</span>
    <span style="color: #0000ff;">int</span> length<span style="color: #008080;">;</span>
    <span style="color: #0000ff;">while</span> <span style="color: #008000;">&#40;</span><span style="color: #0000ff;">true</span><span style="color: #008000;">&#41;</span>
    <span style="color: #008000;">&#123;</span>
        <span style="color: #0000dd;">gets</span><span style="color: #008000;">&#40;</span>buf<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
        length <span style="color: #000080;">=</span> <span style="color: #0000dd;">strlen</span><span style="color: #008000;">&#40;</span>buf<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
&nbsp;
        <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>buf<span style="color: #008000;">&#91;</span>length <span style="color: #000040;">-</span> <span style="color: #0000dd;">1</span><span style="color: #008000;">&#93;</span> <span style="color: #000080;">==</span> <span style="color: #FF0000;">'!'</span><span style="color: #008000;">&#41;</span> <span style="color: #0000ff;">return</span> <span style="color: #0000dd;">0</span><span style="color: #008080;">;</span>
        <span style="color: #0000ff;">else</span>
        <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>buf<span style="color: #008000;">&#91;</span>length <span style="color: #000040;">-</span> <span style="color: #0000dd;">1</span><span style="color: #008000;">&#93;</span> <span style="color: #000080;">==</span> <span style="color: #FF0000;">'.'</span><span style="color: #008000;">&#41;</span>
        <span style="color: #008000;">&#123;</span>
            buf<span style="color: #008000;">&#91;</span>length <span style="color: #000040;">-</span> <span style="color: #0000dd;">1</span><span style="color: #008000;">&#93;</span> <span style="color: #000080;">=</span> <span style="color: #0000dd;">0</span><span style="color: #008080;">;</span>
            workstatement<span style="color: #008000;">&#40;</span>buf<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
        <span style="color: #008000;">&#125;</span>
        <span style="color: #0000ff;">else</span>
        <span style="color: #008000;">&#123;</span>
            buf<span style="color: #008000;">&#91;</span>length <span style="color: #000040;">-</span> <span style="color: #0000dd;">1</span><span style="color: #008000;">&#93;</span> <span style="color: #000080;">=</span> <span style="color: #0000dd;">0</span><span style="color: #008080;">;</span>
            workquestion<span style="color: #008000;">&#40;</span>buf<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
        <span style="color: #008000;">&#125;</span>
    <span style="color: #008000;">&#125;</span>
<span style="color: #008000;">&#125;</span>
&nbsp;
<span style="color: #0000ff;">int</span> main<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span>
<span style="color: #008000;">&#123;</span>
    <span style="color: #666666;">//freopen(&quot;universal.in&quot;,&quot;r&quot;,stdin);</span>
    <span style="color: #0000ff;">int</span> t<span style="color: #008080;">;</span>
    <span style="color: #0000dd;">scanf</span><span style="color: #008000;">&#40;</span><span style="color: #FF0000;">&quot;%d&quot;</span>, <span style="color: #000040;">&amp;</span>t<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
    <span style="color: #0000dd;">getchar</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
&nbsp;
    <span style="color: #0000ff;">for</span> <span style="color: #008000;">&#40;</span><span style="color: #0000ff;">int</span> tcase <span style="color: #000080;">=</span> <span style="color: #0000dd;">1</span><span style="color: #008080;">;</span> tcase <span style="color: #000080;">&lt;=</span> t<span style="color: #008080;">;</span> <span style="color: #000040;">++</span>tcase<span style="color: #008000;">&#41;</span>
    <span style="color: #008000;">&#123;</span>
        <span style="color: #0000dd;">printf</span><span style="color: #008000;">&#40;</span><span style="color: #FF0000;">&quot;Case #%d:<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span>, tcase<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
        mapcount <span style="color: #000080;">=</span> <span style="color: #0000dd;">0</span><span style="color: #008080;">;</span>
        edgenum <span style="color: #000080;">=</span> <span style="color: #0000dd;">0</span><span style="color: #008080;">;</span>
        <span style="color: #0000dd;">memset</span><span style="color: #008000;">&#40;</span>head, <span style="color: #000040;">-</span><span style="color: #0000dd;">1</span>, <span style="color: #0000dd;">sizeof</span><span style="color: #008000;">&#40;</span>head<span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
        nmap.<span style="color: #007788;">clear</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
        vmap.<span style="color: #007788;">clear</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
&nbsp;
        <span style="color: #0000ff;">while</span> <span style="color: #008000;">&#40;</span>read<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
        <span style="color: #0000dd;">printf</span><span style="color: #008000;">&#40;</span><span style="color: #FF0000;">&quot;<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
    <span style="color: #008000;">&#125;</span>
    <span style="color: #0000ff;">return</span> <span style="color: #0000dd;">0</span><span style="color: #008080;">;</span>
<span style="color: #008000;">&#125;</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://greenmoon55.com/hdu4096-universal-question-answering-system/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

