经典问题之合法括号序列
来源:互联网 发布:车刀角度测量实验数据 编辑:程序博客网 时间:2024/06/14 00:13
题目描述:
给出n,表示在2*n个空位上填(或),使得整个序列是合法的。问总共有多少种方案。
分析:
显然裸裸的搜索是可以的,但是效率比较低。
如果我们定义状态f[i][j],表示前i个空位,还需j个)就是合法序列的方案数。那么就很简单了,f[i][j]=f[i-1][j-1]+f[i-1][j+1]。
参考程序:
#include<cstdio>#include<algorithm>#include<cstring>using namespace std;const int maxn=110;long long f[maxn][maxn];bool a[maxn];int n,m;int main(){scanf("%d%d",&n,&m);memset(a,0,sizeof(a));for (int i=0;i<m;i++){int x;scanf("%d",&x);a[x]=1;}f[0][0]=1;for (int i=1;i<=2*n;i++)for (int j=0;j<=n;j++)if (a[i]){if (!j)f[i][j]+=f[i-1][j-1];}else{if (j)f[i][j]+=f[i-1][j-1];if (j<n)f[i][j]+=f[i-1][j+1];}printf("%lld",f[2*n][0]);return 0;}这里a表示这个地方是否限制必须填(。
0 0
- 经典问题之合法括号序列
- 最长合法括号序列
- 合法括号序列判断
- 合法括号序列判断
- 合法括号序列判断
- 合法括号序列判断
- 合法的括号序列
- 九度笔记之 1342:寻找最长合法括号序列II(25分)-给括号当红娘,解决最长合法字符串问题
- 九度笔记之 1337:寻找最长合法括号序列
- 合法括号序列判断练习
- 20.Valid Parentheses&合法括号序列判断
- [牛客]合法括号序列判断练习题
- 字符串11:合法括号序列判断练习题
- 括号序列的最长合法子段
- 递推之合法序列
- 括号序列问题
- 括号序列匹配问题
- 括号序列配对问题
- stressmark压力测试
- iOS---基本的UI控件
- 基于.NET平台的分层架构实战(四)——实体类的设计与实现
- 西安翼迅网络的破解尝试
- spring4 下jackson的配置
- 经典问题之合法括号序列
- spring与mybatis三种整合方法
- 告诉你,你的应用需要隐藏图标,你该怎么做
- 基于.NET平台的分层架构实战(五)——接口的设计与实现
- new操作符
- sort()方法
- 如何在新版本的万能地图下载器内切换地图
- 面向开发者的最佳 Android 库列表,总有一款适合你(有自定义相机的部分)
- 我的服务器开发之路-域名绑定