题意:求LCS
Sol:经典的 LCS。
if ( i==0 || j==0 ) dp [ i , j ] = 0 ;
else if ( X[ i ] == Y [ j ] ) dp [ i-1 , j-1 ] + 1;
else dp [ i, j ] = max ( dp[ i - 1 , j ] , dp [ i , j-1 ] )
#include
#i...
分类:
其他好文 时间:
2014-10-18 21:01:51
阅读次数:
203
题目:HDU 1503
思路:先求出最长公共子序列,记录路径。后进行拼接。
代码#include
#include
#include
#include
#include
#include
#define mod 1000000007
using namespace std;
typedef long long LL;
int dp[110][120];
char x[100],...
分类:
其他好文 时间:
2014-10-15 00:31:08
阅读次数:
208
鏈接: http://poj.org/problem?id=1458
Description:
A subsequence of a given sequence is the given sequence with some elements (possible none) left out. Given a sequence X = another sequence Z =...
分类:
其他好文 时间:
2014-10-13 16:43:09
阅读次数:
257
Common Subsequence
Time Limit: 1000MS
Memory Limit: 10000K
Total Submissions: 39009
Accepted: 15713
Description
A subsequence of a given sequence is the given sequenc...
分类:
其他好文 时间:
2014-10-13 15:02:29
阅读次数:
213
题目大意:给定n个数和两个长度为n*5的序列,每个数恰好出现5次,求两个序列的LCS
n
所以我们考虑LCS的一些性质
LCS的决策+1的条件是a[i]==b[j] 于是我们记录a序列中每个数的5个位置
扫一下b[i] 对于每个b[i]找到b[i]在a中的5个位置 这5个位置的每个f[pos]值都可以被b[i]更新 于是找到f[1]到f[pos-1]的最大值+1 更新f[pos]即可
这...
分类:
其他好文 时间:
2014-10-10 12:52:34
阅读次数:
172
初看好简单 一开始调试着一直re 后来也不知道怎么就对了 但是还有一些bug存在 ,
这道题的打印路径和light oj An Easy LCS(ps:点击打开链接)一样
但是只改一下会Tle 因为(1000*1000*1000)好大
但是把存储的字符串改为string 定义的就过了
但是还是有一点有点难受(下面会说出)
我也是醉了
#include
#include...
分类:
其他好文 时间:
2014-10-07 02:36:42
阅读次数:
405
准确来说,动态规划是一种思想,而不是一种算法。算导里将它归结为——高级程序设计技巧。 在线性结构上进行状态转移DP,统称线性DP。 线性DP最常见的有: 子集和问题,LIS问题,LCS问题。 拓展之后有:子段和问题,杂类问题。1. 子集和问题和硬币计数问题子集和问题的一个实例: 〈S,t〉。其中,....
分类:
其他好文 时间:
2014-10-02 21:24:53
阅读次数:
264
题目:acdream 1216 Beautiful
People
题意:每个人有两个值,能力值和潜力值,然后要求一个人的这两个值都严格大于第二个人的时候,这两个人才能呆在一块儿,给出许多人的值,求最多有多少个人?
分析:很容易想到是个单调非增模型,如果用O(n*n)的写法的话,会超时!
那么我们就要用二分优化来找。
我们可以先按第一个值 x 从小到大排序,然后按第二个值...
分类:
其他好文 时间:
2014-10-02 10:55:12
阅读次数:
242
题目:很多人在一起吃饭,有两组单支的筷子,定义badness为一对筷子长度差的平方,求最小的badness和。
分析:dp,最大公共子序列类似物。
这里利用数学关系找到一个结论:
a
所以最优解一定不会交叉,然后先用元素少的串,求长串的LCS的即可;
权值计算用长度差的平方,而不是...
分类:
其他好文 时间:
2014-09-30 19:15:19
阅读次数:
208
最长升序子序列是最长公共子序列的变形。
只要将字符串升序排序后与原字符串求最长公共子序列即可。
以下提供一个工具类可以传入任何形式的数组。(添加新类型的数组时构造方法要自己加)。
package com.leejuen.string;
import java.lang.reflect.Array;
import java.util.Arrays;
public class LCS
{
...
分类:
编程语言 时间:
2014-09-28 16:53:13
阅读次数:
138