51nod
银之夏雪
这个作者很懒,什么都没留下…
展开
-
51nod1154回文串划分
这道题目刚开始想错了,本来打算每次找到最大的回文串,结果自己给自己驳倒了,比如dabbbbbdb,最长回文子串是bbbbb,结果四个落单,一共是五个,而如果把最后的bdb放在一组,就一目了然了,4个,所以这种是不行的,到底该如何做呢 dp[j]代表了读到第j个字符的时候出现的回文串最小有多少个 k#include <iostream>using namespace std;const int原创 2016-05-10 21:53:59 · 445 阅读 · 0 评论 -
51nod多重背包问题
多重背包其实就是把01背包和完全背包写成两个函数然后调用一下就行了,当给的空间大于物品个数*它的容量的时候,那么对于这个物品来说相当于完全背包,反之则为01背包#include <iostream>using namespace std;int v[105],price[105],num[105];long long dp[50005];void Zero_Pack(int value,int原创 2016-04-20 16:39:04 · 563 阅读 · 0 评论 -
51nod1006最长上升子序列(求路径)
这道题目以前完全用char写,现在在尝试用string去写,感觉还不错,思路如下: 我们用Ax表示序列A的连续前x项构成的子序列,即Ax= a1,a2,……ax, By= b1,b2,……by, 我们用LCS(x, y)表示它们的最长公共子序列长度,那原问题等价于求LCS(m,n)。为了方便我们用L(x, y)表示Ax和By的一个最长公共子序列。让我们来看看如何求LCS(x, y)。我们令x表示子原创 2016-05-02 17:23:54 · 786 阅读 · 0 评论 -
51nod1083矩阵取数问题
这道题目是51nod教程的第一题,是一道非常简单的题目,之前做过了,再来刷一遍,因为是只能往下或者往右,所以每个点的值为左或上的最大值加自己#include <iostream>#include <string.h>using namespace std;int dp[505][505],a[505][505];int n;int main(){ while(cin>>n)原创 2016-04-24 20:55:02 · 753 阅读 · 0 评论