HDU 5151 Sit sit sit
题目链接
区间DP+组合计数问题,转移方程为,每次选当前区间最后一个放的位置,然后乘上组合数C[区间长度][左区间长度]
代码:
#include
#include
typedef long long ll;
const ll MOD = 1000000007;
const int N = 105;
int n, a[N];
ll ...
分类:
其他好文 时间:
2014-12-29 16:56:35
阅读次数:
99
Dire Wolf
Time Limit: 5000/5000 MS (Java/Others) Memory Limit: 512000/512000 K (Java/Others)
Total Submission(s): 306 Accepted Submission(s): 179
Problem Description
Dire wolves, als...
分类:
其他好文 时间:
2014-12-27 17:32:23
阅读次数:
257
题目链接:点击打开链接
给定多叉树的先序遍历结果,求多叉树的同构数
思路:区间dp
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.Scanner;
public class Main {
int min(int a,int b){return a>b?b:a;}
int max(...
分类:
其他好文 时间:
2014-12-24 13:31:30
阅读次数:
136
HDU5115 Dire Wolf (区间DP)...
分类:
其他好文 时间:
2014-12-19 22:07:56
阅读次数:
262
Description假设你有一条长度为5的木版,初始时没有涂过任何颜色。你希望把它的5个单位长度分别涂上红、绿、蓝、绿、红色,用一个长度为5的字符串表示这个目标:RGBGR。 每次你可以把一段连续的木版涂成一个给定的颜色,后涂的颜色覆盖先涂的颜色。例如第一次把木版涂成RRRRR,第二次涂成RGGG...
分类:
其他好文 时间:
2014-12-18 21:55:54
阅读次数:
189
石子合并问题 (朴素区间DP&&GarsiaWachs算法)...
分类:
编程语言 时间:
2014-12-15 21:50:50
阅读次数:
266
学长一晚上的耐心讲解,使我明白区间DP这么高级的东西,还是挺容易的。也就是在一段区间内的动态规划。 下面用例题进行总结。 例题:石子归并。 描述 有N堆石子排成一排,每堆石子有一定的数量。现要将N堆石子并成为一堆。合并的过程只能每次将相邻的两堆石子堆成一堆,并将新的一堆石子数记为该次合并的...
分类:
其他好文 时间:
2014-12-14 14:28:10
阅读次数:
116
题目:http://poj.org/problem?id=1651水题题意:若干张卡片,第i张卡片的分值为a[ i ] ( 1 2 #include 3 #include 4 #include 5 using namespace std; 6 long long dp[110][110],a[11....
分类:
其他好文 时间:
2014-12-08 21:14:49
阅读次数:
149
题意:举个例子,就跟DOTA里的狼BB一样,自身有攻击力,还有光环可以提升同伴的攻击力,狼站成一排,光环只能提供给相邻的狼,打掉一直狼需要打一下,同时它也会打一下,这样你的扣血量其实就等于该狼的攻击力
方程很好想,dp[i][j]代表 打掉区间[i,j]内的狼所需最少血量,这里是闭区间,后来看到是200*200 ,那么就懒得去想方程转移了,直接记忆化搜索就可以了,注意点是 一个狼被宰了,...
分类:
其他好文 时间:
2014-12-05 22:48:39
阅读次数:
188
题目链接:点击打开链接
题意: 一根长度为L 的木棒,要求要切割n次,给出n次需要切割的位置,每次切割花费为当前段的总长度。求最小花费。
思路:。。一开始想了好久也没往区间DP那方面想QAQ。设 dp[i][j] 为切割[i,j] 区间的最小花费,状态转移方程为 dp[i][j]=max(dp[i][k-1]+dp[k+1][j]+a[j+1]-a[i-1]);
#include
#inc...
分类:
其他好文 时间:
2014-12-04 01:10:36
阅读次数:
170