BestCoder Round #47 1003
solution : 就按题解敲了一遍,好久没写这种dp
1 #include <cstdio>
2 #include <cstring>
3 #include <string>
4 #include <vector>
5 #include <algorithm>
6 #include <iostream>
7 using namespace std;
8 typedef long long LL;
9 const int MAX = 1e3+;
const int MOD = 1e9+;
int dp[MAX][MAX];
LL f[MAX][MAX];
int Next[];
char a[MAX],b[MAX];
int main() {
int cas;
scanf("%d",&cas);
while(cas--) {
scanf("%s %s",a+,b+);
memset(dp,,sizeof(dp));
int n=strlen(a+);
int m=strlen(b+);
for(int i=;i<=n;i++) {
for(int j=;j<=m;j++) {
if(a[i]==b[j]) {
dp[i][j]=max(dp[i][j],dp[i-][j-]+);
}
else {
dp[i][j]=max(dp[i][j-],dp[i-][j]);
}
}
}
memset(f,,sizeof(f));
for(int i=;i<=n;i++) {
memset(Next,,sizeof(Next));
for(int j=;j<=m;j++) {
if(dp[i][j]==) {
f[i][j]=;
}
else {
Next[b[j]-'a']=j;
if(dp[i-][j]==dp[i][j]) {
f[i][j]=(f[i][j]+f[i-][j])%MOD;
}
if(Next[a[i]-'a']) {
int p=Next[a[i]-'a'];
if(p&&dp[i-][p-]+==dp[i][j]) {
f[i][j]=(f[i][j]+f[i-][p-])%MOD;
}
}
}
}
}
cout<<f[n][m]<<endl;
}
56 }
BestCoder Round #47 1003的更多相关文章
- 从lca到树链剖分 bestcoder round#45 1003
bestcoder round#45 1003 题,给定两个点,要我们求这两个点的树上路径所经过的点的权值是否出现过奇数次.如果是一般人,那么就是用lca求树上路径,然后判断是否出现过奇数次(用异或) ...
- HDU 5682/BestCoder Round #83 1003 zxa and leaf 二分+树
zxa and leaf Problem Description zxa have an unrooted tree with n nodes, including (n−1) undirected ...
- BestCoder Round #29 1003 (hdu 5172) GTY's gay friends [线段树 判不同 预处理 好题]
传送门 GTY's gay friends Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Ot ...
- Bestcoder Round 47 && 48
1.Senior's Array(hdu 5280) 题目大意:给出大小为N的数组和P,求将数组中的某个元素替换为P后的最大连续子段和.N<=1000 题解: 1.送分题,比赛的时候只想到枚举替 ...
- BestCoder Round #87 1003 LCIS[序列DP]
LCIS Accepts: 109 Submissions: 775 Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/65 ...
- BestCoder Round #75 1003 - King's Order
国王演讲后士气大增,但此时战争还没有结束,国王时不时要下发命令. 由于国王的口吃并没有治愈,所以传令中可能出现:“让第三军-军-军,到前线去” 这样的命令.由于大洋国在军队中安插了间谍 , 战事紧急, ...
- BestCoder Round #47
1001 Senior's Array 题目链接:1001 题意:给你一个长度为n的序列,你必须修改序列中的某个数为P,求修改后的最大连续子序列和. 思路:数据量比较小,可以直接暴力做, 枚举序列的每 ...
- BestCoder Round#11div2 1003
----- 有时候如果枚举起点超时,那么试试枚举终点. 枚举每一个i为终点(0<= i < n),且维护起点下标startPos 对于终点i,cnt[str[i]] ++, 如果小于等 ...
- BestCoder Round#8 1003
dp[i][j] 表示以i结尾的长度为j的递增子序列dp[i][j] = sum(dp[k][j]) k<i && a[i] >a[j]如果只是单纯的循环for(j ...
随机推荐
- Tomcat+Jenkins+SonarQube+SVN+Maven 集成自动化环境搭建(Windows10环境下)
说在前面的话: 从接到任务到完成共用了7天的时间.正常人用不到这个时间. 此时的功能表现是: 登录本地JenKins对项目进行构建,能够自动从SVN读取最新代码并按照Maven项目构建,构建完成能够自 ...
- CF779A(round 402 div.2 A) Pupils Redistribution
题意: In Berland each high school student is characterized by academic performance — integer value bet ...
- 用vue做一个酷炫的menu
写在前面 最近看到一个非常酷炫的menu插件,一直想把它鼓捣成vue形式,谁让我是vue的死灰粉呢,如果这都不算爱
- (转)Synopsys工具简介
DC Ultra--Design Compiler的最高版本 在Synopsys软件中完整的综合方案的核心是DC UltraTM,对所有设计而言它也是最好级别的综合平台.DC Ultra添加了全面的数 ...
- IOS颜色块设置
+ (UIImage *)imageWithColor:(UIColor *)color { CGRect rect = CGRectMake(0.0f, 0.0f, 1.0f, 1.0f); UIG ...
- SQLite_Home
SQLite教程 SQLite是一个库,实现了一个独立的软件,serverless zero-configuration.事务SQL数据库引擎.SQLite是世界上最广泛的部署SQL数据库引擎.SQL ...
- [转] 学习,思维三部曲:WHAT、HOW、WHY(通过现象看本质)
https://www.douban.com/note/284947308/?type=like 学习技术的三部曲:WHAT HOW WHY 我把学习归类为三个步骤:What.How.Why.经过我对 ...
- 第4节 hive调优:动态分区调整问题
执行如下截图中的语句时卡住了: 原因:yarn未启动,hive底层是要提交mapreduce到yarn上才能计算结果的. 之前启动yarn时,未执行jps查看是否已经启动.其实未启动成功: [root ...
- JAVA用freemarker生成复杂Excel。(freemarker)
在生成Excel的时候,大多时候都是使用poi,jxl等进行的,但是对于复杂的Excel来说,这个工作量是非常的大的,而且,对于我这么懒的人来说,这是相当痛苦的一件事情,所以,我不得不找找有没有简单一 ...
- ios7与ios6UI风格区别
http://apple.xdnice.com/content/applenews/2013/0614/142195.html (ios7 ui风格) http://blog.csdn ...