给出一个森林,每棵树均为一组物品,首先推出每棵树可以组成的物品种类。
然后是基本的分组背包模板。
即 最外层枚举组数,次外层枚举背包容量,内层枚举物品体积。
对于每棵树有 ans[root][i+j] = ans[root][ i ] + ans[son][ j ]。
题水数据也水,不多说了。
#include
#include
#include
#include
#in...
分类:
其他好文 时间:
2014-07-22 23:05:52
阅读次数:
387
OJ题目 : click here~
题目分析:X为距离 , 当0C1。 L1C2。L2
设dp[ i ] 为到车站 i 的最少票价 。
则转移方程为dp[ i ] = min(dp[ j ] + 从j 到 i 的票价),j 为所有可以直接到 i 的车站。
要注意第一个数字 大于 第二个数字的情况。的确,题目没有说,从a 到 b。只说了a,b之间。要仔细读题啊,不能想当然。
AC_COD...
分类:
其他好文 时间:
2014-07-22 23:05:52
阅读次数:
294
hdu 1250 Hat's Fibonacci 高精度数,类似万进制...
分类:
其他好文 时间:
2014-05-01 18:26:27
阅读次数:
351
题目来源:POJ 3882 Stammering Aliens
题意:给你m一个一个字符串 求至少出现m次的最长字符串 可以在字符串中重叠出现
思路:二分长度l 然后从height数组中找长度大于等于l的前缀
#include
#include
#include
using namespace std;
const int maxn = 40010;
char s[maxn];
in...
分类:
其他好文 时间:
2014-05-01 17:36:34
阅读次数:
334
题意:多维的曼哈顿最远距离
思路:做了1,2,3维的,其实就是枚举所有绝对值的可能的表达式
#include
#include
#include
#include
using namespace std;
const int MAXN = 100005;
const int M = 5;
const double inf = 1e200;
struct node{
double x...
分类:
其他好文 时间:
2014-05-01 17:31:01
阅读次数:
283
题目:寻找最长上升自序列。
代码:
#include
#include
#include
#include
using namespace std;
struct node
{
int w,s; //重量,速度
int num; //编号
int t; //用来记录当前编号...
分类:
其他好文 时间:
2014-05-01 17:17:32
阅读次数:
285
OJ题目 : click here ~~
题目分析:G种颜色的宝石(Gems),放在B个包里,每个包里同种宝石的个数不定哦。A,B轮流取一个包,宝石放在cooker上,同种颜色的宝石达到S个时,就可以融合成一个魔法石,如果2*S个当然就可以融合成两个魔法石啦。某人在某轮获得了魔法石,可以接着再玩一轮,直到没有获得魔法石。A先开始。问A比B 最多能多多少个魔法石。A,B都采用最优策略。
B的值最...
分类:
其他好文 时间:
2014-04-29 13:46:21
阅读次数:
278
Sliding Window
Time Limit: 12000MS
Memory Limit: 65536K
Total Submissions: 36147
Accepted: 10700
Case Time Limit: 5000MS
Description
An array of size n ≤ 106 i...
最长上升子序列:
有两种基本方法:两个时间复杂度分别为O(n^2)和O(nlogn)。
O(n^2)
容易的出动态规划的递推公式dp[i]=max(dp[j])+1 j=1,2...i-1,dp[i]是以元素i结尾的最长子序列个数。
在O(n^2)的最长上升子序列中可以通过记录每个元素前缀元素位置的方式来得到整个的最长上升子序列。
代码:int LISOn2(int a[],int to...
分类:
其他好文 时间:
2014-04-29 13:24:22
阅读次数:
314