摘要: 来源:http://ace.delos.com/usacoprob2?a=F5gG3hMiHdO&S=ttwo 这题是简单的模拟题,当然你也可以用数学的方法做,我个人推崇KISS原则。 这题的唯一亮点就是无解的判断,我敲代码也懒得想,因为递归到43000左右就爆栈了,所以我到40000时就掐断,这是我的战果: 现在,给出判断无解的方法: 1.无解则无论牛还是农夫,他们的路线都是有周期... 阅读全文
posted @ 2012-11-21 09:48 ay27 阅读(123) 评论(0) 推荐(0) 编辑
摘要: 来源:http://ace.delos.com/usacoprob2?a=HMnSiF441c0&S=concom 这题光看数据,很容易判断是O(n^3)的算法,很容易想到Floyed算法。 但是直接用三重循环做,基本上不能AC,可能会对很多个点,但是AC就很困难,至少我WA了6次,主要是第七个和第八个点出错,至于为什么,我也不是很懂。 但是如果把三重循环中的第三重写成递归的形式,就AC了,... 阅读全文
posted @ 2012-11-21 09:08 ay27 阅读(156) 评论(0) 推荐(0) 编辑
摘要: 来源:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=2267 第一题在UVa上AC的题。 题本身简单,但是UVa的数据很凶残。 提交了20来次,终于发现了点东西。 首先,UVa肯定是用了linux的系统评测,因为数组初始化了和没初始化是完全不同的,... 阅读全文
posted @ 2012-11-21 08:43 ay27 阅读(265) 评论(0) 推荐(0) 编辑
摘要: 来源:http://ace.delos.com/usacoprob2?a=pazq26JBLUl&S=money简单的背包问题把题目再描述一遍:给出V种货币面值,和需要构造的金额数N,问有多少种构造方法。1.这里涉及货币的种类和金额数两个量,所以状态的表示要有这两个量;2.设F[i][j]表示用前i种货币构造金额为j的构造方法数,则: F[i][j]=F[i-1][j]+F[i][j-w[i]]即用与不用货币i的问题初始化:F[k][w[k]]=1,这个初始化可以放在循环外边,不过这样就要在循环内把这个加一次;也可以放在循环内部。当然,空间上还可以再优化,具体可以参照DD大牛的《背包九 阅读全文
posted @ 2012-11-17 10:34 ay27 阅读(185) 评论(0) 推荐(0) 编辑
摘要: 来源:http://ace.delos.com/usacoprob2?a=UGksUWcO9ZG&S=zerosum 简单的DFS,秒杀。 主要是不清楚C++中是否有函数可以直接计算表达式,所以自己写了个简单的计算函数。 搜索时按照空格,加号,减号的顺序,连排序都省了。 /*ID:ay27272PROG:zerosumLANG:C++*/#include <iostream>#inc... 阅读全文
posted @ 2012-11-17 00:34 ay27 阅读(178) 评论(0) 推荐(0) 编辑
摘要: 来源:http://ace.delos.com/usacoprob2?a=T9Gq2i9yzJN&S=nocows 题目要求的是,用N个结点能够构造多少个高为K的二叉树,要求二叉树的结点的度为0或2。 首先,我们要关注的是树的高度和结点数。再者,这题的所有结点的度都为0或2。 考虑到结点度的特殊性,如果把高为K的树的根结点删去,则生成两个高为K-1的子树T1和T2,它们的结点数和为N-1 ... 阅读全文
posted @ 2012-11-17 00:32 ay27 阅读(159) 评论(0) 推荐(0) 编辑
摘要: C语言确实很强大,很自由,特别是输入输出时的格式控制,熟练这些格式控制问题,可以很方便的解决很多奇怪的问题。当然,scanf和printf两个函数也因它们的自由度和安全性而备受批评,特别是在大型程序设计中,一般是尽可能避免用这两个函数的。但是对于习惯用C和参加ACM/ICPC的人来说,这两个函数的重要性无可替代。 (sscanf和sprintf这两个函数和scanf,printf类似,但是ssc... 阅读全文
posted @ 2012-11-15 14:04 ay27 阅读(692) 评论(0) 推荐(0) 编辑
摘要: 题目来源:http://ace.delos.com/usacoprob2?a=eORCKYsuBVM&S=prefix 水水的DP,水水地过。 定义布尔数组F[],F[i]表示第i个字符的可匹配性,如果能匹配到i,则F[i]为true,否则为false,最后的结果就是f[k]为true时的最大的k。 方程:F[i]=F[i] || F[i-size[j]] ,其中,size[j]表示第j... 阅读全文
posted @ 2012-11-14 14:50 ay27 阅读(204) 评论(0) 推荐(0) 编辑
摘要: 题目来源:http://ace.delos.com/usacoprob2?a=eORCKYsuBVM&S=lamps 说真的,不怎么喜欢这题,主要是题意描述不好。 想了很久,终于明白,输入的亮着的灯,关着的灯,没有输入的就是未知的,状态可以随意。 这样,题目大意就是: 给出最后状态要满足的条件,然后求出从初始状态转换到最后状态过程中,所有满足要求的状态。 这么说来,就是一个简单... 阅读全文
posted @ 2012-11-14 14:39 ay27 阅读(159) 评论(0) 推荐(0) 编辑
摘要: http://ace.delos.com/usacoprob2?a=UkLvQCyPwKH&S=runround 这题给跪了。。。谁出的题?题意太模糊了。。。理解错了n次题意。。。。。 这是所谓的翻译(这个翻译还算不错): Runaround Numbers 循环数 循环数是那些不包括0 这个数字的没有重复数字的整数 (比如说, 81362) 并且同时具有一个有趣 的性质,... 阅读全文
posted @ 2012-10-31 18:05 ay27 阅读(367) 评论(0) 推荐(1) 编辑