(poj真的炸了,以下代码可能有误)

按照下面这个做题顺序,对区间DP不再那么迷了

LOJ1422

是 dp[i][j]=min(dp[i][j],dp[i+1][k-1]+dp[k][j])而不是dp[i][j]=min(dp[i][j],dp[i+1][k-1]+dp[k+1][j]+dp[k][k]);

因为ai==ak的时候k不是等着i来匹配,而是先用ak-aj之间的匹配结果来和ai匹配,防止之间有am==ak

POJ2955 poj爆炸了吗?

POJ3280   不用变量k(密码脱落)

POJ1141 不会记录路

POJ1651 easy

POJ3661主要是休息的时候,要一次性休息完

Light OJ1422
#include<cstdio>
#include<cstdlib>
#include<iostream>
#include<memory.h>
#include<algorithm>
#include<cstring>
#include<string>
using namespace std;
int dp[][],a[];
int main()
{
int T,n,i,j,k,Case=;
scanf("%d",&T);
while(T--){
scanf("%d",&n);
for(i=;i<=n;i++) cin>>a[i];
for(i=;i<=n;i++) dp[i][i]=;
for(i=n-;i>=;i--){
for(j=i+;j<=n;j++){
dp[i][j]=dp[i+][j]+;
for(k=i+;k<=j;k++)
if(a[i]==a[k])
dp[i][j]=min(dp[i][j],dp[i+][k-]+dp[k][j]);
}
}
printf("Case %d: %d\n",++Case,dp[][n]);
}
return ;
}
POJ1651
#include<cstdio>
#include<cstdlib>
#include<iostream>
#include<algorithm>
#include<cstring>
#include<string>
using namespace std;
int dp[][],a[];
int main()
{
int T,n,i,j,k,Case=;
while(~scanf("%d",&n)){
memset(dp,,sizeof(dp));
for(i=;i<=n;i++) cin>>a[i];
for(i=n-;i>=;i--){
for(j=i+;j<=n;j++){
dp[i][j]=dp[i+][j]+a[i]*a[i+]*a[j];
for(k=i;k<=j;k++)
if(k>i&&k<j)
dp[i][j]=min(dp[i][j],dp[i][k]+dp[k][j]+a[k]*a[i]*a[j]);
}
}
printf("%d\n",dp[][n]);
}
return ;
}
POJ2955
#include<cstdio>
#include<cstdlib>
#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;
int _max(int x,int y){
if(x>y) return x;
return y;
}
int dp[][];
char a[];
int main()
{
int n,i,j,k;
while(scanf("%s",a+)){
if(a[]=='e') return ;
n=strlen(a+);
memset(dp,,sizeof(dp));
for(i=n-;i>=;i--){
for(j=i+;j<=n;j++){
dp[i][j]=dp[i+][j];
for(k=i+;k<=j;k++)
if((a[i]=='('&&a[k]==')')||(a[i]=='['&&a[k]==']'))
dp[i][j]=_max(dp[i][j],dp[i+][k-]+dp[k+][j]+);
}
}
printf("%d\n",dp[][n]);
}
return ;
}
POJ3661
#include<cstdio>
#include<iostream>
#include<cstring>
#include<algorithm>
using namespace std;
int dp[][];
int n,m,a[];
int main()
{
int i,j,k,ans;
while(scanf("%d%d",&n,&m)==){
for(i=;i<=n;i++) scanf("%d",&a[i]);
ans=;
memset(dp,,sizeof(dp));
for(i=;i<=n;i++){
dp[i][]=dp[i-][];
for(j=;j<=m;j++)
dp[i][j]=dp[i-][j-]+a[i];
for(k=;k<=min(m,i);k++)
dp[i][]=max(dp[i][],dp[i-k][k]);
}
printf("%d\n",dp[n][]);
}
return ;
}

