NYOJ 36 ??最長公共子序列

最長公共子序列

時間限制:3000ms ?|? 內存限制:65535KB
難度:3
描述
咱們就不拐彎抹角了,如題,需要你做的就是寫一個程序,得出最長公共子序列。
tip:最長公共子序列也稱作最長公共子串(不要求連續),英文縮寫為LCS(Longest Common Subsequence)。其定義是,一個序列 S ,如果分別是兩個或多個已知序列的子序列,且是所有符合此條件序列中最長的,則 S 稱為已知序列的最長公共子序列。
輸入
第一行給出一個整數N(0<N<100)表示待測數據組數
接下來每組數據兩行,分別為待測的兩組字符串。每個字符串長度不大于1000.
輸出
每組測試數據輸出一個整數,表示最長公共子序列長度。每組結果占一行。
樣例輸入
2
asdf
adfsd
123abc
abc123abc
樣例輸出
3
6

?

?

/*動態規劃(DP):適用于子問題不是獨立的情況,也就是各子問題包含公共的子子問題,
鑒于會重復的求解各子問題,	DP對每個問題只求解一遍,將其保存在一張表中,從而避免重復計算。實施步驟:1.將最優化問題分成若干個階段;2.將問題發展到各個階段 所處不同狀態表示出來;3.應用遞推(或遞歸)求解最優值;4.根據計算最優值時所得到的信息,構造最優解。 
*/
#include "stdio.h"
#include "string.h"
#define N 1000+10
char str1[N],str2[N];
int state[N][N];	
int main()
{int n;int size1,size2;scanf("%d",&n);if(n<=0) return 0;while(n--){scanf("%s %s",str1,str2);size1=strlen(str1); size2=strlen(str2);memset(state,0,sizeof(state));for(int y=1;y<=size1;y++){for(int x=1;x<=size2;x++){if(str1[y-1]==str2[x-1]) state[y][x]=state[y-1][x-1]+1;else state[y][x]=state[y][x-1]>state[y-1][x]?state[y][x-1]:state[y-1][x];}}		printf("%d\n",state[size1][size2]);		}return 0;
} /*//打印狀態 printf("    ");	for(int i=0;i<size2;i++) printf("%c  ",str2[i]); printf("\n");for(int x=1;x<=size1;x++){printf("%c:  ",str1[x-1]); for(int y=1;y<=size2;y++){printf("%d  ",state[x][y]);}printf("\n");}//	printf("str1=%s\nstr2=%s\n",str1,str2);for(int i=1;i<=size2;i++){if(state[size1][i]>state[size1][i-1]) printf("%c ",str1[i]);}printf("\n%d\n",state[size1][size2]);
*/


?簡單的動態規劃題可先學習《最長非降子序列》 題

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/374034.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/374034.shtml
英文地址,請注明出處:http://en.pswp.cn/news/374034.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

python 發郵件_python發郵件

smtplibPython提供smtplib模塊&#xff0c;該模塊定義了一個SMTP客戶端會話對象&#xff0c;可用于使用SMTP或ESMTP偵聽器守護程序向任何互聯網機器發送郵件。這是一個簡單的語法&#xff0c;用來創建一個SMTP對象&#xff0c;稍后將演示如何用它來發送電子郵件 import smtplib…

Java SE 7、8、9 –推進Java

今天&#xff08;注&#xff1a;2011年10月4日&#xff09;是主題演講日。 JavaOne Keynote將于今早從上午8:30到10:30進行&#xff0c;而我的新聞通行證又一次讓我很早就開始了。 因此&#xff0c;我有時間在所有關鍵球員準備就緒并可能感到緊張的同時為其拍攝一些非常個性化的…

Ferguson游戲

考慮一個簡單的游戲&#xff1a; 有兩個盒子&#xff0c;其中一個裝有m顆糖、另一個裝有n顆糖&#xff0c;將這樣的狀態記為(m,n)。每次的移動是將其中一個盒子清空&#xff0c;把另一個盒子的一些糖拿到被清空的盒子里使得兩個盒子至少各有一顆糖。兩個操作者輪流進行操作&…

undefined和NUll的區別

Undefined類型只有一個值 即特殊的undefined 在使用var聲明變量但未對其加以初始化時 這個變量的值就是undefined var messagealert(message undefined); //true此例子聲明message 但未對其進行初始化&#xff0c;比較這個變量的自變量與undefined字面量 結果表明他們是相等的…

NYOJ 106 背包問題

背包問題 時間限制&#xff1a;3000 ms | 內存限制&#xff1a;65535 KB難度&#xff1a;3描述現在有很多物品&#xff08;它們是可以分割的&#xff09;&#xff0c;我們知道它們每個物品的單位重量的價值v和重量w&#xff08;1<v,w<10&#xff09;&#xff1b;如果給…

python數據挖掘與機器學習實戰_Python數據挖掘與機器學習技術入門實戰(1)

什么是數據挖掘?數據挖掘指的是對現有的一些數據進行相應的處理和分析&#xff0c;最終得到數據與數據之間深層次關系的一種技術。例如在對超市貨品進行擺放時&#xff0c;牛奶到底是和面包擺放在一起銷量更高&#xff0c;還是和其他商品擺在一起銷量更高。作者&#xff1a;韋…

使用Spring 3.1和基于Java的配置構建RESTful Web服務,第2部分

