USACO
文章平均质量分 76
sdj222555
这个作者很懒,什么都没留下…
展开
-
USACO Section 2.3 The Longest Prefix
原来觉得挺不容易做的一题,今天一看,如此之水。 用dp[i]表示前i个字符是否能由集合中的元素表示 初始dp[0] = 1 然后对每个位置i,枚举所有的字典中的元素,设该元素长度为j ,则把i-j 到i之间的字符串跟该元素比较,若能匹配并且dp[i - j]为1,则更新dp[i],不过貌似复杂度很高的样子 2000*200000,觉得应该过不掉,结果还是过了,网上大多数人也都是用这样的3重原创 2012-01-26 18:34:37 · 718 阅读 · 0 评论 -
USACO Section 2.1 The Castle (POJ 1164) floodfill
又是一道简单而又经典的搜索题,用floodfill一个房间一个房间的填充,每次都用标号标记一下,中间的围墙用二进制存储,这样搜索的时候就方便许多了。 最后再扫描一遍就能得出答案,注意扫描要从左下角开始,先往上扫描,再往右扫描。 /* ID: sdj22251 PROG: castle LANG: C++ */ #include #include #include #include原创 2011-08-20 10:51:27 · 1473 阅读 · 0 评论 -
USACO Section 1.4 Packing Rectangles (POJ 1169)搜索
这是一个很蛋疼的搜索题,虽然题中只给了5种矩形组合方式,但是搜索时的长和宽并不是唯一的,所以就产生了很多种组合方式.需要注意的是第4种和第3种图形实际上能规划成一种。 而产生这些组合最好用的应该就是DFS了,而我当时不想动脑子,使用的就是纯枚举,巨大的代码量,最终好歹也能过了。 /* ID: sdj22251 PROG: packrec LANG: C++ */ #include #inc原创 2011-08-20 10:37:41 · 1255 阅读 · 0 评论 -
USACO Section 1.4 Mother's Milk 搜索
这道题是一个让人做完觉得很爽的搜索题,可以用深搜也可以用宽搜。 相对来说,深搜的代码量稍微小一点。 搜索策略就是模拟倒来倒去的过程,并且出现重复的没有意义。 BFS版本: 我是人工写了个队列,这样比STL中的快一点 /* ID: sdj22251 PROG: calfflac LANG: C++ */ #include #include #include #include #inclu原创 2011-08-20 10:26:53 · 978 阅读 · 0 评论 -
[Usaco2007 Jan]Telephone Lines架设电话线
Farmer John打算将电话线引到自己的农场,但电信公司并不打算为他提供 免费服务。于是,FJ必须为此向电信公司支付一定的费用。 FJ的农场周围分布着N(1 <= N <= 1,000)根按1..N顺次编号的废弃的电话线 杆,任意两根电话线杆间都没有电话线相连。一共P(1 <= P <= 10,000)对电话 线杆间可以拉电话线,其余的那些由于隔得太远而无法被连接。 第i对电话线杆的两个端点分原创 2013-03-02 20:45:35 · 2249 阅读 · 0 评论 -
[Usaco2006 Nov]Corn Fields牧场的安排 壮压DP
看到第一眼就发觉是壮压DP 然后就三进制枚举子集吧。 这题真是壮压入门好题。。。 对于dp[i][j] 表示第i行,j状态下前i行的分配方案数。 那么dp[i][j]肯定是从i-1行转过来的 那么由于不能挨着放,那么我们肯定是枚举i - 1行状态时不能包含j的任何一位。 那么只要令k = ((1 是这样枚举k的子集 int sub = k; do { sub原创 2013-10-12 12:08:14 · 2080 阅读 · 0 评论 -
[Usaco2010 Mar]balloc 农场分配
Farmer John最近新建立了一个农场,并且正在接受奶牛的畜栏分配请求,有些 畜栏会看到农场美妙的风景。:) 农场由N (1 (1 这样的话奶牛可以在这段牛棚里面转悠。(当然,这段畜栏必须要有足够的空间) 给出M (1 具体做法就是 对请求,按照r关键字递增排序,然后r相同就按照l递减排序。 总的来讲就是优先截止早的区间,相同的话就优先区间长度原创 2013-10-24 21:53:43 · 2028 阅读 · 0 评论