01背包。 不仅要求出最大的。还要求出最大的由那些构成。
多定义一个path[]就可以了。
应该是 Special Judge
我样例最后一组输出的是 43 2 sum:45
样例输出的是 4 10 12 9 8 2 sum:45
不过也AC了。
#include
#include
#include
#include
#include
#include
#inc...
分类:
其他好文 时间:
2014-11-11 16:43:49
阅读次数:
209
01背包。
题意是说要把一堆钱分给两个人,尽可能的平均。要求最终两人的差最小。
01背包,查看某个价值是否可能达到。能就1,不能就0.
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define INF 0x7fffff...
分类:
其他好文 时间:
2014-11-11 10:49:28
阅读次数:
145
本题是Best Time to Buy and Sell Stock/的改进版。
本题中,可以买最多买进卖出两次股票。
买两次股票可以看成是第0~i天买进卖出以及第i+1~n-1天买进卖出两部分。这要枚举i并求出0th~ith的最大利益与(i+1)th~(n-1)th的最大利益之和的最大值就是买进卖出两次可以得到的最大利益。即状态转移方程:
dp[0,n-1]=max{dp[0,k]+dp[...
分类:
其他好文 时间:
2014-11-10 23:22:55
阅读次数:
282
HDU 4050 wolf5x(动态规划-概率DP)
题目大意:
这是一维的,一个人在0号格子,现在1~n号格子排成一排,上面有各种限制,一个人想从 0号格子走出n号格子,也就是走到 >n 处。
每个格子是4种状态的其中一种,并且没告诉你是哪种状态,只是告诉你概率,第i号格子4种状态的其中一种的概率记为p[i][0],p[i][1],p[i][2],p[i][3]。
0 表示这个格子既不能左腿也不能右腿踏进去。
1 表示这个格子可以左腿踏进去。
2 表示这个格子可以右腿踏进去。
3 表示这个格子既可以左腿...
分类:
其他好文 时间:
2014-11-10 21:57:10
阅读次数:
429
Josephina and RPG
Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 923 Accepted Submission(s): 261
Special Judge
Problem Description...
分类:
其他好文 时间:
2014-11-10 19:56:07
阅读次数:
334
题意读了半年,唉,给你两串字符,然后长度不同,你能够用‘-’把它们补成同样长度,补在哪里取决于得分,它会给你一个得分表,问你最大得分跟LCS非常像的DP数组 dp[i][j]表示第一个字符串取第i个元素第二个字符串取第三个元素,然后再预处理一个得分表加上就可以得分表:score['A']['A'] ...
分类:
其他好文 时间:
2014-11-10 17:17:49
阅读次数:
161
#include
#include
#include
#include
using namespace std;
//采用普通的递归算法来求解钢条分割的最大的收益
int cut_rod(int *p,const int &n)
{
if(n==0)
return 0;
int q=-1;
for(int i=1;i<=n;++i)
{
q=max(q,p[i]+cut_rod(p...
分类:
编程语言 时间:
2014-11-10 15:34:51
阅读次数:
361
子问题与原问题........
题意:
有k个坏人k个好人坐成一圈,前k个为好人(编号1~k),后k个为坏人(编号k+1~2k)
现在有一个报数m,从编号为1的人开始报数,报到m的人就要自动死去。问当m为什么值时,可以使得在出现好人死亡之前,k个坏人先全部死掉?
PS:当前一轮第m个人死去后,下一轮的编号为1的人 为 前一轮编号为m+1的人。 前一轮恰好是最后一个人死掉,则下一轮循环回到开...
分类:
其他好文 时间:
2014-11-10 12:11:18
阅读次数:
179
石子合并(一)
时间限制:1000 ms | 内存限制:65535 KB
难度:3
描述 有N堆石子排成一排,每堆石子有一定的数量。现要将N堆石子并成为一堆。合并的过程只能每次将相邻的两堆石子堆成一堆,每次合并花费的代价为这两堆石子的和,经过N-1次合并后成为一堆。求出总的代价最小值。
输入有多组测试数据,输入到文件结束。
每组测试数据第一行有一个整...
分类:
其他好文 时间:
2014-11-10 10:11:05
阅读次数:
167
这道题跟coins很像,看来楼教主的男人八题果然不简单。
先按照可到达最高值按升序排序。完后进行coins式的背包处理就好了。
#include
#include
#include
#include
#include
#define max(a,b) ((a)>(b)?(a):(b))
typedef long long ll;
using namespace std;
const i...
分类:
系统相关 时间:
2014-11-10 10:10:50
阅读次数:
224