自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 收藏
  • 关注

原创 最长公共子序列问题 动态规划

给定两个字符串s1s2...sn和t1t1...tn。求出这两个字符串最长的公共子序列输入:abcicbaabdkscab输出:abca定义dp[i][j]为s1…si和t1…tj对应的LCS的长度s1…si+1和t1…tj+1对应的公共子列有三种情况:当si+1= tj+1时,在s1…si和t1…tj

2016-10-08 17:00:16 293

原创 Count the string 动态规划

Problem DescriptionIt is well known that AekdyCoin is good at string problems as well as number theory problems. When given a string s, we can write down all the non-empty prefixes of this string. F

2016-10-08 16:59:12 364

原创 后序遍历

已知一棵二叉树的前序和中序遍历的结果,还原这棵二叉树并输出其后序遍历的结果 前序遍历的递归定义:‘根节点’+‘左子树的前序遍历’+‘右子树的前序遍历’中序遍历的递归定义:‘左子树的中序遍历’+‘根节点’+‘右子树的中序遍历’后序遍历的递归定义:‘左子树的后序遍历’+‘右子树的后序遍历’+‘根节点’定义post_order(str

2016-10-08 16:56:16 568

原创 动态规划中的经典问题

01背包:有N个重量和价值分别为wi,vi的物品。从这些物品中挑选出总重量不超过W的物品,求所有挑选方案中价值总和的最大值。第一步:合理抽象问题定义状态:以dp(i, x)表示已经决定了前i件物品是否选取,当前已经选取的物品的重量总和不超过x时,能够获取的最高的价值的和。dp(n, W)即为所求。我们先考虑dp(N, M)这个问题的最后一个决策——第N件物品是否

2016-10-08 16:55:00 998

原创 KMP算法

#include <iostream>#include <cstring>#include <cstdio>using namespace std;int main(){    char t[10050],s[1000007];    int c;scanf("%d",&c);    while(c--)

2016-10-08 16:53:03 281

原创 Trie树

输入输入的第一行为一个正整数n,表示词典的大小,其后n行,每一行一个单词(不保证是英文单词,也有可能是火星文单词哦),单词由不超过10个的小写英文字母组成,可能存在相同的单词,此时应将其视作不同的单词。接下来的一行为一个正整数m,表示小Hi询问的次数,其后m行,每一行一个字符串,该字符串由不超过10个的小写英文字母组成,表示小Hi的一个询问。 输出对于每一个询问,

2016-10-08 16:50:50 285

原创 最长回文子串

#include <cstdio>#include <cstring>char s[1000002 + 1200];int fast(char *p){    int ans = 1;    for (int i = 1; p[i]; i++)    {        int s = i, e = i, t;

2016-10-08 16:46:34 223

原创 POJ 3660 Cow Contest

N (1 ≤ N ≤ 100) cows, conveniently numbered 1..N, are participating in a programming contest. As we all know, some cows code better than others. Each cow has a certain constant skill rating that is un

2016-10-08 16:45:04 269

原创 任意两点的最短路问题 Floyd-Warshall算法

和 上两个算法的出发点一样。每个顶点都有可能使得另外两个顶点之间的路程变短。d[i][j] = min(d[i][j], d[i][k] + d[k][j];不断用上式递推就可以实现int d[MAX_V][MAX_V];int V:void warshall-floyd(){    for (int k = 0; k < V; k++)

2016-10-08 16:41:35 454

原创 单源最短路问题 Bellman-Ford算法

d[i] = min{d[j] + (从j到i的边的权值)| e = (j, i) ∈ E}设d[s] = 0, d[i] = INF, 不断使用这条递推关系式更新d的值。图中不存在负圈时这样的更新操作就是有限的,结束后的d就是所求的最短距离。struct edge{    int from, to, cost;};edge es[MAX_E];int

2016-10-08 16:36:53 373

原创 两个极其相似的算法Prim和Dijkstra

记从起点s出发到顶点i的最短距离为d[i]。则下述等式成立:d[i] = min{d[j] + (从j到i的边的权值)|e = (j,i)∈E}Dijkstra算法的基本思路:(1)找到最短距离已经确定的顶点,从它出发更新相邻顶点的最短距离。(2)此后不需要再关心1中的“最短距离已经确定的顶点”。 int cost[MAX_V][M

2016-10-08 16:35:10 784

原创 你为生存做些什么,我不关心

我想知道你的渴求,你是否敢于梦想去满足内心的渴望。你的年龄有多大,我不关心;我想知道,为了爱,为了梦,为了生气勃勃的奇遇,你是否愿意像傻瓜一样冒险。是什么磨圆了你的棱角,我不关心;我想知道,你是否触碰过自己受伤的心,是否因生活辜负过你而变得豁达,抑或因为害怕更多的痛苦而变得消沉和封闭。我想知道,你是否能痛苦着我的痛苦而不是避开它,躲着它。

2016-10-08 16:28:19 675

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除