DPdp[i]表示对前i座塔进行操作后形成非递减序列所需要的最小操作步数;sum[i]表示第i个塔与之前塔的总高度h[i]dp最小的情况下表示合并后第I个塔的最小高度#include using namespace std;#define MAX 1e8int dp[5005],h[5005],su...
分类:
其他好文 时间:
2014-07-21 00:00:37
阅读次数:
244
这是一个比赛题营销策略(pattern.cpp/c/pas)【题目描述】W 记的儿童套餐会赠送一份小玩具,赠送的小玩具共有n 种。小朋友买了m 份儿童套餐,求收集齐n 种小玩具的概率。假设每份儿童套餐赠送的小玩具的种类是等概率随机的。【输入格式】从pattern.in 中输入数据一行,两个整数n,m...
分类:
其他好文 时间:
2014-07-21 00:00:01
阅读次数:
246
汉诺塔
汉诺塔II hdu1207:
先说汉若塔I(经典汉若塔问题),有三塔,A塔从小到大从上至下放有N个盘子,现在要搬到目标C上,
规则小的必需放在大的上面,每次搬一个,求最小步数。这个问题简单,DP:a[n]=a[n-1]+1+a[n-1],先把
上面的n-1个放在B上,把最大的放在目标C上,再把N-1个放回到C上即可。
网上的一种最优解法如下:(1)将x(1
#inc...
分类:
其他好文 时间:
2014-07-20 23:18:31
阅读次数:
272
完全背包,转化为0/1背包 dp[i, j] = max(dp[i-1, j], dp[i, j - minutes[i]] + points[i])
/*
ID:kevin_s1
PROG:inflate
LANG:C++
*/
#include
#include
#include
#include
#include
#include
#include
#include
#i...
分类:
其他好文 时间:
2014-07-20 23:17:56
阅读次数:
353
这是个好题,菜鸟刚学dp,这题把我以前的想法全都给完完全全的颠覆了。其实是自己没了解无后效性的概念。
然后我去开开心心滴跑去问队长:”队长,队长,怎么理解动归的无后效性啊???“
学长很深沉滴对我说:”做多了就会了“
"噢噢”(好吧)
然后学长又补了句:“能构成有向无环图的都能用DP搞."
我心里想:”队长就知道搞妹~~~。“
默默去翻小白书看看DAG去了。
为了搞清楚这题怎...
分类:
其他好文 时间:
2014-07-20 23:17:13
阅读次数:
336
原来是想dp[i],表示不被抓概率为i所能抢到的最大钱(概率1-100)
后来看了别人的博客是dp[i]表示抢了i钱最大的不被抓概率,嗯~,弱菜水题都刷不动。
那么状态转移方程就是
dp[i]=max(dp[i],dp[i-money]*p),初始化dp(0~maxn)为0,dp[0]=1(1毛钱都没抢你抓个毛线啊,哥是良民~)
又是贴代码环节~
#include
#includ...
分类:
其他好文 时间:
2014-07-20 23:08:15
阅读次数:
284
立方算法:
#include
#include
#include
#include
#define M 505
using namespace std;
typedef long long LL;
LL a[M],b[M];
int dp[M][M];
int main()
{
//freopen("in.txt","r",stdin);
int T;
cin>>T;
...
分类:
其他好文 时间:
2014-07-20 23:01:50
阅读次数:
284
Square City is a very easy place for people to walk around. The two-way streets run North-South or East-West dividing the city into regular blocks. Most street int...
分类:
其他好文 时间:
2014-07-20 22:33:53
阅读次数:
295
Aeroplane chessTime Limit: 2000/1000 MS (Java/Others)Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 1122Accepted Submission(s): 762Prob...
分类:
其他好文 时间:
2014-07-20 22:32:02
阅读次数:
310
多重部分和问题 代码(C)本文地址: http://blog.csdn.net/caroline_wendy题目: 有n种不同大小的数字a, 每种各m个. 判断是否可以从这些数字之中选出若干使它们的和恰好为K.使用动态规划求解(DP), 方法1: dp[i+1][j] = 用前n种数字是否能加和成j, 时间复杂度O(nKm), 不是最优.方法2: dp[i+1][j] = 用前i种数加和得到j时,...
分类:
其他好文 时间:
2014-07-20 22:23:03
阅读次数:
177