知识点:
有向图,博弈论,动态规划。
题目大意:
Alice和Bob两人玩游戏。两人各有一个棋子,开始时在有向图中不同的点上。Bob先手,两人轮流移动棋子,每次只能将棋子移到相邻的点上(沿着图上的有向边),不断重复这样的过程,当那人无法移动时,他就输了(规则1)。
还有两条附加规则:任何时候,当两个棋子到达同一点时,Alice胜出(规则2)。如果游戏永远无法结束,Bob胜出(规则3)。
两人都遵循最优策略,轮流移动棋子,问最终谁会赢。图中没有自环和重边。
解题思路:
根据博弈论的性质,一个局面是必胜态的充...
分类:
移动开发 时间:
2015-01-24 15:56:27
阅读次数:
429
声明:这个系列博客是《数据结构与算法分析 C++描述》的读书笔记系列
参考博客:点击打开链接
本文是原书第二章内容,主要内容包括:算法的时间复杂度分析/算法的优化,分析的例子是很出名的最大子序列求和问题。
分为了四种方法来求解:穷举/穷举优化/递归(分治)/联机算法(动态规划), 算法复杂度为O(N^3)/O(N^2)/O(N*logN)/O(N). 思路都在具体代码里
---------...
分类:
编程语言 时间:
2015-01-24 14:31:54
阅读次数:
184
最长回文子串 相关资料:1、暴力法2、动态规划3、中心扩展4、Manacher法http://blog.csdn.net/ywhorizen/article/details/6629268http://blog.csdn.net/kangroger/article/details/37742639在...
分类:
其他好文 时间:
2015-01-24 00:29:45
阅读次数:
181
题目大意:给定一个字符串,求按照题中所给的压缩方式最短能压缩到多长
区间DP 令f[i][j]表示[i,j]区间内的字符串最短能压缩到多长
普通的区间DP:f[i][j]=min{f[i][k]+f[k+1][j]} (i
此外如果对这段字符串进行压缩,那么我们可以枚举循环节,用Hash来判断
如果k是一个循环节,那么有f[i][j]=min(f[i][j],f[i][i+k-1]+dig...
分类:
其他好文 时间:
2015-01-23 21:41:23
阅读次数:
183
题意:
给两列数,a1,a2..an和b1,b2..bn,可以交换ak和bk,求让两列数和的差的绝对值最小的最少交换次数。
分析:
动态规划,dp[x]表示a1,..am进过交换达到和为x的最小交换次数。dp[x+a]
代码:
//poj 1717
//sep9
#include
using namespace std;
const int maxM=12000;
int dp[max...
分类:
其他好文 时间:
2015-01-23 16:23:13
阅读次数:
143
原题地址方法I:动态规划len[i]表示从i开始到结束的最长合法括号串长度,则:如果s[i] == "(" 且 s[i+len[i+1]+1]==")",len[i] = len[i+1] + 2否则len[i] = 0方法II:辅助栈跟那个直方图求最大面积有点类似,用一个栈保存合法括号串的长度,显...
分类:
其他好文 时间:
2015-01-23 06:10:15
阅读次数:
138
题目大意:给定一个m*m的矩阵,上面有n个点,每个点上有一个正的收益,在两个点之间走的代价是距离的平方,求(1,1)到(m,m)的最大收益
直接排序并且DP的方法很容易想到 但是显然O(n^2)过不去
考虑平方的特性 由于A和B都大于等于0时(A+B)^2>=A^2+B^2 因此A->B->C一定比A->C更优
根据这个特性,我们可以将点按照纵坐标为第一键值,横坐标为第二键值排序
对于每一...
分类:
Web程序 时间:
2015-01-22 23:26:31
阅读次数:
594
Monkey and Banana
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 8122 Accepted Submission(s): 4194
Problem Description
A group of...
分类:
其他好文 时间:
2015-01-22 15:28:45
阅读次数:
144
DTW(Dynamic Time Warping,动态时间归整)算法,该算法基于动态规划(DP)的思想,解决了发音长短不一的模板匹配问题,是语音识别中出现较早、较为经典的一种算法。...
分类:
编程语言 时间:
2015-01-22 11:16:47
阅读次数:
355