2012年4月13日

coj 1224 ACM小组的古怪象棋

摘要: 这道题的变态之处在于有下述的“蹩蹄”的情况出现,据不完全统计,24次非WA提交中,有15次左右是我的,多亏了LJ大牛及时指出这道题的陷阱。BFS或者DP,要注意会出现“蹩蹄”的情况(题目提都没提)。DP相对容易一些(记忆化搜索),要注意的一点是可能出现马永远无法到达将的位置,这时可能会出现两个状态相互调用以致出现死循环,解决的办法是:初始化时所有状态都定义为-1(将的位置定义为0,因为不许要移动),在求当前状态时,如果没有搜索过,首先将该状态置为+INF,这样及时无法搜索道,当结束时,依然为INF……这样对吗?经过验证,发现只要棋盘的行和列都大于等于4,那么马可以从任意位置出发经若干步到达任意 阅读全文

posted @ 2012-04-13 18:00 getgoing 阅读(463) 评论(0) 推荐(0) 编辑

UVa 10404 - Bachet's Game

摘要: 乍一看是博弈,也是看了大牛们的思路才会的。。在确定当前状态时,前面所有的状态都确定了,如果能通过移动一步到达核结点,那么当前局势必胜。 1 # include <stdio.h> 2 # include <memory.h> 3 # include <stdlib.h> 4 5 # define INDEX(i) ((i)>>3) 6 # define OFFSET(i) ((i)&0x7) 7 8 # define get_bit(i) ((f[INDEX(i)]>>OFFSET(i)) & 0x1) 9 # def 阅读全文

posted @ 2012-04-13 14:21 getgoing 阅读(324) 评论(0) 推荐(0) 编辑

UVa 620 - Cellular Structure

摘要: 这道题重点在于理解题意,不是动态规划?(If an organism were in two stages of growth at the same time the first option from the list above should be given as an answer.):初始阶段微生物为A,有两种生长方式,一种是右边扩展“AB”,一种是最前面扩展“A”而最后面扩展“B”3;所以合法的微生物的长度都是奇数,然后再判断是否是以上三种阶段即可;参考了网上的分析。 1 # include <stdio.h> 2 # include <string.h> 阅读全文

posted @ 2012-04-13 14:01 getgoing 阅读(265) 评论(0) 推荐(0) 编辑

导航