codeforces 163A Substring and Subsequence (dp,最长公共子串变形)
来源:互联网 发布:mac切换中英文输入 编辑:程序博客网 时间:2024/05/17 00:07
题意:
给出两个串,问a的连续子串和b的子串(可以不连续)相同的个数。
题解:
dp[i][j]前i个a的字母和前j个b的字母相同子串个数。
#include<iostream>#include<math.h>#include<stdio.h>#include<algorithm>#include<string.h>#include<vector>#include<map>using namespace std;typedef long long lld;const int oo=0x3f3f3f3f;const lld OO=1e18;const int Mod=1000000007;const int maxn=5005;lld dp[maxn][maxn];char s1[maxn],s2[maxn];int main(){ int n,m; lld ans; while(scanf("%s%s",s1+1,s2+1)!=EOF) { n=strlen(s1+1);m=strlen(s2+1); memset(dp,0,sizeof dp); for(int i=1;i<=n;i++) { for(int j=1;j<=m;j++) { if(s1[i]==s2[j]) dp[i][j]=(dp[i][j]+dp[i][j-1]+dp[i-1][j-1]+1+Mod)%Mod; else dp[i][j]=dp[i][j-1]; } } ans=0; for(int i=1;i<=n;i++) ans=(ans+dp[i][m]+Mod)%Mod; printf("%I64d\n",ans); } return 0;}
0 0
- codeforces 163A Substring and Subsequence (dp,最长公共子串变形)
- codeforces 163A A. Substring and Subsequence(dp)
- CodeForces 163A - Substring and Subsequence 类LCS的DP
- CodeForces 163A Substring and Subsequence(DP)
- HDU-1159 Common Subsequence (线性dp 最长公共子串)
- 最长上升子序列 最长公共子序列 最长公共子串 数字三角形 等简单DP以及变形
- UVA-11404-Palindromic Subsequence(最长公共子序列变形)
- CF 163 A Substring and Subsequence(dp)
- POJ_1458_Common Subsequence(最长公共子串)
- 最长公共子串 Longest Common Subsequence
- hdu1159 Common Subsequence 最长公共子串
- poj 1080 最长公共子串变形
- poj 3356 最长公共子串变形
- TOJ 1683 Common Subsequence 最长公共子序列 依然DP
- hdu 1159 Common Subsequence(DP最长公共子序列)
- hdu1159 - Common Subsequence (dp 最长公共子序列问题)
- 最长公共子序列DP Common Subsequence HDU 1159
- poj 1458 Common Subsequence dp 最长公共子序列
- android 释放webview内存
- 高斯平滑 高斯模糊 高斯滤波器 ( Gaussian Smoothing, Gaussian Blur, Gaussian Filter ) C++ 实现
- jQuery添加的HTML,JS失效的问题。
- java利用ffmpeg将amr、caf转mp3格式
- MyEclipse编译后,classes文件夹下为空
- codeforces 163A Substring and Subsequence (dp,最长公共子串变形)
- Ubuntu下安装Sublime Text
- 最短路径—Dijkstra算法和Floyd算法
- Windows平台网站图片服务器架构的演进
- Python 3.2 字符串方法学习总结
- 解决UITableView和UITableViewCell手势冲突的问题
- POJ 2392 Space Elevator
- Android解析XML文件
- erlang