最长子序列
Matrix1254
爱代码,爱加班,爱咖啡可乐
爱挑战,爱钻研,爱打游戏
爱晚起,也爱工作到深夜。
我擅长技术,崇尚简单和懒惰
我神秘而孤僻,沉默而爱憎分明
我行我素,我是程序员
展开
-
pat 1007 Maximum Subsequence Sum
//Maximum Subsequence Sum #include #define MAX_LENGTH 15 int a[MAX_LENGTH],end[MAX_LENGTH],c[MAX_LENGTH];//c int main() { int n,i,j,sum = 0; int max_begin,max,flag_positive = 0; scanf("原创 2012-11-21 10:35:03 · 567 阅读 · 0 评论 -
hdu 1160 FatMouse's Speed
解题思路:按某一维排序,则二维简化为一维。先按体重从小到大排序,再按速度从大到小排序,找出速度最长递减子序列。建一个结构体:struct mouse,其中weight,speed是体重和速度,num是其输入的顺序,pre是记录路径上的前一点的下标。状态转移方程为:dp[i]=dp[j]+1; 如果 mice[i].speedmice[j].weight ,并且dp[j]+1>dp[i]。 max{原创 2012-12-13 23:28:56 · 423 阅读 · 0 评论 -
hdu 1008 Common Subsequence
按题意,求两个字符串的最长公共子序列。用a[m ], b[n]保存两个字符串,c[k]为它们的公共子序列。用f[i][j] 表示a[i], b[j] 两个字符串的公共子序列的最大长度,如果a[i]=b[j]=c[k],即a串b串的最后一个字符相同,则f[i][j] = f[i-1][j-1] + 1; 如果a[i]!=b[j], a[i] != c[k] 或者a[i]!=b[j], b[j]!=c原创 2012-12-14 17:46:36 · 438 阅读 · 0 评论 -
pat 1007 Maximum Subsequence Sum
题目很简单,就是求最大连续子串和,和对应的元素。我看成求对应的元素下标,WA了N多次,太无语了。要认真看输入和输出要求啊。一次遍历即可(有一个小点未过,不知为何)。若用两次遍历,纯暴力,就全过了。 AC代码: #include using namespace std; const int NUM=10005; const int INF=-10000000; int a[NUM],su原创 2013-02-26 23:41:15 · 766 阅读 · 0 评论