HDU 1159 Common Subsequence 动态规划

2017-08-06 15:41:04

writer:pprp

刚开始学dp,集训的讲的很难,但是还是得自己看,从简单到难,慢慢来(如果哪里有错误欢迎各位大佬指正)

题意如下:

给两个字符串,找到其中大的公共子序列,每个样例输出一个数;

最长公共子串(Longest Common Substirng)和最长公共子序列(Longest Common Subsequence,LCS)的区别为:

  子串是串的一个连续的部分,子序列则是从不改变序列的顺序,而从序列中去掉任意的元素而获得新的序列;

  也就是说,子串中字符的位置必须是连续的,子序列则可以不必连续。

动态规划的思想:abcfbc 和 abfcab找匹配值(图是大佬画的,借用一下^_^)

  

可以看出:

状态的定义:

  当前匹配到某一位置时已经匹配的数目

状态转移:设记录匹配状态的二维数组叫a[1001][1001]

    如果str1[i] == str2[j] 那么a[i][i] = a[i-1][j-1] + 1;

    如果str1[i] != str2[j] 那么a[i][j] = max(a[i-1][j], a[i][j-1]);

状态结束:

    匹配完成


 

代码如下:

  

#include <iostream>
#include <string>
#include <cstring>using namespace std;int a[1001][1001];int _max(int a, int b)
{return a > b ? a : b;
}int main()
{string str1,str2;while(cin >> str1 >> str2){int len1 = str1.length();int len2 = str2.length();memset(a,0,sizeof(a));for(int i = 1 ; i <= len1 ; i++){for(int j = 1 ; j <= len2 ; j++){if(str1[i-1] == str2[j-1]){a[i][j] = a[i-1][j-1] + 1;}else{a[i][j] = _max(a[i-1][j],a[i][j-1]);}}}cout << a[len1][len2] << endl;}return 0;
}

提交状态:ac

转载于:https://www.cnblogs.com/pprp/p/7295014.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/428959.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Xmail】使用Xmail搭建局域网邮件服务器

下载地址&#xff1a; http://www.xmailserver.org/xmail-1.27.win32bin.zip&#xff0c;当前最新版本 1.27。 解压文件&#xff1a;xmail-1.27.win32bin.zip 1、把其中的 MailRoot 目录拷贝到 C:\&#xff1b; 2、把 C:\xmail-1.27.win32bin\xmail-1.27 目录下的所有文件&am…

uploadify 配置后,页面显示无效果

uploadify使用的是Flash版本 谷歌浏览器&#xff1a;默认没有开启Flash&#xff0c;进行如下图设置即可 转载于:https://www.cnblogs.com/daryl/p/7299471.html

Day39:threading模块、ThreadLocal

一、threading模块 1、线程对象的创建 1.1 Thread类直接创建 import threading import timedef countNum(n): # 定义某个线程要运行的函数print("running on number:%s" %n)time.sleep(3)if __name__ __main__:t1 threading.Thread(targetcountNum,args(23,)) #生成…

linux h5 动画软件下载,技术|7款绚丽的jQuery/HTML5动画及源码

jQuery是一款非常流行的JavaScript框架&#xff0c;利用jQuery&#xff0c;我们可以制作简单的动画效果&#xff0c;但是结合HTML5&#xff0c;这样的动画效果就会变得更加出彩。本文分享了7款jQuery结合HTML5的动画以及源码下载。1、HTML5/SVG实现布谷鸟时钟动画这是一款非常有…

时钟抖动对高速ADC采样系统的影响

在高速数据采样中&#xff0c;ADC时钟信号的稳定性对其性能有至关重要的影响&#xff0c;因为这些抖动会破坏高速ADC的时序。 孔径的定义 孔径时间ta&#xff0c;是指从采样时钟跳变开始&#xff0c;一直到保持电压建立。换言之&#xff0c;孔径是指采样保持电路中开关切换的时…

python - hadoop,mapreduce demo

Hadoop,mapreduce 介绍 59888745qq.com 大数据工程师是在Linux系统下搭建Hadoop生态系统&#xff08;cloudera是最大的输出者类似于Linux的红帽&#xff09;&#xff0c; 把用户的交易或行为信息通过HDFS&#xff08;分布式文件系统&#xff09;等存储用户数据文件&#xff0c;…

Vue父子组件间的通信

父组件通过 props 向下传递数据给子组件&#xff0c;子组件通过 events 向上给父组件发送消息。 父组件&#xff1a; <div><div style"background:#34495E;color: #fff; padding:20px"><p style"margin-bottom: 20px">这是父组件</p&…

1009 Product of Polynomials (25 分)

1009 Product of Polynomials (25 分) 这题目要卡的话只能卡第一个吧&#xff0c;考虑零项之后&#xff0c;这道题就简单了。 #include<iostream> #include<set> #include<vector> #include<iomanip> using namespace std; int main() {double cun1[1…

c语言pwm调制方式,pwm调制原理同步调制_几种pwm调制方式介绍 - 全文

