P8256字符串 题解
考虑
记状态
不难发现
状态转移有
当
有
当
有
若
若
考虑优化:
因为可以通过
注意:当想思路清晰一些时,用记忆化搜索会比
上代码:
#include<bits/stdc++.h> using namespace std; const int N=405; const int mod=1e9+7; int T,n,m,len; char s[N],t[N]; int f[N][N][N]; int dfs(int wz,int gs,int st,int en) { if(wz>n) return gs==m&&!st&&!en; if(f[wz][gs][st]!=-1) return f[wz][gs][st]; long long res=0; if(s[wz]=='-') { if(st) res=(res+dfs(wz+1,gs,st-1,en))%mod; if(en) res=(res+dfs(wz+1,gs,st,en-1))%mod; } else { res=dfs(wz+1,gs,st,en+1)%mod; if(!gs&&!en) res=(res+dfs(wz+1,0,st+1,0))%mod; if(gs!=m&&s[wz]==t[gs+1]&&!en) res=(res+dfs(wz+1,gs+1,st,0))%mod; } return f[wz][gs][st]=res%mod; } int main() { scanf("%d",&T); while(T--) { memset(f,-1,sizeof f); scanf("%d %d %s %s",&n,&m,s+1,t+1); len=0; printf("%d\n",dfs(1,0,0,0)); } return 0; }
后记:真唐吧,两小时想不出这道题
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】