摘要: 题目不光要求要到达终点而且要求所走的步数为5的倍数,每个时刻有三个选择,前进,左转弯,右转弯。所以在vis数组中新增加两个维度即可,vis[x][y][dir][color]表示在(x, y)格子方向朝dir与地面接触的扇形的颜色为color,这个状态是否到达过。 1 #include 2 #in... 阅读全文
posted @ 2015-04-21 19:24 AOQNRMGYXLMV 阅读(145) 评论(0) 推荐(0) 编辑
摘要: 也是一个走迷宫的问题,不过又有了点变化。这里迷宫里有若干把火,而且火每秒也是向四个方向蔓延的。问人是否能走出迷宫。我用了两遍BFS,第一遍把所有着火的格子加入队列,然后计算每个格子着火的时间。第二遍便是走迷宫,只有当这个格子不是墙,而且当前时间在这个格子着火之前才能拓展。当然,并不是所有的空格都一定... 阅读全文
posted @ 2015-04-21 14:15 AOQNRMGYXLMV 阅读(182) 评论(0) 推荐(0) 编辑
摘要: 博弈的题目,打表找规律还是相当有用的一个技巧。这个游戏在原始的Nim游戏基础上又新加了一个操作,就是游戏者可以将一堆分成两堆。这个SG函数值是多少并不明显,还是用记忆化搜索的方式打个表,规律就相当显然了。 1 #include 2 #include 3 4 const int maxn = 1... 阅读全文
posted @ 2015-04-21 12:51 AOQNRMGYXLMV 阅读(235) 评论(0) 推荐(0) 编辑
摘要: 姑且把它归类为一道博弈吧,毕竟这也是在找必胜方案。十分有意思的一道题目,设计一种方案让你支持的1队获胜。题目给出了两个很重要的条件:1队能打败至少一半的队伍对于1队不能打败的黑队,一定存在一个1队能打败的灰队,使得这支灰队能够打败黑队。也就是说1队可以通过灰队间接打败黑队一共有2n支队伍,每轮比赛会... 阅读全文
posted @ 2015-04-21 11:32 AOQNRMGYXLMV 阅读(365) 评论(0) 推荐(0) 编辑
摘要: 看来对height数组进行分段确实是个比较常用的技巧。题意:一个主题是可以变调的,也就是如果这个主题所有数字加上或者减少相同的数值,可以看做是相同的主题。一个主题在原串中至少要出现两次,而且一定要有不相交的两次。因为说了可以变调,所以我们处理每相邻两项的差值,这样就得到n-1个数字。然后找最大的不相... 阅读全文
posted @ 2015-04-21 10:25 AOQNRMGYXLMV 阅读(145) 评论(0) 推荐(0) 编辑