尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

CF1015F Bracket Substring - crazy-

CF1015F Bracket Substring - crazy-
📅 发布时间:2026/6/19 19:23:40

前缀函数,dp

题意

给定括号序列 \(s\),和正整数 \(n\),求出有多少个长度为 \(2n\) 的合法括号序列包含子串 \(s\)。

\(1 \le n \le 100\),\(s\)(\(1 \le |s| \le 200\),答案对 \(10^9+7\) 取模。

题解

套路的将左括号设为 \(1\),右括号设为 \(-1\)。

设 \(dp_{i,j,k}\) 表示前 \(i\) 个数,当前的和为 \(j\),匹配了 \(s\) 中的 \(k\) 位,暴力转移即可。

注意,若失配,需要从 \(s\) 中当前位置的前缀函数处继续匹配,否则可能出现重复。

同时,钦定 \(k=|s|\) 的前缀函数为 \(|s|\),同样是为了避免重复。

需要从前往后转移,更方便。

代码

#include<bits/stdc++.h>
#define int long long
using namespace std;
const int mod=1e9+7;
int n,len,ans;
char c[410];
int dp[210][210][210];
int g[210][3],pi[210];
void init()
{int j=pi[1]=0;for(int i=2;i<=len;i++){while(j && c[j+1]!=c[i]) j=pi[j];if(c[j+1]==c[i]) j++;pi[i]=j;}for(int i=0;i<len;i++){int k,p; k=p=i;while(k && c[k+1]!='(') k=pi[k];while(p && c[p+1]!=')') p=pi[p];if(c[k+1]=='(') k++;if(c[p+1]==')') p++;g[i][0]=k; g[i][1]=p;}g[len][0]=g[len][1]=len;
}
signed main()
{cin>>n>>(c+1);len=strlen(c+1);n*=2; init();dp[0][0][0]=1;for(int i=0;i<n;i++){for(int j=0;j<=n;j++){for(int k=0;k<=len;k++){if(j) dp[i+1][j-1][g[k][1]]+=dp[i][j][k],dp[i+1][j-1][g[k][1]]%=mod;dp[i+1][j+1][g[k][0]]+=dp[i][j][k],dp[i+1][j+1][g[k][0]]%=mod;}}}cout<<dp[n][0][len];return 0;
}

相关新闻

  • TikTok商品视频发布太耗时?影刀RPA一键智能发布,效率飙升12倍![特殊字符]
  • SpringBoot 缓存深入
  • 服务架构相关知识及演进

最新新闻

  • 逆向工程实战:从MessageBox错误提示到序列号破解全流程解析
  • 2026年主流川味凉拌菜红油商用品牌实力测评与选型指南 - 麻辣烫酱料
  • 2026扬州大宅木作避坑指南:认准爱格可丽芙双授权定制品牌 - 设计本
  • 2026年6月宁波生成式引擎GEO优化服务商技术实力解析 - 起跑123
  • 2026 年南通市厨卫屋顶防水修缮三家对比测评 吉修匠 99.8 分稳居榜首 - 吉修匠
  • 表主必存!2026年宝玑官方售后中心实地体核验报告:全国网点最新地址、电话同步升级启用 - 亨得利中国服务中心

日新闻

  • 信任的进化:技术实现详解——如何用JavaScript构建博弈论模拟器
  • Terrakube自定义工作流:如何集成OPA、Infracost等工具扩展IaC能力
  • grunt-concurrent快速入门:5分钟学会并行运行Grunt任务

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号