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,...