<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[卡喀の博客]]></title> 
<link>http://www.ringsd.com/index.php</link> 
<description><![CDATA[简单生活的简单开始]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[卡喀の博客]]></copyright>
<item>
<link>http://www.ringsd.com/read.php?254</link>
<title><![CDATA[Lucky Number zju 3233 解题报告]]></title> 
<author>ringsd &lt;&gt;</author>
<category><![CDATA[组合数学]]></category>
<pubDate>Mon, 31 Aug 2009 01:05:54 +0000</pubDate> 
<guid>http://www.ringsd.com/read.php?254</guid> 
<description>
<![CDATA[ 
	题意：哇他是这个猥琐男喜欢M mm，而M mm似乎想要故意为难他一下，所以她给了哇他是一串BLN和一串BUN，以及一个给定<a href="http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3233" target="_blank">Luck number</a>的定义:一个数是Lcuk number当且仅当这个数可以被整除BLN中的任意一个而不整除BUN中的任意一个。<br/>现在M mm给了哇他是一个区间[low, high]，让哇他是在这个区间里面找出一个数来，如果这个数满足Luck number的定义，那么M mm就嫁个他。<br/>现在哇他是想要知道这个区间里面有多少个满足Luck number定义的数。<br/><br/>看完题后的第一感觉就是容斥原理，具体容斥原理的资料可以找本组合数学的书看看。<br/><br/>不过一开始对于“不整除BUN中的任意一个”这句话有点疑惑，其实这句话的方面就是“去掉整除BUN中所有数的数”这样我们就很好理解了，我们把Luck number的定义看作是两个条件：<br/>1.求出所有能够整除BLN的数<br/>2.求出所有能够整除BLN但是又不整除所有BUN的数（不整除所有BUN的数，其实就是不整除BUN的最小公倍数）<br/>我们要求的Luck number实际上就是：满足条件1的数减去满足条件2的数<br/><br/>根据容斥原理求解某个数的因子个数，我们可以很轻松的求解出某个区间里面所有满足条件1的数，那么条件2我们怎么求呢？其实条件2我们同样是运用容斥原理来求解，我们只需要将BLN中所有的数的组合乘以BUN中的最小公倍数运用一次容斥原理就可以求解出满足条件2的数了，求解出来的两个答案相减，over！<br/><br/>这个题目WA了N次，问题就出在我构造的使用容斥原理求解因子个数的程序的预处理上，一开始我写程序的时候包含有一个排序操作预处理数组的，后来修改程序过程中删除了，但是我在构造数据的时候一直按照从小到大的循序构造的，因此一直没有找出错误来……<br/><br/><div class="code"><br/>#include&lt;stdio.h&gt;<br/>#include&lt;string.h&gt;<br/><br/>//zju只能够使用long long <br/>typedef long long int64;<br/>int64 INF;<br/>int64 nbln, nbun, left, right, bln&#91;20&#93;, bun&#91;510&#93;, sum;<br/><br/>//a b的最大公约数 <br/>int64 gcd(int64 a, int64 b)<br/>&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(b == 0) return a;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else return gcd(b, a%b);<br/>&#125;<br/><br/>//a b的最小公倍数数，如果两个数的最小公倍数超过了表达范围则返回0 <br/>int64 lcm(int64 a, int64 b)<br/>&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int64 t;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(a == 0 &#124;&#124; b == 0) return 0;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;t = gcd(a, b);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;t = a/t;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(INF/t &lt; b) return 0;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return t*b;<br/>&#125;<br/><br/>//容斥原理求解因子个数的数，递归的求解 <br/>void rong(int64 a, int s, int l)<br/>&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int i;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int64 t;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(i=s; i&lt;nbln; i++)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;t = lcm(a, bln&#91;i&#93;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(t==0 &#124;&#124; a &gt; right) return;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(l%2 == 1) sum -= (right/t-left/t);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else sum += (right/t-left/t);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rong(t, i+1, l+1);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;<br/>&#125;<br/><br/>int&nbsp;&nbsp;main()<br/>&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int i, j, k;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int64 t, ans;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;INF = (1&lt;&lt;31);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;INF = (INF&lt;&lt;31);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;INF = (INF&lt;&lt;1)-1;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while(scanf(&quot;%lld%lld%lld%lld&quot;, &amp;nbln, &amp;nbun, &amp;left, &amp;right) &amp;&amp; nbln+nbun+left+right)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;left--;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(i=0; i&lt;nbln; i++) scanf(&quot;%lld&quot;, &amp;bln&#91;i&#93;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(i=0; i&lt;nbun; i++) scanf(&quot;%lld&quot;, &amp;bun&#91;i&#93;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//容斥原理的预处理 <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(i=0; i&lt;nbln-1; i++)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(j=i+1; j&lt;nbln; j++)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(bln&#91;i&#93; &gt; bln&#91;j&#93;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;t = bln&#91;i&#93;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bln&#91;i&#93; = bln&#91;j&#93;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bln&#91;j&#93; = t;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sum = 0;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//满足条件1的数 <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rong(1, 0, 0);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;t = 1;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(i=0; i&lt;nbun; i++)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;t = lcm(t, bun&#91;i&#93;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(t == 0) break;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ans = sum;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sum = 0;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//满足条件2的数 <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rong(t, 0, 0);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ans -= sum;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf(&quot;%lld&#92;n&quot;, ans);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return 0;<br/>&#125;<br/></div><br/>Tags - <a href="http://www.ringsd.com/tag.php?tag=zju" rel="tag">zju</a> , <a href="http://www.ringsd.com/tag.php?tag=acm" rel="tag">acm</a> , <a href="http://www.ringsd.com/tag.php?tag=3233" rel="tag">3233</a> , <a href="http://www.ringsd.com/tag.php?tag=lucky" rel="tag">lucky</a> , <a href="http://www.ringsd.com/tag.php?tag=number" rel="tag">number</a> , <a href="http://www.ringsd.com/tag.php?tag=%25E8%25A7%25A3%25E9%25A2%2598%25E6%258A%25A5%25E5%2591%258A" rel="tag">解题报告</a>
]]>
</description>
</item><item>
<link>http://www.ringsd.com/read.php?201</link>
<title><![CDATA[PKU ACM 2356]]></title> 
<author>261762586 &lt;jie0220@gmail.com&gt;</author>
<category><![CDATA[组合数学]]></category>
<pubDate>Fri, 26 Sep 2008 13:13:57 +0000</pubDate> 
<guid>http://www.ringsd.com/read.php?201</guid> 
<description>
<![CDATA[ 
	原题链接：<a href="http://acm.pku.edu.cn/JudgeOnline/problem?id=2356" target="_blank">2356</a><br/><strong>题意：</strong><br/>让我们从给出的N个数中找出few个数，使得这few个数的和可以整除N，如果不存在few个这样的数，那么就输出0；如果存在这样的数，那么就输出这few个数。<br/><br/>题意很清楚，但是我们看看规模就知道如果使用枚举的办法的话，那么操作起来将会非常的困难。下面我们就来看一下通过抽屉原理的证明：<br/><br/><strong>证明：</strong><br/>输入有N个自然数，将这N个自然数从第一个开始取连续和可以得到N个和，然后将这N个和对N取模可以得到N个模，那么可以分为以下两种情况：<br/>1.至少存在一个余数为0（假设为前i个数的和），那么前面i个数的和必然可以被N整除。<br/>2.其中不存在余数为0的情况，那么根据抽屉原理这N个数中存在至少2个数的余数相同（假设这两个数分别为i，j），那么我们就可以确定在这两个余数相同之间的数的和就必然被N整除（既 (sum[j]-sum[i])%N==0) ）。<br/><br/>这个题目里面我也有一些疑问，那就是自然数到底是从哪里开始的？<br/><br/>代码见内页<br/><br/><textarea name="code" class="c" rows="15" cols="100">
#include<iostream>
#define MS 10000
using namespace std;
int num[MS];
int mod[MS];
int pos[MS];
bool mark[MS];

void Init()&#123;
&nbsp;&nbsp;&nbsp;&nbsp;memset(mark, false, sizeof(mark));
&nbsp;&nbsp;&nbsp;&nbsp;memset(pos, 0, sizeof(pos));
&#125;

int main()&#123;
&nbsp;&nbsp;&nbsp;&nbsp;int i, ans, n, sum;
&nbsp;&nbsp;scanf("%d", &n);
&nbsp;&nbsp;ans = -1;
&nbsp;&nbsp;sum = 0;
&nbsp;&nbsp;for(i=0; i<n; i++)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;scanf("%d", &num[i]);
&nbsp;&nbsp;for(i=0; i<n; i++)&#123;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sum += num[i];
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sum %= n;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mod[i] = sum;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(sum == 0)&#123;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ans = i;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;
&nbsp;&nbsp;&nbsp;&nbsp;&#125;
&nbsp;&nbsp;if(ans != -1)&#123;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf("%d&#92;n", ans+1);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(i=0; i<=ans; i++)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf("%d&#92;n", num[i]);
&nbsp;&nbsp;&nbsp;&nbsp;&#125;
&nbsp;&nbsp;&nbsp;&nbsp;else&#123;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Init();
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(i=0; i<n; i++)&#123;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(mark[mod[i]])&#123;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else&#123;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mark[mod[i]] = true;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pos[mod[i]] = i;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf("%d&#92;n", i-pos[mod[i]]);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(ans=pos[mod[i]]+1; ans<=i; ans++)&#123;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf("%d&#92;n", num[ans]);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;
&nbsp;&nbsp;&nbsp;&nbsp;&#125;
&nbsp;&nbsp;return 0;
&#125;
</textarea><br/><br/>Tags - <a href="http://www.ringsd.com/tag.php?tag=acm" rel="tag">acm</a> , <a href="http://www.ringsd.com/tag.php?tag=pku" rel="tag">pku</a> , <a href="http://www.ringsd.com/tag.php?tag=2356" rel="tag">2356</a> , <a href="http://www.ringsd.com/tag.php?tag=%25E6%258A%25BD%25E5%25B1%2589%25E5%258E%259F%25E7%2590%2586" rel="tag">抽屉原理</a>
]]>
</description>
</item>
</channel>
</rss>