五大常用算法:分治、动态规划、贪心、回溯和分支界定 这五种算法引出了很多问题。慢慢的更新链接! 动态规划的五个典型算法:动态规划 1.最大连续子序列之和 2.数塔问题(二叉树从上往下遍历最大和问题) 3.01背包问题 4.最长递增子序列(LIS) 5.最长公共子序列(LCS) //最长公共子序列(L ...
分类:
编程语言 时间:
2016-11-21 07:50:12
阅读次数:
198
【题目链接】 http://www.lydsy.com/JudgeOnline/problem.php?id=1037 【题目大意】 现在有n个男生,m个女生排成一行,要求不存在一个区间男女之差大于k,求方案数。 【题解】 因为求方案数,我们考虑到一种类似于背包问题求方案数的dp方法,dp[i][j ...
分类:
其他好文 时间:
2016-11-17 01:24:13
阅读次数:
108
#include<iostream>#include<cstdio>using namespace std; int N,v[35],p[35],C,MAX; void run(int x,int V,int P)//物品x放不放,目前为止的体积V,背包价值P; { if(V>C) return; ...
分类:
编程语言 时间:
2016-11-15 20:01:02
阅读次数:
242
分治背包+单调队列优化。 但是为什么maxn要1w多?。。。不怎么懂。 ...
分类:
其他好文 时间:
2016-11-11 23:39:58
阅读次数:
263
http://acm.xidian.edu.cn/problem.php?id=1172 取和的一半,背包问题。 ...
分类:
其他好文 时间:
2016-11-08 07:52:39
阅读次数:
200
http://acm.xidian.edu.cn/problem.php?id=1073 求总和的一半,然后背包问题,判断这一半的容量是不是等于一半。 注意总和为奇数的情况。 ...
分类:
其他好文 时间:
2016-11-08 07:52:11
阅读次数:
250
一、01背包 有N件物品和一个容量为V的背包。第i件物品的价格(即体积,下同)是w[i],价值是c[i]。求解将哪些物品装入背包可使这些物品的费用总和不超过背包容量,且价值总和最大。 这是最基础的背包问题,总的来说就是:选还是不选,这是个问题<( ̄ˇ ̄)/ 相当于用f[i][j]表示前i个背包装入容 ...
分类:
其他好文 时间:
2016-11-06 22:08:39
阅读次数:
283
问题: 给定n种物品和一背包。物品 i 的重量是 wi ,其价值是 vi ,背包的容量为 c 。 对于一件物品,只有装或者不装,因此该问题称为 0-1背包问题。 问如何选择装入背包中的物品,使得装入背包中的物品总价值最大。 分析: n种物品 : 1 2 3 …… i …… n 用 m( i , j ...
分类:
其他好文 时间:
2016-11-06 02:35:07
阅读次数:
242
背包问题,由于数据大不容易dp,改为剪枝,先按性价比排序,若剩下的背包空间都以最高性价比选时不会比已找到的最优解更好时则剪枝,即 if(val + (LD)pk[d].val / (LD)pk[d].w * (lim - w) + EPS <= ans){ return; } 没想到一发过,0ms ...
分类:
其他好文 时间:
2016-11-05 23:46:32
阅读次数:
205
ref: https://leetcode.com/problems/coin-change/ 就是完全背包问题,可以再复习一遍背包问题。 01背包: for 每一个item for amount...cost[item] f[v] = Max{f[v], f[v-cost[item]] + wei ...
分类:
其他好文 时间:
2016-11-05 07:34:18
阅读次数:
176