bzoj 5220. 【GDOI2018模拟7.10】C 动态规划
来源:互联网 发布:淘宝开黑车 编辑:程序博客网 时间:2024/06/04 01:19
题意
|X|,|Y|<=1000
分析
比赛的时候想的水法,把每个pair看成一个点,然后建一个DAG后dp,水了90分。
正解:f[i,j]表示X当前到第i位,最后一位是与Y中的第j位匹配的方案数。直接枚举选与不选然后转移即可。
代码
#include<iostream>#include<cstdio>#include<cstdlib>#include<cstring>#include<algorithm>using namespace std;const int N=1005;const int MOD=1000000007;int n,m,f[N][N],g[N][N],nx[N][30],now[30];char s1[N],s2[N];int main(){ scanf("%s%s",s1+1,s2+1); n=strlen(s1+1);m=strlen(s2+1); for (int i=m;i>=0;i--) { for (int j=0;j<26;j++) nx[i][j]=now[j]; now[s2[i]-'a']=i; } //for (int i=1;i<=n;i++) f[i][now[s1[i]-'a']]=g[i][now[s1[i]-'a']]=1; int L=0; f[0][0]=1; for (int i=0;i<n;i++) for (int j=0;j<=m;j++) if (f[i][j]) { if (g[i][j]>g[i+1][j]) g[i+1][j]=g[i][j],f[i+1][j]=f[i][j]; else if (g[i][j]==g[i+1][j]) (f[i+1][j]+=f[i][j])%=MOD; int k=nx[j][s1[i+1]-'a']; if (k) { if (g[i][j]+1>g[i+1][k]) g[i+1][k]=g[i][j]+1,L=max(L,g[i][j]+1),f[i+1][k]=f[i][j]; else if (g[i][j]+1==g[i+1][k]) (f[i+1][k]+=f[i][j])%=MOD; } } int ans=0; for (int i=1;i<=m;i++) if (g[n][i]==L) (ans+=f[n][i])%=MOD; printf("%d",ans); return 0;}
阅读全文
0 0
- bzoj 5220. 【GDOI2018模拟7.10】C 动态规划
- 【GDOI2018模拟7.10】C 动态规划
- 【jzoj5220】【GDOI2018模拟7.10】【C】【动态规划】
- 【jzoj5219】【GDOI2018模拟7.10】【B】【动态规划】
- 【GDOI2018模拟7.10】B 动态规划
- bzoj 5223. 【GDOI2018模拟7.12】B 动态规划+矩阵乘法
- 【GDOI2018模拟7.10】C
- 【GDOI2018模拟7.10】C
- 【GDOI2018模拟7.10】C
- 【JZOJ5220】【GDOI2018模拟7.10】C
- 【jzoj5237】【GDOI2018模拟8.7】【最长公共子序列 】【动态规划】
- 【jzoj5251】【GDOI2018模拟8.11】【决战】【状态压缩动态规划】
- 【JZOJ 5220】【GDOI2018模拟7.10】C
- 【GDOI2018模拟7.12】C
- 【GDOI2018模拟9.23】动态图
- 【GDOI2018模拟9.23】动态图
- 【GDOI2018模拟7.10】B
- 【GDOI2018模拟7.10】B
- Leetcode#:557. Reverse Words in a String III
- Linux面试要点
- 超详细讲解Sqoop2应用与实践
- Android开发之手势之一个切换图片的demo
- 嵌入式学习笔记(第三天)
- bzoj 5220. 【GDOI2018模拟7.10】C 动态规划
- Vim使用
- 树分治-点分治
- PWC 6033:Error in javac compilation错误
- portainer Failure Unable to resize TTY解决方案
- 【有修改】安装ARM交叉编译器 linux x86 arm gnu工具
- Eclipse报错:Tomcat version 7.0 only supports J2EE 1.2, 1.3, 1.4, and Java EE 5 and 6 Web modules
- 信号的产生于处理
- 欢迎使用CSDN-markdown编辑器