动态规划
文章平均质量分 56
FainTwinkle
这么好的故事,你可别演砸了。
展开
-
六校模拟 HDU 5389 Zero Escape (DP 人人为我型动态规划)
题目链接http://acm.hdu.edu.cn/showproblem.php?pid=5389Zero EscapeTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others)Total Submission(s): 403 Accepted Submi原创 2015-08-13 22:00:48 · 363 阅读 · 0 评论 -
hdu2546饭卡(背包)
饭卡Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 23509 Accepted Submission(s): 8267Problem Description电子科大本部食堂的饭卡有一种很诡异的设计,即原创 2016-08-17 19:31:13 · 675 阅读 · 0 评论 -
hdu 4301Divide Chocolate(dp)
这题的题意是,给你一个2*n的巧克力,问你如果把他分成k块,有多少种分法dp[i][j][k] 表示的就是 ,第i 层 分成k块, 最后一层是分开的还是合上的 ,有多少种分法。AC代码:#include#include#include#include#includeusing namespace std;const int N=1000;const int mod=100原创 2016-07-25 13:35:34 · 252 阅读 · 0 评论 -
UVA 10891 Game of Sum(经典区间dp)
这道题的题意就是一段数字,两个人,每个人交替取数字,每次只能从左或者右取一个或者多个数字,保证自己拿到的数字之和最大,前提是两个人都足够聪明,那么,最后的差a-b等于多少。思路就是: dp(i,i+k)表示的是在i~i+k中能得到的最大值,转移的思路是,在这一段中会分给两个人,所以dp[i][i+k]=sum[i][j]-min(dp[i][i+1].......... dp[i][i+k])原创 2016-05-21 21:49:13 · 264 阅读 · 0 评论 -
UVA10635Prince and Princess(变形的LIS)
这道题的题意是 给长度为 p+1 和 q+1的序列,每个序列中的各个元素互不影响,且长度都是 1-n^2之间的整数。两个序列的第一个元素均为1,求出A,B最长公共子序列长度。思路就是 这题看着像LCS,但是n有250,用LCS肯定会超时,所以要换一个方法。这里每个序列中的各个元素互不相同 所以可以把A重新编写,A:1,7,5,4,8,3,9 可以变成1,2,3,4,5,6,7 按照这个对照原创 2016-05-18 21:08:39 · 298 阅读 · 0 评论 -
UVA12563 Jin Ge Jin Qu hao(背包问题)
这题的题意就是 给你n首歌,t长的时间,每首歌有一个长度,最后你要留至少一秒唱金哥金曲,所以就问你在这么长的时间里最多唱几首歌。这题数据t给的10的9次方 我想了半天想不出来,结果发现网上的做法开1w就过了。。。基本就是背包的做法把#include using namespace std;const int N = 55, M = 180;int c[N], d[N * M],原创 2016-02-28 21:19:22 · 375 阅读 · 0 评论 -
zjnu1822JEDAN(dp)
题意就是给你一个若干年后的金字塔,问你当时组成这个样子的情况一共有多少种进本上是额裸的dp,需要用一下滚动数组。AC代码:/* ***********************************************Author :yzkAcceptedCreated Time :2016/4/4 10:37:00TASK :ggfly.cppLAN原创 2016-04-04 22:08:02 · 277 阅读 · 0 评论 -
hdu5656CA Loves GCD(dp)
题目大意:问题描述CA喜欢是一个热爱党和人民的优秀同♂志,所以他也非常喜欢GCD(请在输入法中输入GCD得到CA喜欢GCD的原因)。现在他有N个不同的数,每次他会从中选出若干个(至少一个数),求出所有数的GCD然后放回去。为了使自己不会无聊,CA会把每种不同的选法都选一遍,CA想知道他得到的所有GCD的和是多少。我们认为两种选法不同,当且仅当有一个数在其中一种选法中被选中了,原创 2016-04-04 19:49:19 · 418 阅读 · 0 评论 -
poj1837Balance
题目链接http://poj.org/problem?id=1837题目大意就是给你天平的钩码和砝码,问你在砝码全部放进去的时候,使天平平衡的情况有几种。这道题是背包问题。dp[i][j],意为在挂满前i个钩码时,平衡度为j的挂法的数量所以,可以推出公式dp[i][ j+ w[i]*c[k] ]= ∑(dp[i-1][j])AC代码:#include#in原创 2015-12-04 21:47:21 · 237 阅读 · 0 评论 -
zoj1074 To the Max(简单的DP)
题目链接http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=74大意就是给你一个矩阵问你矩阵的最大子矩阵之和是多少#include#include#define inf 99999999int a[110][110];int main(){ int n,d,sum; int max=-inf;原创 2015-12-04 13:44:22 · 413 阅读 · 0 评论 -
hdu1176免费馅饼(DP)
http://acm.hdu.edu.cn/showproblem.php?pid=1176这道题一开始我也是没思路。。结果发现是数塔问题把它看作一个矩阵,i 表示时间 j 表示地点。AC代码:#include#include#include#include#include#includeusing namespace std;const int maxn=18000原创 2015-12-19 21:35:46 · 267 阅读 · 0 评论 -
hdu5534Partial Tree(长春现场赛H题)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5534大意就是一颗n个点的树,每个点度数不同,权值不同,问你怎么构建这棵树,使这棵树权值最大。这道题就是DP ,DP i,j i表示有i个点,j 表示 最后有j 个点在一个父节点上。dp[0][0]=n*f[n].#include#include#include#inclu原创 2015-11-01 21:58:40 · 468 阅读 · 0 评论 -
POJ1163 The Triangle 题解
题目链接:http://poj.org/problem?id=1163思路:典型的动态规划,转换公式为maxSum[i][j] = max(maxSum[i+1][j],maxSum[i+1][j+1]) + D[i][j]不过这里可以进行一个优化,把maxSum数组存到原来的D数组的最后一行,每次只要更新数组的最后一行即可,这样就节省了空间。#include#include#in原创 2015-07-26 12:37:48 · 385 阅读 · 0 评论 -
百练2757最长上升子序列
题目地址http://bailian.openjudge.cn/practice/2757思路:标准的动态规划,我用的是“人人为我”的方法,把第一个字符和当前字符的最长子序列长度存入数组maxL[],maxL[5]表示第一个字符到第五个字符的最长子序列长度。把当前的maxL[n]和maxL[1]+1到maxL[n-1]+1一一进行比较,来更新maxL[n],所以公式为 maxl原创 2015-07-28 20:28:43 · 509 阅读 · 0 评论 -
hdu5791Two(dp)
题意就是给你两个数组,问这两个数组的相同的子序列有多少个。其实这题有点像变形的最长公共子串a[ i ]==a[ j ]时,dp[ i ][ j ]=dp[ i-1 ][ j ]+dp[ i ][ j-1 ]+1a[ i ] !=a[ j ]时 ,dp[ i ][ j ]=dp[ i-1 ][ j ]+dp[ i ][ j-1 ]-dp[ i-1 ][ j-1 ]AC代码:#i原创 2016-08-02 21:02:42 · 502 阅读 · 0 评论