希望Total Smart和Totol Funess都尽量大,两者之间的关系是鱼和熊掌。这种矛盾和背包的容量和价值相似。dp[第i只牛][j = 当前TotS] = 最大的TotF。dp[i][j] = max(dp[i-1][j-s[i]])。滚动数组根据j-s[i]和j大小关系决定递推顺序。中间...
分类:
其他好文 时间:
2015-10-17 14:39:58
阅读次数:
164
题意 从n个数的数组中选出不相交的m段 求被选数的和的最大值
Max Sum 的升级版 不只是要选一段连续的了 而是选m段 思想还是类似 依旧dp
状态和状态转移方程不是很难想 在 Max Sum 这个问题中 dp[i] 表示的是以第i个数结尾的一段的 Max Sum 由于这里还有一个多少段的状态 于是这里令 dp[i][j] 表示在前 i 个数中选取 j 组 且第 i 个...
分类:
编程语言 时间:
2015-08-27 11:11:35
阅读次数:
260
【POJ 1159】Palindrome最近各种题各种奇葩思路已经司空见惯了。。。又新出个滚动数组= =
该题还有一点需要知道
最少需要补充的字母数 = 原序列S的长度 — S和S’的最长公共子串长度
然而窝原本并不知道……然后写出了一个奇葩dp做法 居然比LCS快0.0我的思路是从左往右遍历 每个字符从右往左遍历到他的后一位置 dp数组标记当前位置往右对应匹配字符串左半边的最长序列长度的...
分类:
其他好文 时间:
2015-08-17 15:34:07
阅读次数:
196
Zero Escape
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others)
Total Submission(s): 864 Accepted Submission(s): 438
Problem Description
Zero Escape, i...
分类:
编程语言 时间:
2015-08-15 10:27:27
阅读次数:
185
题意:n个程序员一起写m行代码,第i个程序员每写一行有a[i]个bug,求总bug不超过b的分配方案有多少种
分析:这题很像完全背包,不过求的不是最大/最小bug数,求的是bug数小于上限的分配方案。所以这题要用三维dp
dp[i][j][k]表示前i个个程序员总共写了j行代码产生了k个bug时的plan数,这题有两种转移:1)第i个程序员再写一行;2)换第i+1号程序员写
所以方程:dp[...
分类:
编程语言 时间:
2015-06-02 17:56:29
阅读次数:
237
题意:有一些男生女生,男生女生数量差不超过100,男生女生两两配对。要求求出一种配对方法,使每一对的高度差的和最小。思路:(我是真的笨笨笨!!磨磨唧唧写一堆是因为我笨!我看了别人的博客,思路全是学别人的,轻喷!)设人少的一组人数为n,b[],人多的一组人数为m,g[](b[],g[]先排好序),用d...
分类:
编程语言 时间:
2015-05-12 22:48:04
阅读次数:
189
1925: [Sdoi2010]地精部落
Time Limit: 10 Sec Memory Limit: 64 MB
Submit: 814 Solved: 494
[Submit][Status][Discuss]
Description
传说很久以前,大地上居住着一种神秘的生物:地精。 地精喜欢住在连绵不绝的山脉中。具体地说,一座长度为 N 的山脉 H可分 为从左到右的 N...
分类:
编程语言 时间:
2015-04-09 17:40:48
阅读次数:
182
题意:n头牛和m个barn,每头牛有自己喜欢的p个barn(1 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include10 #include11 12 using namespac...
分类:
编程语言 时间:
2015-04-06 14:03:37
阅读次数:
227
poj3624 01背包 dp+滚动数组Charm BraceletTime Limit:1000MSMemory Limit:65536KTotal Submissions:25458Accepted:11455DescriptionBessie has gone to the mall's je...
分类:
编程语言 时间:
2015-03-15 23:40:32
阅读次数:
202
/*
最少需要补充的字母数 = 原序列S的长度 — S和S'的最长公共子串长度
*/
# include
# include
# include
# include
using namespace std;
int dp[2][5010];///滚动数组
int main()
{
char a[5010];
char b[5010];
int i,j,k,len;...
分类:
编程语言 时间:
2015-02-02 16:01:38
阅读次数:
168