题目链接:[ POJ - 2373 ]
题目大意
有一个直线的山脊,喷泉是一个在中间向两边同时喷的,最近喷a,最远b。同时山脊上有牛,每只牛在一个区域里活动,牛活动的区域只能被一个喷泉的水来覆盖。求最少的喷泉使山脊上所有地方都能有水浇灌到
思路
手工...
阅读全文...
动态规划 POJ-1458 Common Subsequence
题目链接:[ POJ - 1458 ]
题目大意
输入两个串s1,s2, 设MaxLen(i, j)表示:
s1的左边i个字符形成的子串,与s2左边的j个字符形成的子串的最长公共子序列的长度(i,j)从 0 开始
算)
MaxLen(i,j) 就是本...
阅读全文...
阅读全文...
动态规划 背包 百炼-2755 神奇的口袋
题目链接:[ HDU - 2069 ]
题目大意
背包问题
思路
设V(m,n)表示在n个数字中插入m个加号所能形成 的表达式最小值,那么:
if m = 0
V(m,n) = n个数字构成的整数
else if n <...
阅读全文...
阅读全文...
动态规划 01背包 POJ-3624 Charm Bracelet
题目链接:[ POJ - 3624 ]
题目大意
0-1背包
思路
用 F[i][j] 表示取前i种物品,使它们总体积不超过j的 最优取法取得的价值总和。要求 F[N][M] 边界:
if (w[1] <= j)
F[1][j]...
阅读全文...
阅读全文...
动态规划 LIS POJ-1088 滑雪
[ POJ - 1088 ]
题目大意
求最长上升子序列的题目,二维数组稍微转化一下
题解代码
#include<bits/stdc++.h>
using namespace std;
int dp[105][105];
int h[1...
阅读全文...
阅读全文...
动态规划 最长上升子序列LIS 两种角度及优化算法
题目链接:[ OpenJ_Bailian - 2757 ]
一个数的序列 $b_{i}$,当 $b_{1} < b_{2} < ... < b_{S}$ 的时候,我们称这个序列是上升的。对于给定的一个序列( $a_{1}, a_{2...
阅读全文...
阅读全文...
动态规划 最长公共子序列 HDU-1159 Common Subsequence
题目链接:[ HDU - 1159 ]
A subsequence of a given sequence is the given sequence with some elements (possible none) left out. Give...
阅读全文...
阅读全文...
动态规划 HDU-2069 Coin Change
题目链接:[ HDU - 2069 ]
题目大意
有五种面值的硬币,面值分别为v1, v2, ..., vn, 数量无限。输入一个数,求这个价值所有可能的硬币组合
思路
定义dp[i][j], 表示价格为i时用j枚硬币的方案数量
dp[i][j] =...
阅读全文...
阅读全文...
动态规划 入门 POJ-1163 The Triangle
题目链接:[ POJ - 1163 ]
题目大意
用二维数组存放数字三角形。
D(r, j) : 第r行第j个数字(r, j从1开始算)
MaxSum(r, j) : 从D(r, j)到底边的各条路径中,最佳路径的数字之和。
问题:求 MaxSum(...
阅读全文...
阅读全文...