
动态规划
zfldongcidaci
这个作者很懒,什么都没留下…
展开
-
杭电oj1231(动态规划最大连续子序列之和)
给定K个整数的序列{ N1, N2, …, NK },其任意连续子序列可表示为{ Ni, Ni+1, …, Nj },其中 1 <= i <= j <= K。最大连续子序列是所有连续子序列中元素和最大的一个, 例如给定序列{ -2, 11, -4, 13, -5, -2 },其最大连续子序列为{ 11, -4, 13 },最大和 为20。 在今年的数据结构考卷中,要求原创 2017-05-03 19:06:19 · 424 阅读 · 0 评论 -
uva116-Unidirectional TSP (动态规划,多段图)
题目:给你一个n*m的数字表格,找到一条从左到右的路径,使得上面的数字和最小(每次可以从(i,j),走到(i,j+1),(i+1,j),(i-1,j)可以越界。)–紫书p270; 分析: 每一列就是一个阶段,每个阶段三种决策:直行、右上、右下。 代码如下:#include <iostream>#include<algorithm>#include<cstring>using namesp原创 2017-06-04 15:26:38 · 459 阅读 · 0 评论 -
B - Working out CodeForces - 429B (dp)
题意: 给出n*m个格子,每个格子都有一定的分数,走过这个格子可以获得分数。 A 从(1,1)沿 下 或 右 走到(n,m) B 从(n,1)沿 上 或 右 走到(1,m) 两人路径有且只能有一个格子重合(重合格子的分数不算), 求两人分数之和的最大值. 若要保持只有一个格子重合 1) A向右走,相遇后继续向右走,而B向上走,相遇后继续向上走 2) A向下走,相遇后继续向下走,而转载 2017-07-22 11:49:04 · 261 阅读 · 0 评论 -
HDU - 4118 ——Holiday's Accommodation (树形dp)
题意: 有n个城市,每个城市里有一个人,互相到各自的城市里去旅游,求旅游路线最大总长度。即给n个点,每个点有一个人,有n-1条有权值的边,求所有人不在原来位置所移动的距离的和最大值。 分析:要求最大值,就让 左边的点跑右边去,右边的点跑左面去。所以每条边,都会被走min{left[num], sum-left[nu,]}*2次 代码如下:#include<iostream>#include<原创 2017-07-23 20:51:29 · 350 阅读 · 0 评论 -
UVA - 1220 ( Party at Hali-Bula)(树形dp—树的最大独立集+判断唯一性)
题意: 公司里有n(n<=200)个人形成一个树状结构, 要求尽量选多的人,但不能同时选择一个人和他的直属上司,文最多能选多少人,以及是否方案唯一。 分析: dp[i]表示以i为根节点的最大独立集大小。 节点i有两种决策:选和不选,如果选i,则不能选i的所有儿子,如果不选i,则问题转化为求出i的所有儿子的dp值之和。 即: dp[i][0]=sum{max(dp[v][0],dp[v][原创 2017-08-17 10:45:27 · 407 阅读 · 0 评论 -
Robberies(HDU - 2955)(01背包问题)
分析:01背包问题,但是该题很容易会用概率作为背包容量,这是不对的,概率是浮点数,则需扩大背包容量,则背包容量是钱数,银行总钱数就是背包最大容量,dp[i] 代表钱数为i时的成功逃跑概率(即不被抓到),成功逃跑就是没有被任何银行抓到,若被一个银行抓到就不算成功逃跑,则成功逃跑概率p = (1-p1)(1-p2)(1-p3) ,p1,p2,p3是每个银行被抓到的概率,最后按照钱数从大到小遍历一遍,找到原创 2017-11-06 17:36:05 · 323 阅读 · 0 评论