纯粹的dp,记录上面的左括号数,下面的左括号数,下面的右括号数

上面多出的右括号是一定不合法的,下面的多出的右括号一定在左括号左边,不然会被消掉

码:

#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
#define ll long long
ll f[55][55][55][55],ans;
int T,i,j,k,l,len;
char str[55];
int main()
{scanf("%d",&T);while(T--){ans=0;scanf("%s",str+1);memset(f,0,sizeof(f));len=strlen(str+1);f[0][0][0][0]=1;for(i=1;i<=len;i++){if(str[i]=='S'){for(j=0;j<=len;j++)//上面左括号 for(k=0;k<=len;k++)//下面左括号 for(l=0;l<=len;l++)//下面右括号 {if(!f[i-1][j][k][l])continue;//同的左括号 f[i][j+1][k+1][l]+=f[i-1][j][k][l];//同的右括号 if(j){if(k)f[i][j-1][k-1][l]+=f[i-1][j][k][l];else f[i][j-1][k][l+1]+=f[i-1][j][k][l];       }}              }else{for(j=0;j<=len;j++)//上面左括号 for(k=0;k<=len;k++)//下面左括号 for(l=0;l<=len;l++)//下面右括号 {//不同的左括号 if(!f[i-1][j][k][l])continue;if(k)    f[i][j+1][k-1][l]+=f[i-1][j][k][l];else f[i][j+1][k][l+1]+=f[i-1][j][k][l];//不同的右括号 if(j) f[i][j-1][k+1][l]+=f[i-1][j][k][l]; }               }}for(i=0;i<=len;i++){ans+=f[len][i][0][i];}       printf("%lld\n",ans);}
}

bzoj2461 [BeiJing2011]符环 dp相关推荐

  1. BZOJ_P2461 [BeiJing2011]符环(动态规划/记忆化搜索)

    BZOJ传送门 Time Limit: 20 Sec Memory Limit: 128 MB Submit: 113 Solved: 59 [Submit][Status][Discuss] Des ...

  2. bzoj 2461: [BeiJing2011]符环

    Description 在可以炼制魔力强大的法杖的同时,Magic Land 上的人们渐渐意识到,魔力强大并不一定能给人们带来好处--反而,由此产生的破坏性的高魔力释放,给整个大陆蒙上了恐怖的阴影. ...

  3. 【codevs2516】【BZOJ2461】符环,DP

    传送门1 传送门2 写在前面:爆〇 思路: (下面的组合数只是快速处理出全是'S'的情况,加快程序而已= =) 刚开始有5维DP的想法(怎么总比std多一维)但显然这是错误的,即使能做也会MLE 感觉 ...

  4. LOJ 2547 「JSOI2018」防御网络——思路+环DP

    题目:https://loj.ac/problem/2547 一条树边 cr->v 会被计算 ( n-siz[v] ) * siz[v] 次.一条环边会被计算几次呢?于是去写了斯坦纳树. #in ...

  5. 【HDU】5304 Eastest Magical Day Seep Group's Summer【环dp+生成树计数】

    传送门:[HDU]5304 Eastest Magical Day Seep Group's Summer my  code: my~~code: #include <bits/stdc++.h ...

  6. bzoj 乱刷计划 50/50

    前言 话说第一个板刷计划由于种种原因而告一段落了..其实那一版还有很多题想做,那就只能放一放了 附上效果图一张(几乎每一题都在我博客有题解): 打算 可以复习,重做自己做过的题,不局限于没做过的 乱刷 ...

  7. ZOJ 3329 One Person Game 带环的概率DP

    每次都和e[0]有关系 通过方程消去环 dp[i] = sigma(dp[i+k]*p)+dp[0]*p+1 dp[i] = a[i]*dp[0]+b[i] dp[i] = sigma(p*(a[i+ ...

  8. GMAC接口(3)——传输描述符

    描述符 以太网子系统中的DMA基于描述符的链表来传输数据.该应用程序将在系统内存中创建这些描述符. 支持以下两种类型的描述符: Normal descriptor Context descript ...

  9. e1000驱动收包描述符和skb

    Rx Desc Register是与接收描述符环有关的有4个寄存器: RDBA存放描述符缓冲的首地址,作为基地址共64位包括各32位的高低地址,  RDH和RDT是头尾指针,存放相对基址的偏移量,RD ...

最新文章

  1. DAY74-Django框架(五)
  2. 【HDU】4706 Children's Day(模拟)
  3. 找到表中某一列值相同的记录,而且只要其中一条记录的sql
  4. aud$定位错误用户密码登陆数据库的具体信息
  5. 6年,终拿腾讯 offer!
  6. linux 构建 无线网络 过程
  7. C# 监控字段_有哪些好的C#开源项目推荐?
  8. 认证鉴权与API权限控制在微服务架构中的设计与实现(一)
  9. php分页代码 页数太多,php分页函数示例代码分享
  10. html loader 路径,Webpack html-loader提取链接和脚本
  11. Linux多线程工作笔记0003---C语言中%p,%u,%lu都有什么用处
  12. LeetCode刷题(13)
  13. 项目按jar包方式部署
  14. JAVA线程池shutdown和shutdownNow的区别
  15. 如何在WPS2000中插入AutoCad图形文件(转)
  16. 浅谈“从神经网络——迁移学习引发的一系列的思考”
  17. 【最新】电脑常用装机软件组合 装机必备
  18. python爬虫爬取机床展名录
  19. Java开发基础(四)——dbutils的使用
  20. 《游戏系统设计三》游戏服务器线上出bug,怎么办?急,在线等!热更新

热门文章

  1. 魅族mx四核即将使用android,魅族MX四核智能手机发布
  2. Spark生态圈及安装
  3. 微服务与SpringCloud
  4. python目录名称无效怎么处理_Python目录和文件处理总结详解
  5. Sublime Merge Stage时提示系统找不到指定的文件
  6. chart控件删除最左边点_常见功能测试点的测试用例大全
  7. linux java amr转mp3_部署ffmpeg及amr转mp3方法
  8. linux php cpu,查找linux下进程占用CPU过高的原因,以php-fpm为例
  9. zsh 使用通配符功能
  10. 台式电脑键盘按键错乱_电脑键盘按键怕误触怎么办?用这款软件帮你屏蔽指定键盘按键!支持替换按键!...