hdu5791 TWO】的更多相关文章

hdu5791 dp[i][j]表示的是序列A前i个数字和序列B前j个数字的公共子序列的总个数,那么的dp公式就可以这么表示 理解一下此公式若最尾部的a[i]和b[j]相等的话,那么单独的a[i]和b[j]组成1个相同子序列. 同时我们可以想一下之前的前i-1个子序列和前j-i个子序列再加上a[i]又能组成dp[i-1]个公共子序列. 当然了,包含第i个数字的前i个序列a和前j-1个数字的序列b以及包含第j个数字的前j个序列b和前i-1个数字的序列a也要算上. 所以把上面3种情况一合并就是前i-…
hdu5791 TWO 题意 给你两个数串 问你两个数串有多少子串一致 子串不一定是连续的 解法 我们设 \(dp[i][j]\) 表示A串匹配到 i 位,B串匹配到 j 位,一致的子串数.那么我们有转移方程: \(dp[i][j]=dp[i-1][j]+dp[i][j-1]-dp[i-1][j-1]\) 而如果 \(a[i]==b[j]\) 的话,我们还要加上 \(dp[i-1][j-1] + 1\) .这样就完了. 代码 #include <iostream> #include <c…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5791 参考博客:https://blog.csdn.net/wuxuanyi27/article/details/52116674 Two Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 2815    Accepted Submission…
http://acm.hdu.edu.cn/showproblem.php?pid=5791 HDU5791 Two 题意 :两个数组,多少个不连续子串相等 思路: dp[i][j] :a串i结尾,b串j结尾的不连续子串数目个数 #include<cstdio> #include<cstring> #include<algorithm> #include<iostream> using namespace std; typedef long long ll;…