【比赛提醒】BestCoder 你报名了吗?(点击报名)【科普】什么是BestCoder?如何参加?Dragon BallTime Limit: 3000/1500 MS (Java/Others)Memory Limit: 65536/32768 K (Java/Others)Total Subm...
分类:
其他好文 时间:
2014-11-21 20:11:28
阅读次数:
246
传说中的男人八题,是男人就A这八题。有n种面额的硬币,面额个数分别为A_i、C_i,求最多能搭配出几种不超过m的金额?
这是一个多重部分和问题(多重背包问题),放在了《2.3 记录结果再利用的“动态规划” 优化递推关系式》。最基本的做法是:
dp[i][j] := 用前i种硬币能否凑成j
递推关系式:
dp[i][j] = (存在k使得dp[i - 1][j -...
分类:
其他好文 时间:
2014-11-15 11:28:38
阅读次数:
282
题目:poj 2484 Cow Exhibition
题意:给出n头牛,每头牛有一个幸运值 si 和聪明值 ti ,现在要选出一些牛,让两个值的和最大,前提是sum(si)和sum(ti)都是非负值。
分析:此题数据量不大,可以暴搜+剪枝水过。
这里要说的是0-1背包的思想,这个题目明显的变形就是物品有两个属性值,而且都要选最大的。
那么我们可不可以把一个值固定下来来求另一...
分类:
其他好文 时间:
2014-10-30 11:44:06
阅读次数:
208
1.二分优化 (使用二分查找优化查找效率)典型例题:LISdp[i]保存长度为 i 的上升子序列中最小的结尾,可以用二分查找优化到nlogn2.数学优化 (通过数学结论减少状态数)例题1:hdu4623 题解例题2:usaco4.11 题解大意是求10个数及其倍数最大不能表示的数有数论结论证明对于互...
分类:
其他好文 时间:
2014-10-28 13:49:24
阅读次数:
188
这道题是NOIP第一道DP优化题,看似容易,实际上想要满分也颇有难度。
传送门:1002 过河
算法
此题显然要用到DP,DP方程也显而易见:
if (stone[i]) f[i]=min{f[i-j]}+1; (S
else f[i]=min{f[i-j]};
这样的时间复杂度为 O(LT) ,空间复杂度为 O(L) 。
而此题的L高达 10亿 ,所以这种朴素的方法只能得 30...
分类:
编程语言 时间:
2014-10-22 14:44:16
阅读次数:
309
题目:hdoj 1074 Doing Homework
题意:给出一些任务15个,每个任务有截至时间和需要做的天数,超期一天扣一分,求让扣分最小的安排方案。
分析:用状态压缩枚举所有的状态,dp【st】表示在st状态下的最小扣分
转移方程:dp【st | (1
注意这个题目需要打印路径,所以还要一个数组保存状态的转移,递归输出结果即可。
AC
代码:
...
分类:
其他好文 时间:
2014-09-25 14:06:28
阅读次数:
192
题目:uva 10271 Chopsticks
题意:从一组数中选出每三个为一组,价值为三个中两个小的差值的平方和,让这个总价值最小。
分析:定义dp【i】【j】为从后 i 个中选出 j 对的最小价值。
转移方程:dp【i】【j】 = min(dp【i-1】【j】,dp【i+2】【j-1】+(a【i】-a【i+1】)*(a【i】-a【i+1】))
注意状态转...
分类:
其他好文 时间:
2014-09-23 21:17:58
阅读次数:
179
题目:uva 10069 Distinct Subsequences
题意:给出一个子串 x 和母串 s ,求子串在母串中的不同序列的个数?
分析:定义dp【i】【j】:x 的前 i 个字母在 s 的前 j 个字母中的出现次数;
dp [ i ] [ j ] = dp [ i ] [ j - 1 ] ;
if ( x[ i ] == s [ j ] )
...
分类:
其他好文 时间:
2014-09-17 18:45:42
阅读次数:
327
西安网络赛C题。先对大数据离散化,dp优化
#include //G++
#include
#include
#include
#include
#include
#include
#include
using namespace std;
const int maxn=51234;
struct kind
{
int id;
int val;
};
int vis...
分类:
其他好文 时间:
2014-09-15 19:30:59
阅读次数:
168