区间DP的摸索的更多相关文章

  1. 【BZOJ-4380】Myjnie 区间DP

    4380: [POI2015]Myjnie Time Limit: 40 Sec  Memory Limit: 256 MBSec  Special JudgeSubmit: 162  Solved: ...

  2. 【POJ-1390】Blocks 区间DP

    Blocks Time Limit: 5000MS   Memory Limit: 65536K Total Submissions: 5252   Accepted: 2165 Descriptio ...

  3. 区间DP LightOJ 1422 Halloween Costumes

    http://lightoj.com/volume_showproblem.php?problem=1422 做的第一道区间DP的题目,试水. 参考解题报告: http://www.cnblogs.c ...

  4. BZOJ1055: [HAOI2008]玩具取名[区间DP]

    1055: [HAOI2008]玩具取名 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 1588  Solved: 925[Submit][Statu ...

  5. poj2955 Brackets (区间dp)

    题目链接:http://poj.org/problem?id=2955 题意:给定字符串 求括号匹配最多时的子串长度. 区间dp,状态转移方程: dp[i][j]=max ( dp[i][j] , 2 ...

  6. HDU5900 QSC and Master(区间DP + 最小费用最大流)

    题目 Source http://acm.hdu.edu.cn/showproblem.php?pid=5900 Description Every school has some legends, ...

  7. BZOJ 1260&UVa 4394 区间DP

    题意: 给一段字符串成段染色,问染成目标串最少次数. SOL: 区间DP... DP[i][j]表示从i染到j最小代价 转移:dp[i][j]=min(dp[i][j],dp[i+1][k]+dp[k ...

  8. 区间dp总结篇

    前言:这两天没有写什么题目,把前两周做的有些意思的背包题和最长递增.公共子序列写了个总结.反过去写总结,总能让自己有一番收获......就区间dp来说,一开始我完全不明白它是怎么应用的,甚至于看解题报 ...

  9. Uva 10891 经典博弈区间DP

    经典博弈区间DP 题目链接:https://uva.onlinejudge.org/external/108/p10891.pdf 题意: 给定n个数字,A和B可以从这串数字的两端任意选数字,一次只能 ...

随机推荐

  1. 解决FlexPaper分页分段加载问题(转)

    FlexPaper是一个开源的PDF文档在线查看控件.用户查看PDF文档不需要安装Acrobat Reader,但需要利用像SwfTools这样的工具预先将PDF文档转成SWF格式的文件.FlexPa ...

  2. Html常用标记总结

    超文本标记语言的结构包括“头”部分(英语:Head).和“主体”部分(英语:body),其中“头”部提供关于网页的信息,“主体”部分提供网页的具体内容. Web页面绝大多数都是由html所编写的. 一 ...

  3. composer方式安装thinkphp5,安装smarty

    转载地址: https://my.oschina.net/inuxor/blog/750717 composer 是 PHP 用来管理依赖(dependency)关系的工具.你可以在自己的项目中声明所 ...

  4. Vue学习笔记之计算属性和侦听器

    0x00 计算属性 模板内的表达式非常便利,但是设计它们的初衷是用于简单运算的.在模板中放入太多的逻辑会让模板过重且难以维护.例如: <div> {{ message.split(''). ...

  5. bzoj3629 / P4397 [JLOI2014]聪明的燕姿

    P4397 [JLOI2014]聪明的燕姿 根据唯一分解定理 $n=q_{1}^{p_{1}}*q_{2}^{p_{2}}*q_{3}^{p_{3}}*......*q_{m}^{p_{m}}$ 而$ ...

  6. Django:用户登录实例

    Django:用户登录实例 一.源代码 1,login.html代码(登录界面): <!DOCTYPE html> <html lang="zh-CN"> ...

  7. 解决com.mongodb.MongoException$CursorNotFound: cursor 0 not found on server

    背景 经常需要执行脚本调用Java程序读取mongodb中数据,本来是转为后台进程.偶尔看看日志的简单任务.今天发现程序抛出异常“com.mongodb.MongoException$CursorNo ...

  8. HDU 4272 LianLianKan (状压DP+DFS)题解

    思路: 用状压DP+DFS遍历查找是否可行.假设一个数为x,那么他最远可以消去的点为x+9,因为x+1~x+4都能被他前面的点消去,所以我们将2进制的范围设为2^10,用0表示已经消去,1表示没有消去 ...

  9. class文件的结构

    任何一个class文件都对应着唯一一个类或接口的定义信息,但反过来说,类或接口的定义信息并不一定都在文件里(比如类或接口也可以通过类加载器直接生成) class文件是一组以8位字节为基础单位的二进制流 ...

  10. mysql更改数据文件目录及my.ini位置

    步骤: 1.查找my.ini位置,可通过windows服务所对应mysql启动项,查看其对应属性->可执行文件路径,获取my.ini路径. "C:\MySQL\MySQL Server ...