希望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
《挑战程序设计竞赛》上DP的一道习题。很裸的多重背包。一开始我写的倍增,把C[i]分解成小于C[i]的2^x和一个余数r。dp[i][j]的定义前i个数字能否到凑出j来,改成一位滚动数组。#include#include#include#include#include#include#include...
分类:
其他好文 时间:
2015-10-15 22:08:11
阅读次数:
242
求解方案数的简单DP,比赛时没有往DP上想,思维比较局限。
状态转移很好写,类似于背包,我用记忆化搜索写的容易写,但是效率比较低,还占内存,读者可以改成递推式,还可以改成滚动数组,因为每一层的状态只用到它上一层的状态 。
细节参见代码:
#include
#include
#include
#include
#include
#include
#include
#include
#inclu...
分类:
移动开发 时间:
2015-08-31 23:52:22
阅读次数:
248
小鑫杀怪兽
Time Limit: 1000ms Memory limit: 65536K 有疑问?点这里^_^
题目描述
塔防游戏 是一类很出名的游戏,在游戏里,你需要建造一些防御塔来攻击怪兽从而保卫小鑫国王。现在又有一波怪兽来袭了,你需要知道小鑫国王能否顶住怪兽的攻击。
怪兽所走的路是一条直线,这条直线上有N个格子(连续编号从1到N)。在怪兽敌人赶来之前,你需要建...
分类:
编程语言 时间:
2015-08-29 09:51:04
阅读次数:
178
数字三角形,最简单的dp之一。不过这次尝试了下滚动数组。/*ID: modengd1PROG: numtriLANG: C++*/#include #include #include using namespace std;int dp[2][1000],input[1001];int main()...
分类:
其他好文 时间:
2015-08-28 21:23:37
阅读次数:
207
P1061Mobile Service时间: 1000ms / 空间: 131072KiB / Java类名: Main描述一个公司有三个移动服务员。如果某个地方有一个请求,某个员工必须赶到那个地方去(那个地方没有其他员工),某一时刻只有一个员工能移动。被请求后,他才能移动,不允许在同样的位置出现两...
分类:
编程语言 时间:
2015-08-27 13:07:14
阅读次数:
592
题意 从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
递推就好了,用二项式定理算出所有连边的方案数,减去不合法的方案,每次选出一个孤立点,那么对应方案数就是上次的答案。枚举选几个孤立点和选哪些,选到n-1个点的时候相当于都不选,只减1。要用到高精度,直接开100*100的组合数数组会MLE,用滚动数组优化一下就好了。不会java,python太伤了#i...
分类:
其他好文 时间:
2015-08-21 19:02:50
阅读次数:
208
【POJ 1159】Palindrome最近各种题各种奇葩思路已经司空见惯了。。。又新出个滚动数组= =
该题还有一点需要知道
最少需要补充的字母数 = 原序列S的长度 — S和S’的最长公共子串长度
然而窝原本并不知道……然后写出了一个奇葩dp做法 居然比LCS快0.0我的思路是从左往右遍历 每个字符从右往左遍历到他的后一位置 dp数组标记当前位置往右对应匹配字符串左半边的最长序列长度的...
分类:
其他好文 时间:
2015-08-17 15:34:07
阅读次数:
196
动态规划,给定长度为n(≤1e6)的整数数组和整数m,选取m个连续且两两无交集的子区间,求所有方案中使得区间和最大的最大值。dp[i][j]表示结束位置(最后一个区间最后一个元素的位置)为i且选取区间数为j的最大值。容易得到以下状态转移方程:又:考虑到数组的规模和j的更新特征,使用一维滚动数组取代二...
分类:
其他好文 时间:
2015-08-16 19:38:42
阅读次数:
136