POJ 2955(区间dp)
来源:互联网 发布:dnf刷图老是网络中断 编辑:程序博客网 时间:2024/05/16 04:53
//简单区间DP
//题意: 给你一串括号 问你最多有几个可以匹配
// dp[i][j]表示从i到j 最多可以匹配的括号数
// dp[i][j]=max(dp[i][j],dp[i+1][k-1]+dp[k+1][j]+2)(str[i]与str[k]可以匹配)
#include<stdio.h>
#include<string.h>
#define N 110
#define max(a,b) a>b?a:b;
int dp[N][N];
char str[N];
int len;
void Dp()
{
int i,j,k;
for(i=len-1;i>=0;i--)
{
for(j=i+1;j<=len-1;j++)
{
dp[i][j]=dp[i+1][j];
for(k=i+1;k<=j;k++)
if(str[i]=='('&&str[k]==')'||str[i]=='['&&str[k]==']')
dp[i][j]=max(dp[i][j],dp[i+1][k-1]+dp[k+1][j]+2);
}
}
}
int main()
{
while(gets(str),strcmp(str,"end"))
{
len=strlen(str);
memset(dp,0,sizeof(dp));
Dp();
printf("%d\n",dp[0][len-1]);
}
}
//题意: 给你一串括号 问你最多有几个可以匹配
// dp[i][j]表示从i到j 最多可以匹配的括号数
// dp[i][j]=max(dp[i][j],dp[i+1][k-1]+dp[k+1][j]+2)(str[i]与str[k]可以匹配)
#include<stdio.h>
#include<string.h>
#define N 110
#define max(a,b) a>b?a:b;
int dp[N][N];
char str[N];
int len;
void Dp()
{
int i,j,k;
for(i=len-1;i>=0;i--)
{
for(j=i+1;j<=len-1;j++)
{
dp[i][j]=dp[i+1][j];
for(k=i+1;k<=j;k++)
if(str[i]=='('&&str[k]==')'||str[i]=='['&&str[k]==']')
dp[i][j]=max(dp[i][j],dp[i+1][k-1]+dp[k+1][j]+2);
}
}
}
int main()
{
while(gets(str),strcmp(str,"end"))
{
len=strlen(str);
memset(dp,0,sizeof(dp));
Dp();
printf("%d\n",dp[0][len-1]);
}
}
- POJ 2955(区间dp)
- POJ 2955 (区间dp)
- poj 2955 区间DP
- poj 2955(区间DP)
- POJ 2955 区间dp
- POJ 2955 区间DP
- POJ 2955 区间DP
- poj 2955 区间dp
- poj 2955 区间dp
- POJ 2955(区间DP)
- poj 2955【区间dp】
- POJ 2955 区间dp
- POJ-2955(区间DP)
- Brackets(poj-2955)(区间dp)
- POJ 2955-Brackets(区间DP)
- poj 2955 Brackets(区间DP)
- POJ 题目2955 Brackets(区间dp)
- poj 2955 Brackets(区间dp)
- QT线程调用界面函数
- 使用vs2012配置opencv编译出现问题:error C4996: 'fopen': This function or variable may be unsafe.
- nodejs学习资料
- json 总结
- 解决Attempt to execute SCRIPT mexLasso as a function
- POJ 2955(区间dp)
- 四元数
- 【多维分析系列】大数据下的数据分析:Hadoop架构解析
- STL中的set容器的一点总结
- 库克发出正能量:让员工与家人共度佳节更重要
- 毕业后的五年拉开大家差距的原因在哪里
- Ogre3D嵌入Qt框架
- jquery异步上传
- C# 时钟设计