[BZOJ2461][BeiJing2011]符环(记忆化搜索)
来源:互联网 发布:会计应对大数据时代 编辑:程序博客网 时间:2024/06/13 18:22
题目描述
传送门
题解
记忆化搜索,表示完全想不到。
当时暴力能打出表来还是很开心的。
谁知道打表。。。
诶~
状态可以表示为:now是当前的字符,x为now左边有多少个’(‘,y为now右边有多少个’)‘,z为now右边有多少个’(’,它们都没有匹配。
然后根据当前字符的不同,分别有两种可能性,然后记搜即可以了。
代码
#include<iostream>#include<cstring>#include<cstdio>using namespace std;#define LL long longconst int max_n=55;int t,n;char s[max_n];LL f[max_n][max_n][max_n][max_n];LL dfs(int now,int x,int y,int z){ if (now==n+1) return z==0&&x==y; LL &w=f[now][x][y][z]; if (w!=-1) return w; w=0; if (s[now]=='S'){ w+=dfs(now+1,x+1,y,z+1); if (x){ if (z) w+=dfs(now+1,x-1,y,z-1); else w+=dfs(now+1,x-1,y+1,z); } } if (s[now]=='D'){ if (x) w+=dfs(now+1,x-1,y,z+1); if (z) w+=dfs(now+1,x+1,y,z-1); else w+=dfs(now+1,x+1,y+1,z); } return w;}int main(){ scanf("%d",&t); while (t--){ memset(f,-1,sizeof(f)); scanf("%s",s+1); n=strlen(s+1); printf("%lld\n",dfs(1,0,0,0)); }}
总结
好久不打dp手都生了啊!
0 0
- [BZOJ2461][BeiJing2011]符环(记忆化搜索)
- BZOJ_P2461 [BeiJing2011]符环(动态规划/记忆化搜索)
- 【bzoj 2461】[BeiJing2011]符环(高维dp+记忆化搜索)
- 【codevs2516】【BZOJ2461】符环,DP
- hdu_p1078(记忆化搜索)
- WOJ(记忆化搜索)
- 滑雪 (记忆化搜索)
- hihocoder1037(记忆化搜索)
- hdu1078 (记忆化搜索)
- HDU3555Bomb(记忆化搜索)
- uva10626(记忆化搜索)
- *hdu1078(记忆化搜索)
- 滑雪(记忆化搜索)
- poj1088(记忆化搜索)
- hdu1069(*记忆化搜索)
- poj3186(记忆化搜索)
- uva1637(记忆化搜索)
- hdu5456(记忆化搜索)
- sublime text在ubuntu平台下的中文输入问题及解决
- Flex+BlazeDS+IntelliJ IDEA整合开发系列一之起步demo
- 【解题报告】Codeforces Round #303 (Div. 2)
- 08-maven同时下载源码
- 解决安卓TextView高度和textSize大小不一致问题 - 木杉是天才
- [BZOJ2461][BeiJing2011]符环(记忆化搜索)
- LeetCode之4---Median of Two Sorted Arrays
- 把自己电脑变成FTP服务器~~
- 【C++ Primer plus】【第九章】内存模型和名称空间
- 实现无锁的栈与队列
- Eclipse环境下配置spket中ExtJS提示(针对无提示和提示错误)
- Struts2 转换器 和 拦截器
- Android如何保证一个线程最多只能有一个Looper?
- 读取Android sd卡的文件