1.概述 本文介紹了如何在Spring中設置REST –控制器和HTTP響應代碼&#xff0c;有效負載編組配置和內容協商。 2.在Spring了解REST Spring框架支持兩種創建RESTful服務的方式&#xff1a; 與ModelAndView一起使用MVC 使用HTTP消息轉換器 ModelAndView方法較舊&#xff0c;文…

Vmware Player 比較

VMware Workstation 12 Player 與 VMware Player 7 Pro 比較 主要功能特性VMware Player 7 ProVMware Workstation 12 Player針對商業用途授予許可是是支持多達 16 個虛擬 CPU、8 TB 磁盤、64 GB RAM 和 2 GB 顯存是是支持 Microsoft Windows 10、Ubuntu 15.04、RHEL 7.1、Fedo…

(轉)求單鏈表是否有環,環入口和環長

轉自&#xff1a;http://www.cnblogs.com/youxin/p/3303172.html 1.鏈表中是否有環的判斷可以設置兩個指針(fast,slow)&#xff0c;初始值均指向頭&#xff0c;slow每次向前一步&#xff0c;fast每次向前兩步&#xff1b;如果鏈表中有環&#xff0c;則fast先進入環中&#xff0…

OJ RuntimeError常見原因

RuntimeError常見出錯的原因可能有以下幾種&#xff1a; 1、數組開得太小了&#xff0c;導致訪問到了不該訪問的內存區域 2、發生除零錯誤 3、大數組定義在函數內,導致程序棧區耗盡 4、指針用錯了&#xff0c;導致訪問到不該訪問的內存區域 5、還有可能是程序拋出了未接收…

python recv_Python socket.recv方法代碼示例

# 需要導入模塊: from gevent import socket [as 別名]# 或者: from gevent.socket import recv [as 別名]def handle(self):"""The main request handling method, called by the server.This method runs a request handling loop, calling:meth:handle_one_r…

使用Selenium或WebDriver測試GWT應用

對于Web應用程序開發人員及其團隊而言&#xff0c;良好的功能測試是最困難的任務之一。 開發價格低廉且維護良好的測試是一項挑戰&#xff0c;這有助于降低質量檢查成本并提高質量。 Selenium和WebDriver&#xff08;本質上現在是Selenium的繼承者&#xff09;都提供了一種無需…

MySQL中有關TIMESTAMP和DATETIME的總結

一、MySQL中如何表示當前時間&#xff1f; 其實&#xff0c;表達方式還是蠻多的&#xff0c;匯總如下&#xff1a; CURRENT_TIMESTAMP CURRENT_TIMESTAMP() NOW() LOCALTIME LOCALTIME() LOCALTIMESTAMP LOCALTIMESTAMP() 二、關于TIMESTAMP和DATETIME的比較 一個完整的日期格式…

NYOJ 202 紅黑樹

紅黑樹 時間限制&#xff1a;3000 ms | 內存限制&#xff1a;65535 KB難度&#xff1a;3描述 什么是紅黑樹呢&#xff1f;顧名思義&#xff0c;跟棗樹類似&#xff0c;紅黑樹是一種葉子是黑色果子是紅色的樹。。。 當然&#xff0c;這個是我說的。。。 《算法導論》上可不是這么…

為對象添加方法mothod

Function.prototype.mothod function( name, fn ) { this.prototype[name] fn ; return this ; };轉載于:https://www.cnblogs.com/40dadao/p/5816521.html

python爬蟲cookie池 與ip綁定_Python爬蟲:設置Cookie解決網站攔截并爬取螞蟻短租

前言文的文字及圖片來源于網絡,僅供學習、交流使用,不具有任何商業用途,版權歸原作者所有,如有問題請及時聯系我們以作處理。作者&#xff1a; EastmountPS&#xff1a;如有需要Python學習資料的小伙伴可以加點擊下方鏈接自行獲取我們在編寫Python爬蟲時&#xff0c;有時會遇到…

Java Secret:加載和卸載靜態字段

總覽 首先&#xff0c;很自然地假設靜態字段具有特殊的生命周期&#xff0c;并且在應用程序的生命周期中一直存在。 您可以假設它們存在于內存中的特殊位置&#xff0c;例如C或類元信息的perm gen中的內存開始。 但是&#xff0c;得知靜態字段駐留在堆上&#xff0c;可以具有任…

HTTP協議詳解(真的很經典)

轉自&#xff1a;http://blog.csdn.net/gueter/archive/2007/03/08/1524447.aspx Author :Jeffrey 引言 HTTP是一個屬于應用層的面向對象的協議&#xff0c;由于其簡捷、快速的方式&#xff0c;適用于分布式超媒體信息系統。它于1990年…

NYOJ 63 小猴子下落

小猴子下落 時間限制&#xff1a;3000 ms | 內存限制&#xff1a;65535 KB難度&#xff1a;3描述 有一顆二叉樹&#xff0c;最大深度為D,且所有葉子的深度都相同。所有結點從左到右從上到下的編號為1,2,3&#xff0c;&#xff0c;2的D次方減1。在結點1處放一個小猴子&#xff0…

python科學計算與圖形渲染_寧哥Python科學計算與圖形渲染庫課程

50dccd474759c0ffd343efcac14f8ab2.png (259.41 KB, 下載次數: 0)2019-4-9 12:23 上傳課程目錄章節1: NumPy基礎知識課時1NumPy簡介14:05課時2搭建NumPy開發環境&#xff0c;驗證NumPy開發環境17:08課時3源代碼和數據下載章節2: NumPy數組課時4創建多維數組09:20課時5獲取單個數…