摘要:
题意:n×m的棋盘上,0表示空格,可自由通过,-1表示宝石,正数k表示有一个值为k的石头,不能通过。两人轮流玩游戏,每次可以将一个从棋盘外围有路径可以到达的石头的值减1,若减为0则变为空格,可自由通过。问最后谁能拿到宝石。分析:一开始以为是博弈,后来想想,发现如果甲将宝石外围的某石头(和宝石有路径相连的石头)变成了空格,则乙就能拿到宝石。所以他们只会选择和宝石不相通的石头,或者宝石外围的值大于1的石头。于是先广搜一次,把宝石外围的石头标记一下。再从棋盘外围广搜,遇到石头,若是宝石外围的石头,则ans += val-1,val为石头的值。若是其它石头,ans += val。为了方便,我 阅读全文
posted @ 2013-05-10 19:02
心向往之
阅读(202)
评论(0)
推荐(0)
摘要:
题意:m×n的迷宫, ‘S’ 起点 ‘D' 终点 '.' 可以走 ‘X’ 墙 ‘1’~‘9’炸弹的数量,往上下左右走一步花费1秒钟,炸一面墙多花1秒钟,问最少多长时间能走到终点。分析:迷宫最大为8×8,可以用一个long long表示状态,走过的地方为1,没走过的为0. 然后广搜...判重用的map[64],map[i][state]表示在第i个格子,状态为state所用的最少时间。如果只用一个map 同时存储第 i 个格子和状态state,会超时。另外state第50位置1不能用state |= 1<<50, 1默认int型,左移50位 阅读全文
posted @ 2013-05-10 15:58
心向往之
阅读(152)
评论(0)
推荐(0)

浙公网安备 33010602011771号