PWM简介脉冲宽度调制是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术&#xff0c;广泛应用在从测量、通信到功率控制与变换的许多领域中。脉冲宽度调制是一种模拟控制方式&#xff0c;其根据相应载荷的变化来调制晶体管基极或MOS管栅极的偏置&#xff0c;来…

c语言如何用循环语句一个字一个字的输出,怎样用c语言的for嵌套循环,用·画出泳字,求解,主要是怎样用循环语句打出,在某一行中既有空格又有·...

暗域天堂#include #include #include #include #include using namespace std;int get_character(unsigned char* pc1, unsigned char* pc2){unsigned char buf[100];cin >> buf;*pc1 buf[0];*pc2 buf[1];if (*pc1 {return -2;}if (*pc2 {return -2;}return 0;}void lo…

c语言赋值运算符左边必须是,C语言运算符入门讲解

概述C 语言运算符分为算术、关系、逻辑、赋值、逗号和 sizeof 5 大类。表达式&#xff1a;在 C/C 中&#xff0c;用运算符将操作对象连接起来就构成了表达式。表达式是用于计算的式子&#xff0c;是计算求值的基本单位。操作对象&#xff1a;又称操作数&#xff0c;操作数可以为…

MSYS2使用教程

一、安装 官方下载地址 http://www.msys2.org/ 指定好安装路径&#xff08;一般D根目录即可&#xff09;&#xff0c;一路下一步就好。 二、配置国内镜像、设置窗体修改颜色 使用[清华大学开源软件镜像站]中的地址&#xff0c;修改\etc\pacman.d目录下的三个文件。 配置教程 ht…

[原创]浅谈移动互联网App兼容性测试

[原创]浅谈移动互联网App兼容性测试 今天要谈的话题&#xff0c;估计各位测试都有感受&#xff0c;移动互联网App兼容性测试&#xff0c;我们到底测试覆盖如何去挑选机型&#xff1f;具体移动App兼容性测试如何开展&#xff1f;是不是应引进像testin这样的第三方来检查覆盖?可…

高仿人人android梦想版终极源码发送,人人Android客户端梦想版发布

人人网梦想版for Android 5.0.1下载(人人网Android客户端)人人网今天发布Android客户端“梦想版”&#xff0c;新版更新的“私信”功能与微信等聊天工具同出一辙&#xff0c;还可以发送语音和大幅表情。其他界面也进行了大幅更新。以下为人人网官方介绍&#xff1a;打开这篇日志…

android 平板方案,Android平板方案

一、英伟达(NVIDIA) Tegra 2NVIDIA Tegra 2处理器&#xff0c;采用40nm制程制造&#xff0c;集成8个不同功能的处理器&#xff0c;主要包括&#xff1a;两个ARMCortex-A9核心&#xff0c;运行频率1GHz。另外有一个ARM7处理器&#xff0c;一个音频处理器(AudioProcessor)&#x…

android点击灰色背景图片,android button按键失去焦点和点击后改变背景图片

android button按键得到焦点和点击后改变背景图片我也接受android不久&#xff0c;今天来给同学们分享一下button得到焦点和点击后改变背景图片&#xff0c;其实很简单就是两个事件setOnFocusChangeListener和setOnClickListener就OK了。这是Activity 中的代码。package com.ha…

android无线充产品,一天售罄!鲁蛋超薄无线快充太火爆 兼容苹果安卓成最大卖点...

3月5日&#xff0c;鲁大师发布了最新智能硬件产品——「鲁蛋超薄无线快充」。这项智能产品同样来自旗下品牌「鲁蛋」&#xff0c;它是一款兼具安卓与苹果的无线充电设备&#xff0c;并且输出功率最高达到10W。鲁蛋无线快充于3月6日凌晨上线京东&#xff0c;下单立减20元&#x…

ASP.NET MVC5(一):ASP.NET MVC概览

ASP.NET MVC概览 ASP.NET MVC是一种构建Web应用程序的框架&#xff0c;它将一般的MVC&#xff08;Model-View-Controller&#xff09;模式应用于ASP.NET框架。 ASP.NET MVC模式简介 MVC将Web应用程序划分为三个主要的部分&#xff0c;以下是MSDN给出的定义&#xff1a; 模型&am…

java-上传文件与现实上传文件

项目结构&#xff1a; 项目展示&#xff1a; 数据库&#xff1a; /* SQLyog Ultimate v12.09 (64 bit) MySQL - 5.5.53 : Database - fileupload ********************************************************************* *//*!40101 SET NAMES utf8 */;/*!40101 SET SQL_MODE*…

登录微信用android设备,Android 之微信登录

准备工作需要在微信开放平台注册登录账户。还得办理开发者资质认证&#xff0c;审核费用为300元。2.在微信开放平台创建移动应用&#xff0c;填写相关信息后提交审核。简述业务流程1.获取appId和secret2.通过appId和secret调微信接口获取 code3.通过code和getAccessToken()方法…