首页 > 其他分享 >BSOJ7075题解

BSOJ7075题解

时间:2022-10-24 18:22:31浏览次数:53  
标签:匹配 题解 BSOJ7075 DP 自动机 dp

感觉这一类 DP 至少不应该被叫做“LCS模型”,本质应该是其他的东西......

先来考虑经典的 LCS:\(dp[n][m]\) 表示 \(S[n]\) 和 \(T[m]\) 匹配上的最长的长度。

那么我们不妨这样子考虑:假设有两个子序列自动机,一个是 \(S\) 的,另一个是 \(T\)的。

那么这玩意儿就能够解释成“最长的能够在两个自动机上都匹配得上的串的长度”。

看到这个题,这道题能够更好地解释这玩意儿。

\(dp[n][m]\) 表示 \(S[n]\) 和 \(T[m]\) 能否匹配得上。

那么我们对 \(S\) 和 \(T\) 可以根据新定义的“匹配”建立自动机,然后这个 DP 的本质就和上述一致了。

那么,根据“匹配”的规则转移即可,复杂度 \(O(m\sum|s_i|)\) 可以通过。

标签:匹配,题解,BSOJ7075,DP,自动机,dp
From: https://www.cnblogs.com/lmpp/p/16822350.html

相关文章

  • GCJ 2017 R2 题解(待续)
    ProblemA.FreshChocolateProblemYouarethepublicrelationsmanagerforachocolatemanufacturer.Unfortunately,thecompany’simagehassufferedbecausecus......
  • 北方大学 ACM 多校训练赛 第四场 题解
    A.恶魔包毁灭世界已知一张二分图,问哪些边是二分图的可行边?先跑最小流,再把残余网络建图,几个重要结论是:·最小割的可行边(满流&&2点不在一个SCC中)·最小割的必行边(可行......
  • GCJ Qualification Round 2017 题解(部分)
    OversizedPancakeFlipper#include<bits/stdc++.h>usingnamespacestd;#define#define#define#define#define#define#define#define#define#define#define#define#define#......
  • 长安大学第二届ACM程序设计竞赛校赛 题解
    ACountCircles描述StupidAguinfeelsconfusedwhilereading.Thebookshowsfollowingequations:6=9,8=1010,144=75,690=801StupidAguindoesn’tknow......
  • GCJ Round 1A 2017 题解
    AAlphabetCake给一个R*C矩阵,里面有大写字母和?(大写字母每个最多出现一次),用矩阵中出现的大写字母填满矩阵,要求每个字母出现的区域都恰为一子矩阵。直接把每个字母向行延展......
  • ASC 04 题解
    A求最小割方案是否唯一#include<iostream>#include<cmath>#include<algorithm>#include<cstdio>#include<cstring>#include<string>#include<vector>#include<map>#......
  • hihoCoder挑战赛31 题解
    题目1:Numbers时间限制:8000ms单点时限:1000ms内存限制:256MB描述给定n个整数常数c[1],c[2],…,c[n]和一个整数k。现在需要给2k个整数变量x[1],x[2],…,x[k......
  • Codeforces Round #450 (Div. 2) 题解
    A#include<bits/stdc++.h>usingnamespacestd;#define#define#define#define#define#define#define#define#define#define#define#define#define#define#define#define#de......
  • 绍大2022级ACM集训队新生选拔赛题解(更新中)
    绍大2022级ACM集训队新生选拔赛题解(更新中)  A.Honest大致题意在一个n*n的矩阵统计“honest”这个单词的个数。基本思路本题是签到题,只要用二维数组读入字符矩阵......
  • Codeforces Round #829 (Div. 1/Div. 2) 1753 A B C D 题解
    Div1A/2C.MakeNonzeroSum令最后每个\(a_i\)的系数为\(c_i\)(\(c_i=1/-1\)),发现只要满足\(c_1=1\)(下标从1开始),且c中没有两个-1相连,就一定能找出一种划分方式。那我......