[BZOJ4350] 括号序列再战猪猪侠 题解
我们设 \(dp_{i,j}\) 表示第 \(i\) 到第 \(j\) 个括号合并为序列且最外层不是括号 \(i\) 的可能性,\(f_{i,j}\) 表示最外层是括号 \(i\) 的可能性。则有:
dp_{i,j}=\sum f_{i,k}(dp_{k+1,j}+f_{k+1,j})\\
f_{i,j}=dp_{i+1,j}+f_{i+1,j}
\end{cases}
\]
当然,并不是所有情况都能合并,所以需要维护 \(p_{i,j,k}\) 和 \(q_{i,j,k}\),表示 \(k\) 能否接在 \(i\) 到 \(j\) 的左侧/包住 \(i\) 到 \(j\)。
时间、空间复杂度均为 \(O(n^3)\)。
#include<bits/stdc++.h>
#define ll long long
using namespace std;
const int N=305,md=998244353;
int t,n,m,f[N][N],dp[N][N];
int p[N][N][N],q[N][N][N];
void solve(){
memset(dp,0,sizeof(dp));
memset(f,0,sizeof(f));
memset(p,0,sizeof(p));
memset(q,0,sizeof(q));
cin>>n>>m;
int flag=0;
while(m--){
int x,y;cin>>x>>y;
if(x==y||flag){
flag=1;
continue;
}if(x<y) q[y][y][x]=1;
else p[x][x][y]=1;
}if(flag){
cout<<"0\n";
return;
}for(int i=1;i<=n;i++)
f[i][i]=1;
for(int ln=2;ln<=n;ln++)
for(int i=1,j=ln;j<=n;i++,j++)
for(int k=1;k<=n;k++){
p[i][j][k]|=p[i+1][j][k]|p[i][i][k];
q[i][j][k]|=q[i+1][j][k]|q[i][i][k];
}
for(int i=1;i<=n;i++)
for(int j=i;j<=n;j++)
for(int k=1;k<=n;k++)
p[i][j][k]+=p[i][j][k-1];
for(int ln=2;ln<=n;ln++)
for(int i=1,j=ln;j<=n;i++,j++){
for(int k=i;k<j;k++){
if(p[k+1][j][k]-p[k+1][j][i-1]) continue;
if(p[i][k][j]-p[i][k][k]) continue;
dp[i][j]=(dp[i][j]+(ll)f[i][k]*(dp[k+1][j]+f[k+1][j])%md)%md;
}if(!q[i+1][j][i]) f[i][j]=(f[i+1][j]+dp[i+1][j])%md;
}
cout<<(dp[1][n]+f[1][n])%md<<"\n";
}int main(){
ios::sync_with_stdio(0);
cin.tie(0);cout.tie(0);
cin>>t;
while(t--) solve();
return 0;
}
[BZOJ4350] 括号序列再战猪猪侠 题解的更多相关文章
- [BZOJ 4350]括号序列再战猪猪侠 题解(区间DP)
[BZOJ 4350]括号序列再战猪猪侠 Description 括号序列与猪猪侠又大战了起来. 众所周知,括号序列是一个只有(和)组成的序列,我们称一个括号 序列S合法,当且仅当: 1.( )是一个 ...
- BZOJ4350: 括号序列再战猪猪侠
Description 括号序列与猪猪侠又大战了起来. 众所周知,括号序列是一个只有(和)组成的序列,我们称一个括号 序列S合法,当且仅当: 1.( )是一个合法的括号序列. 2.若A是合法的括号序列 ...
- BZOJ4350: 括号序列再战猪猪侠【区间DP】
Description 括号序列与猪猪侠又大战了起来. 众所周知,括号序列是一个只有(和)组成的序列,我们称一个括号序列S合法,当且仅当: 1.( )是一个合法的括号序列. 2.若A是合法的括号序列, ...
- 2018.10.25 bzoj4350: 括号序列再战猪猪侠(区间dp)
传送门 区间dp好题. 首先我们并不用把右括号拿进来一起dpdpdp,而是直接用左括号来dpdpdp. 然后定义状态fi,jf_{i,j}fi,j表示区间[l,r][l,r][l,r]的合法方案数. ...
- 【BZOJ】1095: [ZJOI2007]Hide 捉迷藏 括号序列+线段树
[题目]BZOJ 1095 [题意]给定n个黑白点的树,初始全为黑点,Q次操作翻转一个点的颜色,或询问最远的两个黑点的距离,\(n \leq 10^5,Q \leq 5*10^5\). [算法]括号序 ...
- 【UR #2】猪猪侠再战括号序列 题解
题目链接 前言 是的没脑子选手只会做签到题. 思路分析 一开始把题目看成反转括号的状态,直接浪费 \(40\ mins\) . 我们考虑把不确定的"正确括号"转换成一个固定的括号序 ...
- uoj #31. 【UR #2】猪猪侠再战括号序列 贪心
#31. [UR #2]猪猪侠再战括号序列 Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://uoj.ac/problem/31 Descript ...
- 学长小清新题表之UOJ 31.猪猪侠再战括号序列
学长小清新题表之UOJ 31.猪猪侠再战括号序列 题目描述 大家好我是来自百度贴吧的_叫我猪猪侠,英文名叫\(\_CallMeGGBond\). 我不曾上过大学,但这不影响我对离散数学.复杂性分析等领 ...
- UOJ#31 【UR #2】猪猪侠再战括号序列
传送门http://uoj.ac/problem/31 大家好我是来自百度贴吧的_叫我猪猪侠,英文名叫_CallMeGGBond. 我不曾上过大学,但这不影响我对离散数学.复杂性分析等领域的兴趣:尤其 ...
- uoj problem 31 猪猪侠再战括号序列
题目大意: 给定一个长度为2n的括号序列.定义一个关于区间[l,r]的翻转操作为位置平移对调. 即翻转")))()("可以得到"()()))((" 用不超过n次 ...
随机推荐
- qiankun 的 JS 沙箱隔离机制
为什么需要JS沙箱 想象一下 当一个应用(比如应用 A)加载时,可能会对 window 对象的属性进行修改或添加.如果不加控制,这些修改会影响到之后加载的其他应用(比如应用 B),就会导致属性读写冲突 ...
- pg_index
在pg11之后,引入了indnkeyatts字段,根据官方文档解释其作用:The number of key columns in the index, not counting any includ ...
- uni-app在微信小程序端自定义组件中样式穿透失效
前情 uni-app是我比较喜欢的跨平台框架,它能开发小程序/H5/APP(安卓/iOS),重要的是对前端开发友好,自带的IDE让开发体验非常棒,公司项目就是主推uni-app. 坑位 最近因UI有别 ...
- 用nginx正向代理,让内网主机通过外网主机访问外网
需求1:某几个ip的代理 server { listen 9000; # 监听端口 server_name localhost; set $url "proxy_server_doman_o ...
- 清理docker logs
1,docker ps找到id [root@mysql3 /]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 1d8 ...
- 打破格式壁垒 !COS助力腾讯文档优化在线预览效果
说起腾讯文档,相信大家对此并不陌生.在新冠疫情防控期间,腾讯文档在人员流动排查.健康信息收集.居家学习.协同办公等场景发挥了巨大的作用. 腾讯文档不仅支持新建word.excel.ppt.思维导图.流 ...
- 扩容ext4分区容量16TB限制
#扩容ext4分区容量16TB限制 环境: 系统 ubuntu 16 resize2fs 1.42.13 (17-May-2015) 使用resize2fs扩容时如下提示 resize2fs /dev ...
- 谈谈区块链(18):以太坊的UTXO
https://www.8btc.com/article/117510 本来并没有计划写这篇文章,只是这两天微信里有一篇文章传播的比较厉害,叫:<其实并没有什么比特币,只有UTXO>.其中 ...
- Windows10 Linux子系统安装图形化界面的两种方法及其对比
理论上讲,所有Win10的Linux子系统都可以通过Windows10本机远程桌面和Xming的方法来安装使用图形化界面,笔者目前只接触了Debian系的Linux系统,故以Debian GNU/Li ...
- Qt/C++视频监控Onvif工具/组播搜索/显示监控画面/图片参数调节/OSD管理/祖传原创
一.前言 能够写出简单易用而又不失功能强大的组件,一直是我的追求,简单主要体现在易用性,不能搞一些繁琐的流程和一些极难使用的API接口,或者一些看不懂的很难以理解的函数名称,一定是要越简单越好.功能强 ...