<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[卡喀の博客]]></title> 
<link>http://ringsd.com/index.php</link> 
<description><![CDATA[一个普通大学生的普通生活！]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[卡喀の博客]]></copyright>
<item>
<link>http://ringsd.com/read.php?262</link>
<title><![CDATA[关闭评论]]></title> 
<author>261762586 &lt;jie0220@gmail.com&gt;</author>
<category><![CDATA[懒人日记]]></category>
<pubDate>Tue, 15 Dec 2009 04:17:55 +0000</pubDate> 
<guid>http://ringsd.com/read.php?262</guid> 
<description>
<![CDATA[ 
	很无奈的选择，现在只能关闭评论了，准备迁移博客了，有没有好一点的国外的空间，大家推荐一下，国内的空间限制实在太多了！！
]]>
</description>
</item><item>
<link>http://ringsd.com/read.php?261</link>
<title><![CDATA[流水一篇]]></title> 
<author>261762586 &lt;jie0220@gmail.com&gt;</author>
<category><![CDATA[懒人日记]]></category>
<pubDate>Thu, 22 Oct 2009 05:16:43 +0000</pubDate> 
<guid>http://ringsd.com/read.php?261</guid> 
<description>
<![CDATA[ 
	很久都没有更新了，回头看一下自己这段时间的生活，事情不是很多，但是杂。。<br/><br/>上周六是湖南省的省赛，比赛的题目感觉有点难度，而且英语水平实在不咋的，英文题目看的半懂不懂，中文题目看懂了却不会了……<br/><br/>最后的结果是三个题目，别人都是暴力通过，我们很艰难的在敲着各式各样的代码……<br/><br/>周六下午比完赛就自己赶飞机去宁波，第一次坐飞机呀，现在是完全没感觉了。不过打消了我对于空姐的幻想了，实在是……昨天又把和空姐同居的日子续看完了，还是把希望寄托在这之上吧。<br/><br/>周日宁波赛区的题目并不难，但是我们依旧是三个题目，比赛的过程中有那么一点小插曲，队友在敲代码的时候，我在旁边检查代码，然后差点睡着了，下午的太阳实在太让人有感觉了，慵懒的下午……<br/><br/>宁波赛区给了我们太多的惊喜，队员的礼物是杯具（悲剧），教练的礼物是餐具（惨剧），而参赛服上面的无色气球更是让人无比遐想，而更神奇的是比赛过程中标志题目的三个无色气球，里面居然套了个小气球^^!<br/><br/>到宁波火车站的时候时间还很早，于是网吧消遣了一下，结果走的时候落下了一件外套+一个4GU盘……<br/><br/>下一站到了杭州，去杭州就纯粹是去玩的了，西湖的景色确实很宜人，三个人花了一天的时间将围绕着西湖走了一圈。<br/><br/>杭州也没有见到想象中那么多的江南美女……抑或是我去错地方了……<br/><br/>又回到了学校了，忙碌还是空闲，自己也没办法把握了……<br/>Tags - <a href="http://ringsd.com/tag.php?tag=%25E5%25AE%2581%25E6%25B3%25A2" rel="tag">宁波</a> , <a href="http://ringsd.com/tag.php?tag=%25E6%25AF%2594%25E8%25B5%259B" rel="tag">比赛</a>
]]>
</description>
</item><item>
<link>http://ringsd.com/read.php?260</link>
<title><![CDATA[n!的相关总结]]></title> 
<author>261762586 &lt;jie0220@gmail.com&gt;</author>
<category><![CDATA[ACM]]></category>
<pubDate>Mon, 28 Sep 2009 10:01:28 +0000</pubDate> 
<guid>http://ringsd.com/read.php?260</guid> 
<description>
<![CDATA[ 
	n的阶乘有很多相关的算法，这里总结了几个常用的算法：<br/><br/><span style="color: #0000FF;">1.高精度求解N！</span><br/><div class="code">//以下为使用Java的大数类实现<br/>import java.math.BigInteger;<br/>import java.util.Scanner;<br/>public class Main &#123;<br/>&nbsp;&nbsp;public static void main(String&#91;&#93; args)<br/>&nbsp;&nbsp;&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;BigInteger inc = new BigInteger(&quot;1&quot;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;BigInteger n = null;<br/>&nbsp;&nbsp;&nbsp;&nbsp;Scanner sc = new Scanner(System.in);<br/>&nbsp;&nbsp;&nbsp;&nbsp;while(sc.hasNext())<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;n = sc.nextBigInteger();<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BigInteger ans = new BigInteger(&quot;1&quot;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BigInteger i = new BigInteger(&quot;1&quot;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(; i.compareTo(n) != 1; i = i.add(inc))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ans = ans.multiply(i);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(ans);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#125;<br/>&nbsp;&nbsp;&#125;<br/>&#125;</div><br/><br/><span style="color: #0000FF;">2.计算阶乘末尾第一个非0数字</span><br/><div class="code">//快速求解N!末尾第一个非0数字，时间复杂度为O(n^2)，n为 N的位数 <br/>//输入的N为字符串读入<br/>int lastdigit(char*buf) <br/>&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;int mod&#91;20&#93;=&#123;1,1,2,6,4,2,2,4,2,8,4,4,8,4,6,8,8,6,8,2&#125;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;int len=strlen(buf),a&#91;maxn&#93;,i,c,ret=1;<br/>&nbsp;&nbsp;&nbsp;&nbsp;if(len==1)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return mod&#91;buf&#91;0&#93;-&#039;0&#039;&#93;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;for(i=0;i&lt;len;i++)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a&#91;i&#93;=buf&#91;len-1-i&#93;-&#039;0&#039;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;for(;len;len-=!a&#91;len-1&#93;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ret=ret*mod&#91;a&#91;1&#93;%2*10+a&#91;0&#93;&#93;%5;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(c=0,i=len-1;i&gt;=0;i--)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;c=c*10+a&#91;i&#93;,a&#91;i&#93;=c/5,c%=5;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#125;<br/>&nbsp;&nbsp;&nbsp;&nbsp;return ret+ret%2*5;<br/>&#125;</div><br/>相关题目：<a href="http://acm.hdu.edu.cn/showproblem.php?pid=1066" target="_blank">http://acm.hdu.edu.cn/showproblem.php?pid=1066</a><br/><br/><span style="color: #0000FF;">3.斯特林公式快速求解N！和N！的位数</span><br/>斯特林公式：<br/><a href="http://ringsd.com/attachment.php?fid=78" target="_blank"><img src="http://ringsd.com/attachment.php?fid=78" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0"/></a><br/>注意这里的斯特林公式求解出来的是一个近似值，所以不能用来求解需要准确值<br/>斯特林公式求解N!的位数：<br/><a href="http://ringsd.com/attachment.php?fid=79" target="_blank"><img src="http://ringsd.com/attachment.php?fid=79" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0"/></a><br/>对N!取以10为底的对数<br/>可以得到以下公式<br/><div class="code">//快速求解N！的位数，输入的n即为N！中的最大的那个N<br/>int strilingToDigit (int n)<br/>&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;double ans;<br/>&nbsp;&nbsp;&nbsp;&nbsp;ans = 0.5*log10(2*pi)+(0.5+n)*log10(n)-n/log(10.0)+1.0;<br/>&nbsp;&nbsp;&nbsp;&nbsp;return int(ans);<br/>&#125;</div><br/>相关题目：<a href="http://acm.hdu.edu.cn/showproblem.php?pid=1018" target="_blank">http://acm.hdu.edu.cn/showproblem.php?pid=1018</a><br/><br/><span style="color: #0000FF;">4.阶乘末尾有多少个0</span><br/>分析发现，实际上形成末尾0，就是因子5的数量，而计算1~n之间包含一个因子i的个数的简单算法就是：<br/><div class="code">int factorNum(int i, int n)<br/>&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;int cnt = 0;<br/>&nbsp;&nbsp;&nbsp;&nbsp;while(n)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;n /= i;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cnt += n;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#125;<br/>&nbsp;&nbsp;&nbsp;&nbsp;return cnt;<br/>&#125;</div><br/>因此，直接将i换成5，就可以得到因子5的数量，也即n!末尾0的数量。<br/><a href="http://acm.hdu.edu.cn/showproblem.php?pid=1124" target="_blank">http://acm.hdu.edu.cn/showproblem.php?pid=1124</a><br/><br/><span style="color: #0000FF;">5.返回阶乘左边的第二个数字</span><br/>简单算法：用实数乘，超过100就除以10，最后取个位即可。因为整数部分的个位就是阶乘结果左边的第二个数字。<br/><br/><span style="color: #0000FF;">6.判断数值 m 是否可以整除 n!</span><br/>算法：使用素因子判断法<br/>A. 首先直接输出两种特殊情况：<br/>&nbsp;&nbsp; m == 0 则 0肯定不会整除n!；<br/>&nbsp;&nbsp;&nbsp;&nbsp;n >= m 则 m肯定可以整除n!;<br/>B. 那么就只剩最后一种情况：m > n，我们从m的最小素因子取起，设素因子为i那么可以&nbsp;&nbsp;&nbsp;&nbsp; 求得m的素因子i的个数 nums1；再检查闭区间 i ~ n 之间的数，一共包含多少个素因子i，就可以简单的利用上面(2)中所介绍的数学公式进行计算得到nums2。如果nums2 < nums1，就表示1 ~ n中包含素因子的数量 < 除数m包含素因子i的数量，那么m必然不能整除n!，置ok = false。<br/>C. 最后：如果 !ok or m > n or m == 0 则不能整除；否则可以整除<br/><br/><span style="color: #0000FF;">7.数字N能否表示成若干个不相同的阶乘的和</span><br/>这里可以选择的阶乘为：0! ~ 9!，实际上这一题与数论无关，与搜索有关。相关题目：<a href="http://acm.zju.edu.cn" target="_blank">http://acm.zju.edu.cn</a> 的2358题。<br/>&nbsp;&nbsp;&nbsp;&nbsp;分析，由于可供选择的阶乘数量较少，直接可以利用DFS搜索来做：<br/>A. 首先将0 ~ 9的阶乘作一个表A[10]；再设置一个可以组成“和”的数组ans[N]。<br/>B. 深度优先搜索方法：<br/><div class="code">search(n) &#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for(i = n; i &lt;= 9; i++) &#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sum += A&#91;i&#93;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//求和<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 如果sum在ans数组中不存在，则将sum插入到ans&#91;&#93;数组中<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; search(n+1);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sum -= A&#91;i&#93;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //回溯<br/>&nbsp;&nbsp;&nbsp;&nbsp; &#125;<br/>&#125;</div><br/>C. 最后对于输入n，就在ans数组中查找是否存在n，如果存在，则表示n可以表示成不同的阶乘和，否则不行。<br/><br/><span style="color: #FF0000;">---前面的四条都有具体的实现，后面的三个暂时没有具体的实现。</span><br/>Tags - <a href="http://ringsd.com/tag.php?tag=n%25E7%259A%2584%25E9%2598%25B6%25E4%25B9%2598" rel="tag">n的阶乘</a> , <a href="http://ringsd.com/tag.php?tag=%25E7%25AE%2597%25E6%25B3%2595" rel="tag">算法</a> , <a href="http://ringsd.com/tag.php?tag=%25E4%25BD%258D%25E6%2595%25B0" rel="tag">位数</a>
]]>
</description>
</item><item>
<link>http://ringsd.com/read.php?259</link>
<title><![CDATA[卡题真难受]]></title> 
<author>261762586 &lt;jie0220@gmail.com&gt;</author>
<category><![CDATA[懒人日记]]></category>
<pubDate>Wed, 23 Sep 2009 14:14:38 +0000</pubDate> 
<guid>http://ringsd.com/read.php?259</guid> 
<description>
<![CDATA[ 
	又被某道题卡了，一卡题心情就完全被破坏了。<br/><br/>发完牢骚了，明天应该可以A掉了……<br/><br/>洗洗睡吧，做个干净的男人---摘自高中某同学语录<br/>Tags - <a href="http://ringsd.com/tag.php?tag=%25E5%258D%25A1%25E9%25A2%2598" rel="tag">卡题</a> , <a href="http://ringsd.com/tag.php?tag=%25E7%2589%25A2%25E9%25AA%259A" rel="tag">牢骚</a>
]]>
</description>
</item><item>
<link>http://ringsd.com/read.php?257</link>
<title><![CDATA[烂烂的英语，烂烂的人]]></title> 
<author>261762586 &lt;jie0220@gmail.com&gt;</author>
<category><![CDATA[懒人日记]]></category>
<pubDate>Sat, 12 Sep 2009 01:13:00 +0000</pubDate> 
<guid>http://ringsd.com/read.php?257</guid> 
<description>
<![CDATA[ 
	关于某人英语的问题，某人已经不想再讨论了，虽然看过几篇英语论文，但是对于英语的认识依旧是那么几个单词，心中的想法依旧是只要有了足够的词汇就不用担心了。<br/><br/>某人现在要拼命的积累词汇，英文论文已经看过了，对于论文也已经理解了，不过看过之后发现，对于论文中原本不认识的词汇，依旧不认识……看来，边看论文边记单词不是个好主意，艾宾浩斯遗忘曲线在某人这里得到了完美的体现，因为某人看论文的时候只有在第一次看的时候会金山词霸一下，接下来就是直接看那旁边的小小的中文去了，E文给我滚开！<br/><br/>从以上可以看出某人的英语有多烂了，所以现在大四了，某人的英语四级依旧是大红灯笼高高挂，由此也可以看出某人实际上也是一个烂烂的人。某人有点烂，但是某人其实并不懒的，至少一个暑假以来基本都维持了，7：30以前起床的习惯，而且到了大四开学之后某人依旧是维持这个良好的习惯。<br/><br/>某人在这里讨论四级这个问题已经是很多次了，这次真的是被逼上梁山了……<br/>Tags - <a href="http://ringsd.com/tag.php?tag=%25E8%258B%25B1%25E8%25AF%25AD" rel="tag">英语</a> , <a href="http://ringsd.com/tag.php?tag=%25E6%2587%2592%25E4%25BA%25BA" rel="tag">懒人</a> , <a href="http://ringsd.com/tag.php?tag=%25E7%2583%2582%25E4%25BA%25BA" rel="tag">烂人</a>
]]>
</description>
</item><item>
<link>http://ringsd.com/read.php?256</link>
<title><![CDATA[传奇--堵门事件]]></title> 
<author>261762586 &lt;jie0220@gmail.com&gt;</author>
<category><![CDATA[懒人日记]]></category>
<pubDate>Fri, 04 Sep 2009 12:55:27 +0000</pubDate> 
<guid>http://ringsd.com/read.php?256</guid> 
<description>
<![CDATA[ 
	接触热血的时候是在初三的那个暑假，大家基本都知道我们的暑假在小六、初三、高三以后的暑假才是真正的暑假，可以无所顾及的玩，没有了暑假作业，第一次接触网络是在那个时候，第一次接触网络游戏也是在那个时候，而这个时候传奇已经推出了两年多了。<br/><br/>神奇的玛法大陆，各式各样以前未曾见过的让我有了对这个世界全新的认识，也开始走入了玛法大陆，开始一步步的接触这片神奇的大陆，那个时候的我一直是个小法师，到我与传奇绝缘的时候我依旧是小法师，因为我只是喜欢在那片大陆里面闲逛，不喜欢到处升级，更多的时候我是拿着一把魔杖独自一个人在玛法大陆游荡，但是那种感觉却胜过了一切。<br/><br/>高中的课程总是满满的，这也意味着我只有在周末才会去那片神奇的玛法大陆，第一次接触网络小说也是在那个时候，真正要算起来，第一本我看过的网络小说就是关于传奇的，第一次知道了，原来游戏不只是游戏。<br/><br/>堵门事件再次让传奇走到了我的视线中，现在的我已经不再是那个对网络一无所知小白了，传奇的永久免费，然后就是开始大卖道具，这样成为了网络游戏中盈利模式，平衡就这样被打破了，就这样离开了那个曾经心目中神奇的大陆。<br/><br/>打着回归的旗号，但是却依旧在其中嵌入了各种打破平衡的箱子，为什么就不能够给我们留下一点美好一点的回忆，继续我的无游戏之旅吧，现在玩游戏已经失去了以前的那种激情了，DNF玩的是操作，但是越到后面越是觉得道具这种盈利模式的恶心。<br/><br/>另外，今天看到了李开复老师从谷歌离职的消息，喜欢谷歌也喜欢李开复老师，希望谷歌越走越远，也希望李开复老师能够完成他自己的创业之路！！<br/>Tags - <a href="http://ringsd.com/tag.php?tag=%25E4%25BC%25A0%25E5%25A5%2587" rel="tag">传奇</a> , <a href="http://ringsd.com/tag.php?tag=%25E5%25A0%25B5%25E9%2597%25A8" rel="tag">堵门</a>
]]>
</description>
</item><item>
<link>http://ringsd.com/read.php?255</link>
<title><![CDATA[金秋九月]]></title> 
<author>261762586 &lt;jie0220@gmail.com&gt;</author>
<category><![CDATA[懒人日记]]></category>
<pubDate>Wed, 02 Sep 2009 16:35:00 +0000</pubDate> 
<guid>http://ringsd.com/read.php?255</guid> 
<description>
<![CDATA[ 
	转眼之间最后一个暑假就这样过去了，马上又要开学了，寂静了近两个月的学校一下热闹了起来，已经习惯了寂静，突然之间这么热闹还真是不习惯了！<br/><br/>接下来的两个月是真正的两个月的煎熬了，准备了这么长时间了，真的要好好的在这两个月里好好的发挥一下了，不想这么久的努力取不到一点点的成绩！<br/><br/>这段时间一直都在总结自己学习到的各种知识，发现自己还是没有好好的总结好，很多东西虽然学习了，而且也解决了一些问题，但是由于缺少了一个总结的过程，总是无法真正的将那些学习到的东西发挥出来，有种挫败感！<br/><br/>金秋九月是个收获的季节，希望自己也能够在这样一个季节里面有个好的收获。<br/><br/>-----------------------------------------------------------我华丽吗？---------------------------------------------------------<br/><br/>话说信春哥得永生，我不用永生，我只希望自己能够取得好的成绩，春哥，我可是每天都到<a href="http://www.xinchunge.com" target="_blank">www.xinchunge.com</a>上面给你Orz啊！<br/><br/>祝福自己！！！<br/>Tags - <a href="http://ringsd.com/tag.php?tag=%25E9%2587%2591%25E7%25A7%258B" rel="tag">金秋</a> , <a href="http://ringsd.com/tag.php?tag=%25E4%25B9%259D%25E6%259C%2588" rel="tag">九月</a> , <a href="http://ringsd.com/tag.php?tag=%25E6%2594%25B6%25E8%258E%25B7" rel="tag">收获</a>
]]>
</description>
</item><item>
<link>http://ringsd.com/read.php?254</link>
<title><![CDATA[Lucky Number zju 3233 解题报告]]></title> 
<author>261762586 &lt;jie0220@gmail.com&gt;</author>
<category><![CDATA[组合数学]]></category>
<pubDate>Mon, 31 Aug 2009 01:05:54 +0000</pubDate> 
<guid>http://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://ringsd.com/tag.php?tag=zju" rel="tag">zju</a> , <a href="http://ringsd.com/tag.php?tag=acm" rel="tag">acm</a> , <a href="http://ringsd.com/tag.php?tag=3233" rel="tag">3233</a> , <a href="http://ringsd.com/tag.php?tag=lucky" rel="tag">lucky</a> , <a href="http://ringsd.com/tag.php?tag=number" rel="tag">number</a> , <a href="http://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://ringsd.com/read.php?253</link>
<title><![CDATA[开个会拿个U盘]]></title> 
<author>261762586 &lt;jie0220@gmail.com&gt;</author>
<category><![CDATA[懒人日记]]></category>
<pubDate>Thu, 27 Aug 2009 17:08:35 +0000</pubDate> 
<guid>http://ringsd.com/read.php?253</guid> 
<description>
<![CDATA[ 
	参加了长沙数据大本营的一个感谢会，去的人基本都是湖南高校站长以及长沙数据大本营这个网站的一些版主，我就是在里面混迹了一段时间的版主。<br/><br/>坐了半个小时的公交车拿了一个U盘+2本书+一个小手电，感谢会还真是感谢会什么都没有说，就是一群人坐在咖啡厅参加了一下活动，活跃的网友拿了莫文蔚和谢霆锋的cd+亲笔签名海报回去了，而我是那种不活跃的，整个活动的过程我都一直在那边上坐着。<br/><br/>似乎因为自己不活泼的个性已经招致了某些人的不喜欢了，个性如此，无奈。<br/><br/>或许如我<a href="http://www.ringsd.com/read.php?252" target="_blank">不是不想改变</a>中所说吧！<br/><br/>累了，休息下，身心疲惫才是真的累！！！<br/><br/>心里一肚子牢骚都不知如何说出口，这样写写或许睡觉起来就好了！！<br/>Tags - <a href="http://ringsd.com/tag.php?tag=u%25E7%259B%2598" rel="tag">u盘</a>
]]>
</description>
</item><item>
<link>http://ringsd.com/read.php?252</link>
<title><![CDATA[不是不想改变]]></title> 
<author>261762586 &lt;jie0220@gmail.com&gt;</author>
<category><![CDATA[懒人日记]]></category>
<pubDate>Tue, 25 Aug 2009 14:59:14 +0000</pubDate> 
<guid>http://ringsd.com/read.php?252</guid> 
<description>
<![CDATA[ 
	“不是不想改变，是因为改变了就是玩真的了，就不是闹着玩了”，这是今天看TVB新剧《绝代商娇》中看到的一句让自己感触颇深的话。<br/><br/>这是白武士在实施一个“废纸佬变环保大王”的改造活动中对废纸佬们说的一句话，其实对于我们来说又何尝不是呢？其实我们并不是不可以改变的，只是当我们遇到改变的时候我们就必须要面对改变之后的真实，废纸佬在没有改变之前就算想着变成环保大王也很大程度上不会去真正的实施，心目中总是给自己一份自卑的心理，而真正的改变就不同了，它在一定程度上会逼迫我们去面对改变后的我们，改变之前的我们是废纸佬。我们不想做的时候我们可以选择放弃，因为我们都可能没有那么好的决心，我们害怕面对失败，我们改变之前我们可以放弃，我们可以闹着玩，但是改变之后我们就必须要坚持下去，我们就不得不面对着真实的世界。<br/><br/>这段时间还是依旧不断的做题目做比赛来提高自己，有的时候总是认为某些东西自己已经知道了，实际上却是因为自己不愿意去接触这些东西，因为有些东西接触之后就会发现自己知道的实在是太少了。不愿意去面对那样一种无知的窘境，宁愿真正的无知也不愿打破这样一种被自己隐藏的无知。<br/><br/>“无知无畏，无知无谓”这是自己一直以来都喜欢的一句话，这句话的两种不同说法却代表了自己心中的两种不同情景：“无知无畏”，无知就没有什么畏惧的了；“无知无谓”，无知就无所谓了。其实是想提醒自己不要陷入了这样的两种境界，但是自己却宁愿自己将自己陷入到其中的一个情景。<br/><br/>该改变的时候就改变，改变之后的依旧是自己，好好面对自己的改变就是了。<br/>Tags - <a href="http://ringsd.com/tag.php?tag=%25E6%2594%25B9%25E5%258F%2598" rel="tag">改变</a> , <a href="http://ringsd.com/tag.php?tag=%25E8%2587%25AA%25E5%25B7%25B1" rel="tag">自己</a> , <a href="http://ringsd.com/tag.php?tag=%25E6%2597%25A0%25E7%259F%25A5" rel="tag">无知</a>
]]>
</description>
</item>
</channel>
</rss>