摘要: http://ace.delos.com/usacoprob2?a=GOVL6gcgbQL&S=packrec 嗯,一道无比恶心的题。。。。 观察好这几个图形,基本上就要靠这几个图形做题了。这题恶心的地方除了这几个图形,还有就是暴搜的方法,要全排列生成4个矩形的排列,然后才能按照上面几个图形来划分cases。注意了,第四个和第五个图形是一样的,只不过把中间的一列和左边的一列交换了位置。还有... 阅读全文
posted @ 2012-10-06 21:06 ay27 阅读(158) 评论(0) 推荐(1) 编辑
摘要: http://ace.delos.com/usacoprob2?a=tDp1mPxueqJ&S=crypt1 显而易见,两种解法,一种是直接枚举乘数,共有900*90=81000种可能,然后拆数,判断;另一种是枚举乘数的每一位,边枚举边判断,最坏的情况是9^5=59049种可能,基本上没有超时的可能。。。。 我的是枚举乘数的每一位。 a3 a2 a1 (a... 阅读全文
posted @ 2012-10-06 18:59 ay27 阅读(126) 评论(0) 推荐(0) 编辑
摘要: http://ace.delos.com/usacoprob2?a=I1dC0kaErvZ&S=calfflac 求文章的最大回文字串,暴搜就可以了。可以算一下时间复杂度,O()=20000*2000=40000000,四千万而已,绝对不超时,当然前提是不用string,若用string,可能会超时,这个我没有试过了。 主要是枚举回文串的中值,然后用两个指针向中值的两边尽可能扩展,然后记录最大... 阅读全文
posted @ 2012-10-06 18:10 ay27 阅读(169) 评论(0) 推荐(0) 编辑
摘要: http://ace.delos.com/usacoprob2?a=aGfy6bAUEQK&S=milk2这题做法比较多了,不过也离不开排序。是排开始的时间?排结束的时间?我的做法是,两个一起排!转化为类似于括号的配对问题,不过有些细节要注意好了。#include <iostream>#include <string.h>#include <cstdio>#include <algorithm>using namespace std;struct node{ int data; //时间点 bool flag; //标记开始时间和结束时间 阅读全文
posted @ 2012-10-06 09:56 ay27 阅读(114) 评论(0) 推荐(1) 编辑
摘要: http://ace.delos.com/usacoprob2?a=aGfy6bAUEQK&S=barn1额。。。比较水的题,估计没有比我的更短的程序了。。。。先用一块木板把全部牛棚盖上,再删去(n-1)个空位,剩下的就是结果了。删去(n-1)个空位,剩下n块牛棚,刚好符合要求,而删去的空位要最大就行了#include <iostream>#include <cstdio>#include <string.h>#include <algorithm>using namespace std;bool compare(int a,int b) 阅读全文
posted @ 2012-10-06 09:33 ay27 阅读(144) 评论(0) 推荐(1) 编辑