演算法概論8.15 最大公共子圖問題
8.15 Show that the following problem is NP-complete.
MAXIMUM COMMON SUBGRAPH
Input: Two graphs G1=(V1,E1) and G2=(V2,E2); a budget b.
Output: Two set of nodes V’1⊆V1, V’2⊆V2, whose deletion leaves at least b nodes in each graph, and make the two graphs identical.
題目就是證明尋找公共子圖問題是NP完全的,可以將獨立集問題歸約到此。設圖G=(V,E) 尋找 G的最大獨立集問題是NP完全的,設G的最大獨立集包含d個結點,現在另G1=(V,E), G2=(V, ∅),尋找G1,G2的最小為d公共子圖就等價於尋找G1的最大獨立集和G2的最大獨立集。於是找到最大公共子圖問題的一個特例是最大獨立集問題,將最大獨立集問題歸約到最大公共子圖問題。證明了最大公共子圖問題也是NP完全的。
相關推薦
演算法概論8.15 最大公共子圖問題
8.15 Show that the following problem is NP-complete. MAXIMUM COMMON SUBGRAPH Input: Two graphs G1=(V1,E1) and G2=(V2,E2); a budget b. Output: T
演算法題-兩個字串的最大公共子串
題目:給定一個query和一個text,均由小寫字母組成。要求在text中找出以同樣順序連續出現在query中最長連續字母序列的長度。例如,query為“acbac”,text為“acaccbabb”,那麼text中的“cba”為最長的連續出現在query中的字元序列,因此
寒假。3.3.G - Common Child (最大公共子序)
int 真的 style clas line post while doesn 是什麽 Given two strings a and b of equal length, what‘s the longest string (s) that can be construc
求兩個串的最大公共子序列的長度
notes col length body 子字符串 使用遞歸 seq ons commons 1 public class CommonSubsequence { 2 3 public static int f(String s1,String s2){
C程式設計——程式設計實現查詢兩個字串的最大公共子串2.0
1、 題目:程式設計實現查詢兩個字串的最大公共子串 示例:“aocdfe"和"pmcdfa"最大公共子串為"cdf” 注:最大公共子串有不止一個時,只輸出第一個最大子串 利用斐波那契數列數的思想 **2、**程式 #include <stdio.h> #include &
C程式設計——程式設計實現查詢兩個字串的最大公共子串1.0
1、 題目:程式設計實現查詢兩個字串的最大公共子串 示例:“aocdfe"和"pmcdfa"最大公共子串為"cdf” 注:最大公共子串有不止一個時,只輸出第一個最大子串 **2、**程式 #include <stdio.h> #include <string.h>
求最大公共子串
#include <stdio.h> #include <string.h> int main1() { char *str1 = "aocdfe"; char *str2 = "aadapmcdfa"; int longest = 0; // 最大長度
程式設計實現查詢兩個字串的最大公共子串
#include <stdio.h> #include <string.h> //程式設計實現查詢兩個字串的最大公共子串 //示例:"aocdfe"和"pmcdfa"最大公共子串為"cdf" void MyPub(char *str1, char *str2) {
hdu 1159,最大公共子序列 LCS
比較基本的動態規劃 網上的資料都說得比較詳細,覺得其實直接看程式碼會比較直觀易懂 程式碼較短,dp[i][j]表示X的i位和Y的j位之前的最長公共子序列的長度,X和Y是輸入的兩個序列 #include<iostream> #include<string.h> u
動態規劃之longest common subsequence最大公共子序列
這題相對於longest common substring而言更容易一些,區別就子序列和子串, 串的話每個字母是要連續的,序列的話,不要求,用動態規劃做,遞推公式如下,不難: 上程式碼: public class CommonSubseq { public stat
“最大連續子序列和”、“最大遞增子序列”、“最大公共子序列”、“最長公共子串”問題總結
一、最大連續子序列和(最大子序列) 最大子序列是要找出由陣列成的一維陣列中和最大的連續子序列。比如{5,-3,4,2}的最大子序列就是 {5,-3,4,2},它的和是8,達到最大;而 {5,-6,4,2}的最大子序列是{4,2},它的和是6。 思路:只要前i項的和還沒有小
藍橋杯 演算法提高 ADV-15 最大乘積
演算法提高 最大乘積 時間限制:1.0s 記憶體限制:512.0MB 問題描述 對於n個數,從中取出m個數,如何取使得這m個數的乘積最大呢? 輸入格式 第一行一個數表示資料組數 每組輸入資料共2行: 第1行給出總共的數字的個數n和要取的數的個數m,1<=n<
標題 最大公共子串 -藍橋杯
標題:最大公共子串最大公共子串長度問題就是:求兩個串的所有子串中能夠匹配上的最大長度是多少。比如:"abcdkkk" 和 "baabcdadabc",可以找到的最長的公共子串是"abcd",所以最大公共子串長度為4。下面的程式是採用矩陣法進行求解的,這對串的規模不大的情況還是
最長增長子序列(串),最大公共子序列(串),
子序列,不需要連續的。 思路一:傳統的dp,dp[i]表示前i個數且以第i個數字結尾的最長增長子序列,遍歷陣列,dp[i] = max(dp[i], dp[j] + 1) if nums[i] > nums[j], j from 0 to i 思路二:維護一個
java實現兩個字串最大公共子字串
/** * @author weichen CHEN created on 2018/4/20 * @version 2018/4/20 weichen CHEN */ public class Test { public static void main
2017-年藍橋杯C-(A組)賽題-動態規劃-最大公共子串
6. 標題:最大公共子串最大公共子串長度問題就是:求兩個串的所有子串中能夠匹配上的最大長度是多少。比如:"abcdkkk" 和 "baabcdadabc",可以找到的最長的公共子串是"abcd",所以最大公共子串長度為4。下面的程式是採用矩陣法進行求解的,這對串的規模不大的情
藍橋杯java第八屆B組:最大公共子串
最大公共子串 最大公共子串長度問題就是: 求兩個串的所有子串中能夠匹配上的最大長度是多少。 比如:"abcdkkk" 和 "baabcdadabc", 可以找到的最長的公共子串是"abcd",所以最大公共子串長度為4。 下面的程式是採用矩陣法進行求解的,這對串的規模不大的情
演算法設計與分析——最大連續子序列之和問題
最大連續子序列之和問題是用來分析時間複雜度的很好的例子,這裡簡要分析和記述下整個過程。{3,4,-2,1,-5,-2,5}{-2,7,4,11,-2,-8,12,1}{-2,7,4,11,-2,-8,12,1,-3}{3,-2,7,4,11,-2,-8,12,1,-3}{-2
java實現字串匹配問題之求兩個字串的最大公共子串
轉載請註明出處:http://blog.csdn.net/xiaojimanman/article/details/38924981 最近在專案工作中有一個關於文字對比的需求,經過這段時間的學習,總結了這篇部落格內容:求兩個字串的最大公共子串。 演算法思想:基於圖計算兩字串
求兩個序列的最大公共子序列的長度(遞迴解法)
本題主要採用的是遞迴思想(分類討論) 判斷當前兩個字串是否有一個長度為0,若有則直接返回0即可 判斷當前兩個字串中的第一位是否相同,若相同則直接雙方去掉第一位並返回呼叫該方法(引數為兩方截斷首位的字