题解 CF149D
首先,这是一道区间dp题;
首先我们假设 \(l\) ~ \(r\) 是一段合法的区间;
考虑状态,对于一个区间 \(l\) ~ \(r\) 的方案数,我们需要知道方案数,以及 \(l ,r\) 未知的两个半括号的颜色;
所以设 \(f[l][r][i][j]\) 表示 \(l\) ~ \(r\) 区间 \(l\) 位置颜色为 \(i\) , \(r\) 位置颜色为 \(j\) 的方案数;
考虑三种情况 :
1,\(r=l+1\), 也就是只有一对括号,那么:
\(f[l][r][0][1]=f[l][r][0][2]=f[l][r][1][0]=f[l][r][2][0]=1\)
2, \(p[l]==r\) 表示 \(l\) 与 \(r\) 匹配,那么:
if(j!=1) f[l][r][0][1]=(1LL*f[l][r][0][1]+f[l+1][r-1][i][j]%mod)%mod;
if(i!=1) f[l][r][1][0]=(1LL*f[l][r][1][0]+f[l+1][r-1][i][j]%mod)%mod;
if(j!=2) f[l][r][0][2]=(1LL*f[l][r][0][2]+f[l+1][r-1][i][j]%mod)%mod;
if(i!=2) f[l][r][2][0]=(1LL*f[l][r][2][0]+f[l+1][r-1][i][j]%mod)%mod;
3, \(p[l] != r\) 那么:
for(int i=0;i<=2;i++){
for(int j=0;j<=2;j++){
for(int x=0;x<=2;x++){
for(int y=0;y<=2;y++){
if((x==1&&j==1)||(x==2&&j==2)) continue;
f[l][r][i][y]=(1LL*f[l][r][i][y]+1LL*f[l][p[l]][i][j]*f[p[l]+1][r][x][y]%mod)%mod;
}
}
}
}
题解 CF149D的更多相关文章
- CF149D Coloring Brackets
CF149D Coloring Brackets Link 题面: 给出一个配对的括号序列(如"\((())()\)"."\(()\)"等, "\() ...
- 2016 华南师大ACM校赛 SCNUCPC 非官方题解
我要举报本次校赛出题人的消极出题!!! 官方题解请戳:http://3.scnuacm2015.sinaapp.com/?p=89(其实就是一堆代码没有题解) A. 树链剖分数据结构板题 题目大意:我 ...
- noip2016十连测题解
以下代码为了阅读方便,省去以下头文件: #include <iostream> #include <stdio.h> #include <math.h> #incl ...
- BZOJ-2561-最小生成树 题解(最小割)
2561: 最小生成树(题解) Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 1628 Solved: 786 传送门:http://www.lyd ...
- Codeforces Round #353 (Div. 2) ABCDE 题解 python
Problems # Name A Infinite Sequence standard input/output 1 s, 256 MB x3509 B Restoring P ...
- 哈尔滨理工大学ACM全国邀请赛(网络同步赛)题解
题目链接 提交连接:http://acm-software.hrbust.edu.cn/problemset.php?page=5 1470-1482 只做出来四道比较水的题目,还需要加强中等题的训练 ...
- 2016ACM青岛区域赛题解
A.Relic Discovery_hdu5982 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Jav ...
- poj1399 hoj1037 Direct Visibility 题解 (宽搜)
http://poj.org/problem?id=1399 http://acm.hit.edu.cn/hoj/problem/view?id=1037 题意: 在一个最多200*200的minec ...
- 网络流n题 题解
学会了网络流,就经常闲的没事儿刷网络流--于是乎来一发题解. 1. COGS2093 花园的守护之神 题意:给定一个带权无向图,问至少删除多少条边才能使得s-t最短路的长度变长. 用Dijkstra或 ...
随机推荐
- 【Android】Scrollview返回顶部,快速返回顶部的功能实现,详解代码。
作者:程序员小冰,GitHub主页:https://github.com/QQ986945193 新浪微博:http://weibo.com/mcxiaobing 首先给大家看一下我们今天这个最终实现 ...
- 洛谷 P3177 [HAOI2015]树上染色 树形DP
洛谷 P3177 [HAOI2015]树上染色 树形DP 题目描述 有一棵点数为 \(n\) 的树,树边有边权.给你一个在 \(0 \sim n\)之内的正整数 \(k\) ,你要在这棵树中选择 \( ...
- Linux:用户账号、密码、群组、群组密码文件查看
使用者账号密码存放文件:/etc/passwd, /etc/shadow 虽然我们登入 Linux 主机的时候,输入的是我们的账号,但是,其实 Linux 主机并不会直接认识你的『账 号名称』的,他仅 ...
- Idiomatic Phrases Game(最短路+注意坑点)
Tom is playing a game called Idiomatic Phrases Game. An idiom consists of several Chinese characters ...
- A+B in Hogwarts (20)(模拟)
时间限制 1000 ms 内存限制 65536 KB 代码长度限制 100 KB 判断程序 Standard (来自 小小) 题目描述 If you are a fan of Harry Potter ...
- 下拉列表被flash覆盖的解决方法
做鼎闻有一段时间了,有的banner轮播图的地方用flash替换的时候,就会导致上面的导航条下拉列表被flash覆盖,找了一段时间没有得到有效的解决方法,后来知道关键是flash的这一属性{ &quo ...
- Agumaster 改善了pagination
页面越来越完善了.
- SpringBoot版不需要配置文件注解获取当前登录用户
本文讯(2019年3月30日 飞快的蜗牛博客) 我是一个懒人,很久不写博客,想起来看到也不一定会写,只有心血来潮的时候写写,"钱塘江上潮信来,今日方知我是我"...... 空杯 ...
- 深入理解xLua热更新原理
热更新简介 热更新是指在不需要重新编译打包游戏的情况下,在线更新游戏中的一些非核心代码和资源,比如活动运营和打补丁.热更新分为资源热更新和代码热更新两种,代码热更新实际上也是把代码当成资源的一种热更新 ...
- dom:文档对象模型,提供的api去操作页面上的元素
dom对象通过html标签转义成了文档操作对象