LCS最詳細題解!!!!!

2021-10-18 13:30:30 字數 877 閱讀 8260

lcs即最長公共子串行問題

解題思路:

lcs就是乙個簡單的dp,例子1:

字串a:abcdef,長度l1.

字串b:ebacd,長度l2.

結果:3 bcd

核心思路:

用分割線的方法,一開始分割線在字串a的首字元的右邊,然後內層迴圈去找和首字元相同的字元,如果找到的話就讓當前狀態下(即分割線在首字元右邊)的字元對應的數量(即是dp【i】【j】)的數量等於左邊乙個字元對應的數量(即是dp【i】【j-1】)+1,到內層迴圈遍歷完最後乙個字元對應的數量(即是dp【i】【j】)就對應了該分割線下的最大數量。最後再讓i+1,即分割線向右平移乙個單位,重複上面的內容,最後得到的dp【l1】【l2】即是最大的那個相同子串行的數量。如果要找出這個序列是什麼,就要用到dfs(深度優先搜尋)

核心**:

for(int i=1; i<=l1; i++)

}

完整**網上有,如下所示:

#include

#define max_v 1005

using namespace std;

char x[max_v],y[max_v]

;int dp[max_v]

[max_v]

;int l1,l2;

int dfs(int i,int j)

else

else//來自左邊

}return 0;

}int main()}

printf(

"%d\n",dp[l1]

[l2]);

dfs(l1,l2)

; cout<}return 0;

}

Django xadmin安裝最詳細

django.contrib.admin django.contrib.auth django.contrib.contenttypes django.contrib.sessions django.contrib.messages django.contrib.staticfiles xadmin...

Semaphore最詳細解析

官方解釋 我記得考科目一的時候有乙個大教室,這個教室只能同時允許兩百人考試,當有乙個考完之後,下乙個才能進去進行考試。門口會有安檢人員進行安檢,這個semaphore就相當於這個安檢員。也可以理解為停車場,停車場內的停車位是固定的,只有當一輛或多輛車開走之後外面等待的車才能進去停車。用法 1 定義三...

螺旋折線 詳細題解

如圖p1.png所示的螺旋折線經過平面上所有整點恰好一次。對於整點 x,y 我們定義它到原點的距離dis x,y 是從原點到 x,y 的螺旋折線段的長度。例如dis 0,1 3,dis 2,1 9 給出整點座標 x,y 你能計算出dis x,y 嗎?輸入格式 x和y 對於40 的資料,1000 x,...