博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
CodeForces 163A Substring and Subsequence
阅读量:5220 次
发布时间:2019-06-14

本文共 722 字,大约阅读时间需要 2 分钟。

题意:求a串的子串与b串的子序列有多少个相匹配,mod=1e9+7;

思路:类似于LCS,如果会LCS的话就很容易(但是我没想通LCS的方程是怎么的来的)

代码:

#include 
using namespace std;const int maxn=5005;const int MOD=1e9+7;char a[maxn],b[maxn];int dp[maxn][maxn];int main(){ while(~scanf("%s%s",a+1,b+1)){ int lena=strlen(a+1); int lenb=strlen(b+1); memset(dp,0,sizeof(dp)); long long ans=0; for(int i=1;i<=lena;i++){ for(int j=1;j<=lenb;j++){ if(a[i]==b[j])dp[i][j]=(dp[i][j]+dp[i-1][j-1]+1)%MOD; dp[i][j]=(dp[i][j]+dp[i][j-1])%MOD; } ans=(ans+dp[i][lenb])%MOD; } printf("%lld\n",ans); } return 0;}

 

转载于:https://www.cnblogs.com/lalalatianlalu/p/8451862.html

你可能感兴趣的文章
Visual C++ Clipboard 剪切板操作
查看>>
3月14日-15日学习总结
查看>>
关于 ++x 和 x++ 比较难的一个例子
查看>>
第三次作业 105032014021
查看>>
记录一些容易忘记的属性 -- UILabel
查看>>
android新手关于左右滑动的问题,布局把<android.support.v4.view.ViewPager/><ImageView/> 放在上面就不行了。...
查看>>
人脸识别FaceNet+TensorFlow
查看>>
STL之map UVa156
查看>>
从Angular.JS菜鸟到专家
查看>>
再谈Vmware NAT的配置和路由流程
查看>>
javaScript数组去重方法汇总
查看>>
评价意见整合
查看>>
MySQL表的四种分区类型
查看>>
C++变量的“总分性”(Mereology)
查看>>
应用软件学习心得之mapgis功能学习
查看>>
二、create-react-app自定义配置
查看>>
Android PullToRefreshExpandableListView的点击事件
查看>>
JS之放大镜效果
查看>>
基于UML网络教学管理平台模型的搭建
查看>>
不同的色深条件(8、16、24、32),像素绘制方式
查看>>