随笔分类 -  poj

摘要:题目链接:http://poj.org/problem?id=3581 题目大意:给一个数列,要求将其分成三段,每段进行翻转后形成后合并成新数列,求按字典顺序最小的新数列。 思路: 注意到题目中数列a0,a2,a3...an-1, a0是最大的,因此将原数列翻转后an-1,an-2,...,a1,a 阅读全文
posted @ 2016-09-08 17:36 Keep_Going 阅读(226) 评论(0) 推荐(0)
摘要:代码如下: bfs: dbfs: 1 #include <iostream> 2 #include <map> 3 #include <algorithm> 4 #include <string> 5 #include <queue> 6 using namespace std; 7 typedef 阅读全文
posted @ 2016-08-20 12:04 Keep_Going 阅读(1152) 评论(0) 推荐(0)
摘要:原题网址:http://bailian.openjudge.cn/practice/1729 思路: 方法1: 用点对表示两个人的状态,放在队列中(队列也可以用优先队列),当到达一个点对的路径上的最近距离大于先前求得的最近距离则进行更新。 注意:可能两人的最近距离是0,在更新的时候要注意。 方法2: 阅读全文
posted @ 2016-08-19 23:22 Keep_Going 阅读(878) 评论(0) 推荐(0)
摘要:原题网址:http://bailian.openjudge.cn/practice/4105/ 思路: 每个位置包括的状态:所在的位置,获得的宝石。 广搜:用队列存储达到某个位置时,获得的宝石完全相同的最少用时。 传送门另外考虑即可。 详细代码: 阅读全文
posted @ 2016-08-17 22:42 Keep_Going 阅读(1068) 评论(0) 推荐(0)
摘要:思路:记输、平局、赢得状态分别为-1,0,1. 则有, 先手想要达到某种状态t,如果先手走一步棋子后对手无论怎么走都会达到状态1-t。 后手无论怎么走都会打到状态t,如果下一步无论怎么走先手都会达到状态1-t。 阅读全文
posted @ 2016-08-03 20:28 Keep_Going 阅读(136) 评论(0) 推荐(0)
摘要:/*2016.01.22 *poj3769DNArepair.cpp * ac自动机+dp, 多模式匹配 * 考虑存在这样的修改满足题意,则沿着修改后的字符串进行状态转移每一步都 * 将到达安全的状态(不含病毒串为子串),满足最优子结构。假设: * c 为从状态from到to的字符,dp[i][to 阅读全文
posted @ 2016-01-24 18:48 Keep_Going 阅读(204) 评论(0) 推荐(0)