借鉴了别人的博客啊,自己写写给以后的自己看吧

给出两个字符串,用第二个字符串去匹配第一个字符串,可以对第二个字符串进行删除或插入操作,一位匹配成功得8分失败-5分,如果插入或删除,对于连续插入或删除m个数减(4+m * 3)分。求最终得分的最大值。

用dp[i][j]表示第二个串的第i位和第一个串的第j位匹配得分的最大值,dp[i][j]可以是dp[i - 1][j - 1]继续匹配也可能是dp[i - 1][k]通过插入一段串得到或者dp[k][j - 1]通过在第二个串删除一段得到。最后扫描第二串匹配完的结果找最大值。

dp[i][j]分别代表第二串匹配到第一串匹配j的最大值

#include<bits/stdc++.h>

using namespace std;

const int N=;
int dp[N][N],n,m,T;
char a[N],b[N]; int main(){
scanf("%d",&T);
while(T--){
scanf("%s%s",a+,b+);
n=strlen(a+);
m=strlen(b+);
for(int i=;i<=m;i++){
dp[i][]=--*i;
for(int j=;j<=n;j++){
dp[i][j]=dp[i-][j-];
for(int k=;k<j-;k++)
dp[i][j]=max(dp[i][j],dp[i-][k]--*(j-k-));//在第一串多添加
for(int k=;k<i-;k++)
dp[i][j]=max(dp[i][j],dp[k][j-]--*(i-k-));//在第二串多补上
if(a[j]==b[i]) dp[i][j]+=;
else dp[i][j]-=;
}
}
int ans=dp[m][];
for(int i=;i<=n;i++)
ans=max(ans,dp[m][i]);
printf("%d\n",ans);
}
return ;
}

UVAlive 6697 Homework Evaluation的更多相关文章

  1. UVaLive 6697 Homework Evaluation (DP)

    题意:给出一个长字符串,再给一个短字符串,进行匹配,如果第i个恰好匹配,则 +8,:如果不匹配,可以给长或短字符串添加-,先后匹配,这样-3, 连续的长字符串添加-,需要减去一个4:也可不给添加-,则 ...

  2. UVALive - 4108 SKYLINE[线段树]

    UVALive - 4108 SKYLINE Time Limit: 3000MS     64bit IO Format: %lld & %llu Submit Status uDebug ...

  3. bzoj 4320: ShangHai2006 Homework

    4320: ShangHai2006 Homework Time Limit: 10 Sec Memory Limit: 128 MB Description 1:在人物集合 S 中加入一个新的程序员 ...

  4. Utility2:Appropriate Evaluation Policy

    UCP收集所有Managed Instance的数据的机制,是通过启用各个Managed Instances上的Collection Set:Utility information(位于Managem ...

  5. SQL SERVER 2012 从Enterprise Evaluation Edtion 升级到 Standard Edtion SP1

    案例背景:公司从意大利购买了一套中控系统,前期我也没有参与其中(包括安装.实施都是第三方),直到最近项目负责人告诉我:前期谈判以为是数据库的License费用包含在合同中,现在经过确认SQL Serv ...

  6. UVALive - 3942 Remember the Word[树状数组]

    UVALive - 3942 Remember the Word A potentiometer, or potmeter for short, is an electronic device wit ...

  7. UVALive - 3942 Remember the Word[Trie DP]

    UVALive - 3942 Remember the Word Neal is very curious about combinatorial problems, and now here com ...

  8. HDU 1789 Doing Homework again(贪心)

    Doing Homework again 这只是一道简单的贪心,但想不到的话,真的好难,我就想不到,最后还是看的题解 [题目链接]Doing Homework again [题目类型]贪心 & ...

  9. Evaluation Clustering methods

    There are many evaluation measures available like entropy, recall, precision, F-measure, silhouette ...

随机推荐

  1. Hyper-V:无法打开虚拟机XXX,因为虚拟机监控程序未运行

    异常处理汇总-服务器系列:http://www.cnblogs.com/dunitian/p/4522983.html 异常处理汇总-开发工具  http://www.cnblogs.com/duni ...

  2. ftp sun jdk自带

    package com.italktv.colnv.stat.util; import java.io.File; import java.io.FileInputStream; import jav ...

  3. windows蜜汁调音

    哈,用的蜂鸣器,我静音了这东西还放. 只能调的很垃圾,但是很好玩. #include<cstdio> #include<windows.h> using namespace s ...

  4. 1062.Talent and Virtue

    About 900 years ago, a Chinese philosopher Sima Guang wrote a history book in which he talked about ...

  5. react-native实现电影列表

    页面运行效果 代码: import React, { Component } from "react"; import { Image, FlatList, StyleSheet, ...

  6. PHP实现异步处理

    resource fsockopen ( string $hostname [, int $port = -1 [, int &$errno [, string &$errstr [, ...

  7. Elastic 开发篇 javaAPI(4)

    1.解决精确匹配问题,如果不加配置,搜索农大,会搜出“农”“大”这两个字的匹配,我们要的是“农大”,那么好了,加上一个条件搞定: MatchQuery.Type.PHRASE 完整代码: packag ...

  8. 退回win7后无法上网 的解决方法

    如果网卡驱动没问题的话,那你是不是装了360安全卫士,如果装了你打开网络和共享中心———更改适配器设置————右键本地连接———属性————把360局域网防护驱动程序前面的对勾去掉然后确定,一般就能解 ...

  9. 解决Nginx出现403 forbidden (13: Permission denied)报错的四种方法

    我是在在本地用虚拟机中通过yum安装nginx的,安装一切正常,但是访问时报403, 于是查看nginx日志,路径为/var/log/nginx/error.log.打开日志发现报错Permissio ...

  10. rownum查询前N条记录

    在Oracle中,要按特定条件查询前N条记录,用个rownum就搞定了.——select * from emp where rownum <= 5 而且书上也告诫,不能对rownum用" ...