摘要: The Castle城堡IOI'94 - Day 1我们憨厚的USACO主人公农夫约翰(Farmer John)以无法想象的运气,在他生日那天收到了一份特别的礼物:一张“幸运爱尔兰”(一种彩票)。结果这张彩票让他获得了这次比赛唯一的奖品——坐落于爱尔兰郊外的一座梦幻般的城堡![编辑]描述喜欢吹嘘的农夫约翰立刻回到有着吹嘘传统的威斯康辛老家开始吹嘘了, 农夫约翰想要告诉他的奶牛们关于他城堡的一切。他需要做一些吹嘘前的准备工作:比如说知道城堡有多少个房间,每个房间有多大。另外,农夫约翰想要把一面单独的墙(指两个单位间的墙)拆掉以形成一个更大的房间。 你的工作就是帮农夫约翰做以上的准备,算出 阅读全文
posted @ 2012-07-18 23:43 AbandonZHANG 阅读(411) 评论(0) 推荐(0)
摘要: 对于从1到N (1 <= N <= 39) 的连续整数集合,能划分成两个子集合,且保证每个集合的数字和是相等的。举个例子,如果N=3,对于{1,2,3}能划分成两个子集合,每个子集合的所有数字和是相等的:[编辑]描述{3} 和 {1,2}这是唯一一种分法(交换集合位置被认为是同一种划分方案,因此不会增加划分方案总数) 如果N=7,有四种方法能划分集合{1,2,3,4,5,6,7},每一种分法的子集合各数字和是相等的:{1,6,7} 和 {2,3,4,5} {注 1+6+7=2+3+4+5}{2,5,7} 和 {1,3,4,6}{3,4,7} 和 {1,2,5,6}{1,2,4,7} 阅读全文
posted @ 2012-07-18 23:42 AbandonZHANG 阅读(240) 评论(0) 推荐(0)
摘要: 农民约翰有三个容量分别是A,B,C升的桶,A,B,C分别是三个从1到20的整数,最初,A和B桶都是空的,而C桶是装满牛奶的。有时,农民把牛奶从一个桶倒到 另一个桶中,直到被灌桶装满或原桶空了。当然每一次灌注都是完全的。由于节约, 牛奶不会有丢失。描述写一个程序去帮助农民找出当A桶是空的时候,C桶中牛奶所剩量的所有可能性。格式PROGRAM NAME: milk3INPUT FORMAT:(file milk3.in)单独的一行包括三个整数A,B和C。OUTPUT FORMAT:(file milk3.out)只有一行,升序地列出当A桶是空的时候,C桶牛奶所剩量的所有可能性。SAMPLE INP 阅读全文
posted @ 2012-07-18 23:41 AbandonZHANG 阅读(885) 评论(0) 推荐(0)
摘要: DescriptionGiven a sequence with N integers A(1), A(2), ..., A(N), your task is to find out a sequence B(1), B(2), ..., B(N), such thatV = (|A(1) – B(1)| + |A(2) – B(2)| + ... + |A(N) – B(N)|) + (|B(1) – B(2)| + |B(2) – B(3)| + ... +|B(N-1) – B(N)|)is minimum.InputThe first line in the input contain 阅读全文
posted @ 2012-07-18 23:35 AbandonZHANG 阅读(198) 评论(0) 推荐(0)
摘要: DescriptionYour rich uncle died recently, and the heritage needs to be divided among your relatives and the church (your uncle insisted in his will that the church must get something). There are N relatives (N <= 18) that were mentioned in the will. They are sorted in descending order according t 阅读全文
posted @ 2012-07-18 23:34 AbandonZHANG 阅读(395) 评论(0) 推荐(0)
摘要: Problem B: Save the Students!Hogwarts is under attack by the Dark Lord, He-Who-Must-Not-Be-Named. To protect the students, Harry Potter must cast protective spells so that those who are protected by the spells cannot be attacked by the Dark Lord.Harry has asked all the students to gather on the vast 阅读全文
posted @ 2012-07-18 23:30 AbandonZHANG 阅读(323) 评论(0) 推荐(1)
摘要: ACM International Collegiate Programming Contest, Asia-Amritapuri Site, 2011Problem E: Distinct PrimesArithmancy is Draco Malfoy's favorite subject, but what spoils it for him is that Hermione Granger is in his class, and she is better than him at it. Prime numbers are of mystical importance in 阅读全文
posted @ 2012-07-18 23:27 AbandonZHANG 阅读(364) 评论(0) 推荐(0)
摘要: 看哪些书才能渐渐开始精通C++?推荐的阅读顺序:level 1从<<essential c++>>开始,短小精悍,可以对c++能进一步了解其特性以<<c++ primer>>作字典和课外读物,因为太厚不可能一口气看完level 2然后从<<effective c++>>开始转职,这是圣经,请遵守10诫,要经常看,没事就拿来翻翻接着是<<exceptional c++>>,个人认为Herb Sutter主席大人的语言表达能力不及Scott Meyers总是在教育第一线的好顺下来就是<<mo 阅读全文
posted @ 2012-07-18 23:09 AbandonZHANG 阅读(293) 评论(0) 推荐(0)
摘要: C. Lexicographically Maximum Subsequencetime limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputYou've got strings, consisting of only lowercase English letters. Find its lexicographically maximum subsequence.We'll call a non-empty strings[p1p2.. 阅读全文
posted @ 2012-07-18 23:02 AbandonZHANG 阅读(456) 评论(0) 推荐(0)
摘要: l Trie原理Trie的核心思想是空间换时间。利用字符串的公共前缀来降低查询时间的开销以达到提高效率的目的。l Trie性质好多人说trie的根节点不包含任何字符信息,我所习惯的trie根节点却是包含信息的,而且认为这样也方便,下面说一下它的性质 (基于本文所讨论的简单trie树)1.字符的种数决定每个节点的出度,即branch数组(空间换时间思想)2. branch数组的下标代表字符相对于a的相对位置3.采用标记的方法确定是否为字符串。4.插入、查找的复杂度均为O(len),len为字符串长度l Trie的示意图如图所示,该trie树存有abc、d、da、dda四个字符串,如果是字符串会在 阅读全文
posted @ 2012-07-18 22:51 AbandonZHANG 阅读(281) 评论(0) 推荐(0)
摘要: 将N!表示成N!=p1^t1*p2^t2*…pi^ti…*pk^tk(其中p1,p2……pk是素数,1<N<=10^6)显然很容易通过素数筛选求出pi,因为1<pi<=N,关键是如何快速地求出ti。我们先来看一下对于2这个素因子,把N!分成两部分,即奇偶两部分假设N是偶数N!=1*2*3*4*5……N=(2*4*6……)*(1*3*5……)因为有N/2个偶数,所以偶数部分可以提出N/2个2,=2^(N/2)*(1*2*3*……N/2)*(1*3*5*……)=2^(N/2)*(N/2)!*(1*3*5*……)看到了吗!神奇的事情发生了,N规模的问题转化成了N/2的问题了。 阅读全文
posted @ 2012-07-18 22:48 AbandonZHANG 阅读(208) 评论(0) 推荐(0)
摘要: 给你n个数,其中有且仅有一个数出现了奇数次,其余的数都出现了偶数次。用线性时间常数空间找出出现了奇数次的那一个数。分析:从头到尾异或一遍,最后得到的那个数就是出现了奇数次的数。这是因为异或有一个神奇的性质:两次异或同一个数,结果不变。再考虑到异或运算满足交换律,先异或和后异或都是一样的,因此这个算法显然正确。 阅读全文
posted @ 2012-07-18 22:47 AbandonZHANG 阅读(255) 评论(0) 推荐(0)
摘要: Feed Ratios饲料调配1998 ACM Finals, Dan Adkins描述农夫约翰从来只用调配得最好的饲料来喂他的奶牛。饲料用三种原料调配成:大麦,燕麦和小麦。他知道自己的饲料精确的配比,在市场上是买不到这样的饲料的。他只好购买其他三种混合饲料(同样都由三种麦子组成),然后将它们混合,来调配他的完美饲料。给出三组整数,表示 大麦:燕麦:小麦 的比例,找出用这三种饲料调配 x:y:z 的饲料的方法。 例如,给出目标饲料 3:4:5 和三种饲料的比例: 1:2:3 3:7:1 2:1:2你必须编程找出使这三种饲料用量最少的方案,要是不能用这三种饲料调配目... 阅读全文
posted @ 2012-07-18 15:35 AbandonZHANG 阅读(598) 评论(0) 推荐(0)
摘要: 将N!表示成N!=p1^t1*p2^t2*…pi^ti…*pk^tk(其中p1,p2……pk是素数,1f(n,5),所以问题就转化成了求f(n,5)。问题2:N!的转化成12进制之后,末尾有几个0?和问题一样,12=2*2*3,所以只要求Min(f(n,2)/2,f(n,3)),就可以了。问题3... 阅读全文
posted @ 2012-07-18 14:48 AbandonZHANG 阅读(160) 评论(0) 推荐(0)
摘要: 将N!表示成N!=p1^t1*p2^t2*…pi^ti…*pk^tk(其中p1,p2……pk是素数,1f(n,5),所以问题就转化成了求f(n,5)。问题2:N!的转化成12进制之后,末尾有几个0?和问题一样,12=2*2*3,所以只要求Min(f(n,2)/2,f(n,3)),就可以了。问题3... 阅读全文
posted @ 2012-07-18 14:48 AbandonZHANG 阅读(211) 评论(0) 推荐(0)
摘要: 高斯消元法(Gauss Elimination) 分析 & 题解 & 模板——czyuan原创 高斯消元法,是线性代数中的一个算法,可用来求解线性方程组,并可以求出矩阵的秩,以及求出可逆方阵的逆矩阵。高斯消元法的原理是:若用初等行变换将增广矩阵 化为 ,则AX = B与CX = D是同解方程组。所以我们可以用初等行变换把增广矩阵转换为行阶梯阵,然后回代求出方程的解。以上是线性代数课的回顾,下面来说说高斯消元法在编程中的应用。首先,先介绍程序中高斯消元法的步骤:(我们设方程组中方程的个数为equ,变元的个数为var,注意:一般情况下是n个方程,n个变元,但是有些题目就故意让方程数 阅读全文
posted @ 2012-07-18 14:21 AbandonZHANG 阅读(950) 评论(0) 推荐(0)
摘要: 我的usaco总结(附录内容是在pdf里面的,pdf可以在oibh找到rar part 1 :http://www.oibh.org/bbs/attachment.php?aid=14426rar part 2 :http://www.oibh.org/bbs/attachment.php?aid=14427)Personalized Curriculum for Leo Kan; Last visit: 12 hours agoCongratulations! You have finished all available material.Chapter 1 DONE 2008.03.16 阅读全文
posted @ 2012-07-18 00:46 AbandonZHANG 阅读(1219) 评论(0) 推荐(0)