2013年7月3日

Human Gene Functions(最长公共子序列变形题)

摘要: 【题目】:问题B:HumanGeneFunctions【来源】:点击打开链接【解法】:这个题是最长公共子序列的变形题。1.确定状态:状态表示显然是用二维数组表示DP[i][j]当前i和j对应下最大的权值2.状态方程:写状态方程根据状态转移的情况不同,可分为从当前状态推下一个状态,还有一种是从后面个状态推前面的状态,具体分情况而定(这个地方还不是理解的很透,具体的刘汝佳的黑书上有,以后看了再补充进来)这题是由后面的一个状态反推出前一个所有可能状态,转移方程:DP[i][j]=max{DP[s1[i-1]][s2[j]]+match[s1[i]][‘-’],DP[s1[i]][s2[j-1]]+m 阅读全文

posted @ 2013-07-03 21:54 Gddxz 阅读(144) 评论(0) 推荐(0) 编辑

7.3.(小学期第三套题)解题回顾与心得体会

摘要: 今天题目链接:点击打开链接1.刚开始昨天已经总结过要沉下心来,但今天还是险些栽在另一点上,那就是不要时时刻刻和拿别人比:因为那样打乱了自己的节奏,把自己的注意力转移在别人身上,不能集中精力去做自己能做出来的题。 另外,我想说,我不是你,也不是他,只有我对于我自己是最真实的,我的进步来源于对自我的超越,我永远只有和自己比才叫进步,排名什么的只会扼杀人的淡定的心灵。2.我的心态随着AC数目的增多后的变化历程是:初看B题,觉得好动态,好复杂,好高深,等AC完其他的题后回来再一看数据样例,就项这题一定可以做,结果一定是可以唯一确定的,结果一做发现是本次最水的水题。以前我一直不怎么相信自信的力量,只相信 阅读全文

posted @ 2013-07-03 20:31 Gddxz 阅读(161) 评论(0) 推荐(0) 编辑

状态压缩入门 摆放车子

摘要: 声明:此为转载,原文链接:BUCT OJ网友chdh14b 另外此博客有详细完整代码:http://blog.csdn.net/math_coder/article/details/9671581大家好~我和大家分享一下我对状态压缩类的动态规划题的一些看法。顾名思义,状态压缩类的动态规划的本质是动态规划,所以要处理好状态压缩问题首先要把握好动态规划的解题思路。首先,来回顾一下动态规划算法的设计:(1)首先把握问题的解是否可以分解的,可分解则考虑是否可用动态规划算法。(2)描述最优解的结构。(3)递归定义最优解的值。(4)自底向上的方式计算最优解的值。(5)有计算出的结果构造出一个最优解。然后, 阅读全文

posted @ 2013-07-03 11:02 Gddxz 阅读(271) 评论(0) 推荐(0) 编辑

优先队列用法

摘要: 声明此为转载,原文链接:ski C++之梦在优先队列中,优先级高的元素先出队列。标准库默认使用元素类型的qi;通过,greater>qi2;其中第二个参数为容器类型。第二个参数为比较函数。故示例2中输出结果为:2 3 5 6 9第三种方法:自定义优先级。structnode{friendbooloperator(noden1,noden2){returnn1.priority>n2.priority;}intpriority;intvalue;};则会编译不过(G++编译器)因为标准库默认使用元素类型的操作符并无直接联系,故会编译不过。//代码清单#include#include# 阅读全文

posted @ 2013-07-03 10:56 Gddxz 阅读(115) 评论(0) 推荐(0) 编辑

合唱队形(LIS最长递增子序列) 解题过程

摘要: 【题目链接】:点击打开链接【解题思路】:1.学会把问题分解成简单的子问题求解:一开始想起来把这个问题分解成两个过程求解,求上升最长子序列和下降最长子序列,后来后者可以转化成前者来求 状态dp[i]表示结尾为num[i]的子序列的最大长度,状态方程为: dp[i]=1; if(num[i]>num[k]) (k=1~i-1) dp[i]=max(dp[i],dp[k]+1) 由此可见,动态规划状态的结果也不一定就是所求的最优值,只要它和最优值相关,由他可求出最优值即可。2.动态规划有时也是暴力的动态规划:即基于少量穷举的动态规划,穷举1~n分别作为最大值点的情况3.编程收获与心得:这... 阅读全文

posted @ 2013-07-03 00:37 Gddxz 阅读(170) 评论(0) 推荐(0) 编辑

导航