九度 1077最大序列和(DP)

题目 解题思路: 状态转移方程:f[i]=max(f[i-1]+a[i],a[i])。 注意事项:数据都是 long long 型的#include<iostream> #include<cstdio> #include<cstring> #include...

2015-03-28 09:38:11

阅读数 285

评论数 0

南阳 1042 Tamama的排序游戏(最长上升子序列LIS)

#include #include #include #include using namespace std; int num[1010],arr[1010],len; int Bse(int i){//二分查找 int l=0,r=len,mid; while(l<...

2014-08-12 21:43:38

阅读数 610

评论数 0

poj 2184 Cow Exhibition(处理负数的01背包)

今天遇到一题poj2184,大概思路是01背包dp之后把符合要求的最优解统计出来。但是在解01背包的时候遇到一个问题是体积有负数,这样在dp的过程中会遇到两个问题:循环的时候超出体积的范围;压缩空间的时候状态转移方程:dp[v]=max(dp[v],dp[v-c[i]]+w[i]),c[i]为负数...

2014-08-05 21:54:13

阅读数 397

评论数 0

poj 1088 滑雪(DP+记忆化dfs)

思路:这道题的动态方程是比较容易想的。就是说拿当前点的高度和该点四周的高度相比,若比周围点高度高,则比较长度。 dp[i][j] = max(dp[i][j],dp[newx][newy]+1),这样即可。在比较的时候用到了深搜找路径。

2014-08-04 20:41:37

阅读数 350

评论数 0

poj 1458 Common Subsequence(LCS)

//滚动数组写的,防止超内存 #include #include #include using namespace std; int dp[2][1010];//dp[i][j]大小之于dp[i-1][j]有关 char s[1010],str[1010]; int lcs(int n,int...

2014-08-04 16:17:26

阅读数 322

评论数 0

hdu 1171 Big Event in HDU(01背包&多重背包)

题意: 说的是杭电以前分家的时候,财产要尽可能的均匀分给两个兄弟。现在告诉你价值为n的物品有m件,你的任务就是把这些东西尽可能的分成两份。然后输出最后每家分的的财产总和。最大的总在最前面········

2014-08-02 11:06:10

阅读数 347

评论数 0

hdu 1267 下沙的沙子有几粒?(递推&DP)

根据题目输入的是 H 和 D 的个数,用a [ i ] [ j ]代表有i个 H 和j个 D 的序列的种数。 考虑最后一个字母是 H 还是 D 的情况,最后一个字母是 D 的情况的序列种数是a [ i ][ j-1 ],最后一个字母是 H 的情况的序列种数是a [ i-1 ][ j ]。 则 ...

2014-08-02 09:43:04

阅读数 550

评论数 0

poj 3628 Bookshelf 2(01背包)

题意: 给出n个数, 要求出它们之中一部的和sum, 求出sum-S最小值.

2014-08-01 21:24:53

阅读数 324

评论数 0

poj 1276 Cash Machine(多重背包)

多重背包详解:http://blog.csdn.net/lyhvoyage/article/details/8545852

2014-08-01 20:04:14

阅读数 326

评论数 0

poj 3624 Charm Bracelet(01背包)

#include #include #include #include using namespace std; int dp[13000],w[4000],v[4000]; void BeiBao(int n,int m){ int i,j; for(i=0;i<n;i++){ f...

2014-08-01 10:17:15

阅读数 283

评论数 0

hdu 1058 Humble Numbers(DP)

题意:一组只因子只含有2,3,5,7的数据从小到大排列,求出第n个数 解题思路:1.此题为动态规划,难点在于如何将数据从小到大放在数组中 2.各个因子逐渐增加相乘,再比较大小得出数组 3.注意输出格式,除了11,12,13例外,其余格式余数1为st,2为nd,3为rd,其余为th

2014-07-31 17:58:28

阅读数 331

评论数 0

hdu 1799 循环多少次(DP,排列组合Cn(m))

抽象出来是排列组合题目 从n个数里面选择m个数、按递增方式放在每一层循环 郁闷、高中的公式都忘了 Cn(m)=C(n-1)(m-1)+C(n-1)(m) DP状态转移方程:

2014-07-31 10:23:13

阅读数 537

评论数 0

hdu 4508 湫湫系列故事——减肥记I

完全背包 #include #include int dp[100010]; int max(int a,int b){ return a>b?a:b; } int main(){ int w[110],v[110]; int n,m,i,j; while(~scanf("...

2014-05-20 20:39:15

阅读数 399

评论数 0

hdu 1248 寒冰王座

完全背包 #include #include int dp[10010]; int max(int a,int b){ return a>b?a:b; } int main(){ int t,i,j,n; int w[]={150,200,350};//代表重量 int v[]=...

2014-05-20 20:25:37

阅读数 346

评论数 0

hdu 1087 Super Jumping! Jumping! Jumping!

类似最长递增子序列的想法,只不过这里求的是到第i个元素时,最长递增子序列,各个元素的和。求最大的那个值 zhuantai

2014-05-14 22:27:45

阅读数 376

评论数 0

南阳 249 最大长方形

和“积木”差不多

2014-05-03 09:46:04

阅读数 399

评论数 0

南阳 265 积木

#include #include #include int hight[100],lengh[100]; int Max(int i,int j){ int t=-1; for(j+=1;j<=i;j++){ if(hight[j]>t)...

2014-05-03 09:20:20

阅读数 508

评论数 0

hdu 1081 To The Max

把二维的子矩阵转化为求一维的

2014-04-13 17:04:15

阅读数 334

评论数 0

hdu 1559 最大子矩阵

子矩阵的问题,都可以转化成最大子段和的问题,转换的思想就是把几行合并成一行,求这一行的最大子段和,结果就是子矩阵的最大和了。

2014-04-13 11:13:09

阅读数 381

评论数 0

南阳 49 开心的小明

#include #include int dp[30010]; int max(int a,int b){ return a>b?a:b; } int main(){ int t,n,m,i,j; int num[30],val[30]; ...

2014-03-19 21:26:22

阅读数 488

评论数 0

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