1651专题

POJ 2955 Brackets POJ 1505 Copying Books POJ 1651 Multiplication Puzzle(初级区间DP)

POJ 2955 Brackets 题目大意 在给定字符串中有多少个可匹配括号,()和[]为可匹配。 解题思路 dp[i][j]代表i~j有多少个可匹配的字符串。 转移方程: 1、dp[i][j]=dp[i+1][j-1]+2,当i,j位置组成可匹配括号; 2、枚举分割点k (i≤k<j) (i \le k<j) :dp[i][j]=max(dp[i][j],dp[i][k]+dp

poj 1651 DP 从一个序列中任意选一个数,进行某种计算,然后移除这个数,直到最后

#include<cstdio>#include<cstring>#define INF 0x3f3f3f3f#define MAX(x,y) ((x)>(y)?(x):(y))#define MIN(x,y) ((x)>(y)?(y):(x))int dp[115][115];int d[115];int main(){int n;scanf("%d",&n);for(int i

NUBT 1651 Red packet(红包问题,二分,宁波工程学院在线评测)

[1651] Red packet 时间限制: 1000 ms 内存限制: 65535 K 问题描述 New Year is coming! Our big boss Wine93 will distribute some “Red Package”, just like Alipay and Wechat. Wine93 has m yuan, he decides to dis

poj 1651 Multiplication Puzzle(区间DP,直接用矩阵相乘的方式也对)

1、http://poj.org/problem?id=1651 2、题目大意: 给出n个数,现在要将这些数一个一个的取出来,但是不能取出两个端点的数字,取出第i个数字(c[i])的代价是 c[i-1]*c[i]*c[i+1] 用矩阵相乘的思想dp[i][j]表示i到j区间取出来的代价 dp[i][j]=min(dp[i][j],dp[i][k]+dp[k][j]+c[i]*c[k]*c