动态规划
文章平均质量分 77
相思作坊半世离殇
多刷题。
展开
-
Vacations(Codeforces Round #363 (Div1 A)
http://codeforces.com/problemset/problem/698/AA. Vacationstime limit per test1 secondmemory limit per test256 megabytesinputstandard inputoutputstandard output原创 2016-07-22 23:12:38 · 281 阅读 · 0 评论 -
Random Walk 挑战程序设计竞赛 期望值和方程组
题目来自《挑战程序设计竞赛》4.1更加复杂的数学问题这题其实就是ZJUT 1423,然而ZJUT似乎挂了。。。1.题目详情有一个N*M的格子,从(0,0)出发,每一步朝着上下左右四个格子中可以移动的格子等概率的移动。另外有些格子中有石头,因此无法移至这些格子。求第一次到达(N-1,M-1)格子的期望步数。题目假定至少存在一条从(0,0)出发到格子(N-1,M-1)的路径限制条件原创 2016-08-18 07:55:39 · 903 阅读 · 0 评论 -
hdu1024 Max Sum Plus Plus
New~ 欢迎参加2016多校联合训练的同学们~ Max Sum Plus PlusTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 25587 Accepted Submission(s): 8858原创 2016-08-13 09:57:04 · 384 阅读 · 0 评论 -
poj2342 Anniversary party
Language:DefaultAnniversary partyTime Limit: 1000MS Memory Limit: 65536KTotal Submissions: 6480 Accepted: 3734DescriptionThere is going to be a party to cel原创 2016-07-21 19:25:22 · 186 阅读 · 0 评论 -
Hacker's Crackdown(UVa 11825)状态压缩dp+数学模型
来自《算法竞赛入门经典训练指南》1.题目原文https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=2925假如你是一个黑客,侵入了n台计算机(编号为0,1,2,……n-1)的网络。一共有n种服务,每台计算机都运行着这种服务。对于每台计算机,你都可原创 2016-10-14 16:34:45 · 349 阅读 · 0 评论 -
石子归并问题(区间dp)
区间dp,顾名思义就是在区间上进行的一系列动态规划。1.51nod1021石子归并问题http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1021N堆石子摆成一条线。现要将石子有次序地合并成一堆。规定每次只能选相邻的2堆石子合并成新的一堆,并将新的一堆石子数记为该次合并的代价。计算将N堆石子合并成一原创 2016-10-19 00:41:14 · 1049 阅读 · 0 评论 -
多重背包问题
来自《挑战程序设计竞赛》1.题目原文有n中物品,它们的重量和价值分别是w[i]和v[i]。现在要从中选出一些物品使得总重量不超过W,并且价值的总和最大。不过要求第i中物品最多可以选m[i]个。数据范围12.解题思路1这是一个有个数限制的问题,对于每个物品至多选一个或者可以选任意个的问题我们已经在O(nW)时间内求解。如果使用同样的方法解答本题,则状态转移方程为:dp[i原创 2016-10-07 00:55:40 · 277 阅读 · 0 评论 -
UVA 116 Unidirectional TSP 动态规划+类似数塔
题目链接题目原文BackgroundProblems that require minimum paths through some domain appear in many different areas of computer science. For example, one of the constraints in VLSI routing problems i原创 2016-08-18 00:20:22 · 784 阅读 · 0 评论 -
Coins(poj1742)动态规划+挑战多重部分和问题
Language:DefaultCoinsTime Limit: 3000MS Memory Limit: 30000KTotal Submissions: 34343 Accepted: 11661DescriptionPeople in Silverland use coins.They have coin原创 2016-07-19 10:26:13 · 791 阅读 · 0 评论 -
Arrange the Bulls(poj2441)状态压缩dp
Arrange the BullsTime Limit: 4000MS Memory Limit: 65536KTotal Submissions: 4317 Accepted: 1646DescriptionFarmer Johnson's Bulls love playing basketball very much.原创 2016-07-31 18:07:24 · 327 阅读 · 0 评论 -
Corn Fields(poj3254)状态压缩dp
Corn FieldsTime Limit: 2000MS Memory Limit: 65536KTotal Submissions: 12738 Accepted: 6681DescriptionFarmer John has purchased a lush new rectangular pasture compo原创 2016-07-31 09:53:59 · 313 阅读 · 0 评论 -
poj1769 Minimizing maximizer线段树优化dp
题目抽象出数学模型就是说,最少需要多少个区间能完全覆盖区间[1,n]。原创 2016-08-02 23:11:49 · 459 阅读 · 0 评论 -
Codeforces 148D Bag of mice 简单概率dp
D. Bag of micetime limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputThe dragon and the princess are arguing abou原创 2016-08-16 22:54:47 · 274 阅读 · 0 评论 -
最长上升子序列问题
有一个长度为n的数列a[0],a[1],……,a[n-1]。求出这个序列中最长的上升子序列的长度。上升子序列指的是对于任意的i这个问题被称为最长上升子序列问题(LIS,Longest Increasing Subsequence)的著名问题。这一问题可以通过dp很有效率的求解。首先来建立地推关系,定义dp[i]是以a[i]为结尾的最长上升子序列的长度,以a[i]结尾的上升子序列是①只包含a[i原创 2016-07-25 23:27:43 · 364 阅读 · 0 评论 -
数塔
数塔是动态规划(DP)中的经典例子,大致意思就是在如下图所示的数塔中,从顶层走到底层,每次只能走相邻的结点,所经过的结点的数之和最大是多少?hdu2084数塔用一个二维数组a[105][105],其中a[i][j]表示数塔中第i行第j列的数;二维数组dp[105][105],其中dp[i][j]表示从(i,j)这一结点出发走到底层,所经过结点的数之和的最大值,显然有dp[n][j]原创 2016-07-18 12:25:45 · 790 阅读 · 0 评论 -
最大连续子序和
Problem DescriptionGiven a sequence a[1],a[2],a[3]......a[n], your job is to calculate the max sum of a sub-sequence. For example, given (6,-1,5,4,-7), the max sum in this sequence is 6 + (-1) + 5原创 2016-07-18 13:11:19 · 255 阅读 · 0 评论 -
01背包问题
背包问题是动态规划中的经典问题,而01背包问题又是背包问题的著名问题,总之初学动态规划,这个必须要熟练掌握。01背包问题的大致意思:有n个重量、价值分别为w[i]、v[i]的物品,从这些物品中挑选出总质量不超过W的物品,求所有挑选方案中价值总和的最大值。1.最朴素的办法,针对每个物品是否放入背包进行搜索试试看,代码如下:int n;int w[105];int v[105];//原创 2016-07-18 19:33:45 · 405 阅读 · 0 评论 -
sumsets(poj2229)
Language:DefaultSumsetsTime Limit: 2000MS Memory Limit: 200000KTotal Submissions: 16489 Accepted: 6516DescriptionFarmer John commanded his cows to search fo原创 2016-07-18 22:37:42 · 360 阅读 · 0 评论 -
完全背包问题
这个经典问题的大致意思是:有n种物品重量和价值分别为w[i]、v[i]的物品,从这些物品中挑选出总重量不超过W的物品,求出挑选物品价值总和的最大值。每种物品可以挑选任意多件。利用二维数组dp,其中dp[i+1][j]表示从前i种物品中挑选出总重量不超过j的物品的价值总和的最大值。显然有dp[0][j]=0;dp[i+1][j]=max(dp[i][j-k*w[i]]+k*v[i])原创 2016-07-18 21:49:10 · 244 阅读 · 0 评论 -
多重部分和问题
有n种不同大小的数字a[i],每种各m[i]个。判断是否可以从这些数字中选出若干使它们的和恰好为K。限制条件:1这个问题可以用DP求解,如何定义递推式影响最后的时间复杂度。定义dp[i+1][j]:用前i+1种数字(数字的编号是从0到i)是否能加成j为了用前i+1种数字加成j,就需要能前i种数字加成j,j-a[i],……,j-m[i]*a[i]的一种。因此有以下递推式:dp[i原创 2016-07-19 00:09:00 · 449 阅读 · 0 评论 -
划分数
//划分问题:将n个无区别的问题,划分成不超过m组,求划分方法数模M的余数//n的m划分数,记为dp[m][n]//记每一组物品的个数为a[i],1=0//如果对于任意10,则{a[i]-1}就对应n-m的m划分数,即为dp[m][n-m]//如果存在一个a[i]等于0,就对应着n的m-1划分数,即为dp[m-1][n]//所以dp[m][n]=dp[m][n-m]+dp[m-1][n]原创 2016-07-31 18:23:21 · 450 阅读 · 0 评论 -
旅行商问题(状态压缩dp)
给定一个n个顶点的带权有向图的距离矩阵d(i,j)(INF表示没有边)。要求从顶点0出发,经过每个顶点恰好一次再回到顶点0,求所经过边的总权重的最小值。这就是著名的旅行商问题(TSP,Travelling Salemans Problem)。TSP问题是NP困难的,没有已知的多项式时间的高效算法可以解决这一问题(别问我这是什么~~~~(>_假设现在已访问过的顶点的集合为S(顶点0当做未访原创 2016-07-25 23:01:10 · 979 阅读 · 0 评论 -
poj1458最长公共子序列问题
最长公共子序列问题LCS(Longset Common Subsequence),这个问题的大致意思是给定两个字符串,s[1]……s[n]和t[1]……t[m],求出这两个字符串的最长公共子序列的长度。其中s[1]……s[n]的子序列可以为s[i1]……s[im](i1建立状态转移方程(递推式)用dp[i][j]表示s[1]……s[i]与t[1]……t[j]的最长公共子序列的长度则有d原创 2016-07-18 22:12:46 · 700 阅读 · 0 评论 -
poj2686(Traveling by Stagecoach)状态压缩dp+DAG
Traveling by StagecoachTime Limit: 2000MS Memory Limit: 65536KTotal Submissions: 2894 Accepted: 1053 Special JudgeDescriptionOnce upon a time, there was a tra原创 2016-07-28 13:00:40 · 430 阅读 · 0 评论