From 505916b0d052f9c70d32f4dc006236dc226b6e69 Mon Sep 17 00:00:00 2001 From: Sujoy Datta Date: Tue, 12 Jan 2021 20:16:59 +0530 Subject: [PATCH] Added some more dp codes --- Dynamic Programming/Coin_change/a.exe | Bin 0 -> 51288 bytes Dynamic Programming/Coin_change/max_ways.cpp | 43 ++++++++++ .../Coin_change/minimum_coins.cpp | 55 +++++++++++++ Dynamic Programming/Count_of_subset_sum/a.exe | Bin 0 -> 50603 bytes .../Count_of_subset_sum/count.cpp | 43 ++++++++++ Dynamic Programming/Equal_sum_partition/a.exe | Bin 0 -> 49773 bytes .../Equal_sum_partition/equal_sum.cpp | 57 +++++++++++++ Dynamic Programming/Knapsack_zero_one/a.exe | Bin 0 -> 50202 bytes .../zero_one_knapsack_dp.cpp | 39 +++++++++ .../zero_one_knapsack_mem.cpp | 34 ++++++++ .../zero_one_knapsack_rec.cpp | 26 ++++++ .../Largest_Palindromic_Subsequence/a.exe | Bin 0 -> 61866 bytes .../Largest_Palindromic_Subsequence/pal.cpp | 49 +++++++++++ .../Longest_common_subsequence/a.exe | Bin 0 -> 54008 bytes .../Longest_common_subsequence/a.out | Bin 0 -> 21016 bytes .../Longest_common_subsequence/dp.cpp | 43 ++++++++++ .../memoization.cpp | 37 +++++++++ .../Longest_common_subsequence/recursive.cpp | 29 +++++++ .../Longest_common_substring/a.exe | Bin 0 -> 53835 bytes .../Longest_common_substring/a.out | Bin 0 -> 20976 bytes .../Longest_common_substring/substring.cpp | 62 ++++++++++++++ .../Matrix_Chain_Multiplication/a.exe | Bin 0 -> 50051 bytes .../Matrix_Chain_Multiplication/mem.cpp | 34 ++++++++ .../Matrix_Chain_Multiplication/mem.exe | Bin 0 -> 50144 bytes .../Matrix_Chain_Multiplication/recursive.cpp | 31 +++++++ Dynamic Programming/MaxGridSum/try.java | 48 +++++++++++ .../a.exe | Bin 0 -> 61866 bytes .../min.cpp | 53 ++++++++++++ .../min.cpp | 51 ++++++++++++ .../Number_of_subsets_with_given_diff/a.exe | Bin 0 -> 51115 bytes .../Number_of_subsets_with_given_diff/num.cpp | 52 ++++++++++++ .../Palindrome_partitioning_recursive/a.exe | Bin 0 -> 56381 bytes .../Palindrome_partitioning_recursive/mem.cpp | 76 ++++++++++++++++++ .../Palindrome_partitioning_recursive/mem.exe | Bin 0 -> 53924 bytes .../recursive.cpp | 56 +++++++++++++ .../recursive.exe | Bin 0 -> 53889 bytes .../Printing_Longest_common_subsequence/a.exe | Bin 0 -> 63335 bytes .../print.cpp | 73 +++++++++++++++++ .../Rod_cutting_problem/rod.cpp | 39 +++++++++ .../Shortest_Common_SuperSequence/a.exe | Bin 0 -> 54008 bytes .../Shortest_Common_SuperSequence/short.cpp | 51 ++++++++++++ Dynamic Programming/Subset_sum/a.exe | Bin 0 -> 49775 bytes Dynamic Programming/Subset_sum/subset_sum.cpp | 48 +++++++++++ Dynamic Programming/Target_sum/a.exe | Bin 0 -> 51115 bytes Dynamic Programming/Target_sum/target.cpp | 52 ++++++++++++ Dynamic Programming/Unbounded_Knapsack/a.exe | Bin 0 -> 50177 bytes .../Unbounded_Knapsack/unbounded.cpp | 39 +++++++++ .../longest_repeating_subsequence/a.exe | Bin 0 -> 54008 bytes .../longest_repeating_subsequence/long.cpp | 51 ++++++++++++ Dynamic Programming/min_insert_delete/a.exe | Bin 0 -> 54784 bytes Dynamic Programming/min_insert_delete/min.cpp | 53 ++++++++++++ .../minimum_subset_sum_diff/a.exe | Bin 0 -> 76728 bytes .../minimum_subset_sum_diff/min.cpp | 60 ++++++++++++++ .../sequence_pattern_matching/a.exe | Bin 0 -> 56863 bytes .../sequence_pattern_matching/seq.cpp | 53 ++++++++++++ 55 files changed, 1437 insertions(+) create mode 100644 Dynamic Programming/Coin_change/a.exe create mode 100644 Dynamic Programming/Coin_change/max_ways.cpp create mode 100644 Dynamic Programming/Coin_change/minimum_coins.cpp create mode 100644 Dynamic Programming/Count_of_subset_sum/a.exe create mode 100644 Dynamic Programming/Count_of_subset_sum/count.cpp create mode 100644 Dynamic Programming/Equal_sum_partition/a.exe create mode 100644 Dynamic Programming/Equal_sum_partition/equal_sum.cpp create mode 100644 Dynamic Programming/Knapsack_zero_one/a.exe create mode 100644 Dynamic Programming/Knapsack_zero_one/zero_one_knapsack_dp.cpp create mode 100644 Dynamic Programming/Knapsack_zero_one/zero_one_knapsack_mem.cpp create mode 100644 Dynamic Programming/Knapsack_zero_one/zero_one_knapsack_rec.cpp create mode 100644 Dynamic Programming/Largest_Palindromic_Subsequence/a.exe create mode 100644 Dynamic Programming/Largest_Palindromic_Subsequence/pal.cpp create mode 100644 Dynamic Programming/Longest_common_subsequence/a.exe create mode 100644 Dynamic Programming/Longest_common_subsequence/a.out create mode 100644 Dynamic Programming/Longest_common_subsequence/dp.cpp create mode 100644 Dynamic Programming/Longest_common_subsequence/memoization.cpp create mode 100644 Dynamic Programming/Longest_common_subsequence/recursive.cpp create mode 100644 Dynamic Programming/Longest_common_substring/a.exe create mode 100644 Dynamic Programming/Longest_common_substring/a.out create mode 100644 Dynamic Programming/Longest_common_substring/substring.cpp create mode 100644 Dynamic Programming/Matrix_Chain_Multiplication/a.exe create mode 100644 Dynamic Programming/Matrix_Chain_Multiplication/mem.cpp create mode 100644 Dynamic Programming/Matrix_Chain_Multiplication/mem.exe create mode 100644 Dynamic Programming/Matrix_Chain_Multiplication/recursive.cpp create mode 100644 Dynamic Programming/MaxGridSum/try.java create mode 100644 Dynamic Programming/Minimum number of deletion in a string to make it a palindrome/a.exe create mode 100644 Dynamic Programming/Minimum number of deletion in a string to make it a palindrome/min.cpp create mode 100644 Dynamic Programming/Minimum number of insertion in a string to make it a palindrome/min.cpp create mode 100644 Dynamic Programming/Number_of_subsets_with_given_diff/a.exe create mode 100644 Dynamic Programming/Number_of_subsets_with_given_diff/num.cpp create mode 100644 Dynamic Programming/Palindrome_partitioning_recursive/a.exe create mode 100644 Dynamic Programming/Palindrome_partitioning_recursive/mem.cpp create mode 100644 Dynamic Programming/Palindrome_partitioning_recursive/mem.exe create mode 100644 Dynamic Programming/Palindrome_partitioning_recursive/recursive.cpp create mode 100644 Dynamic Programming/Palindrome_partitioning_recursive/recursive.exe create mode 100644 Dynamic Programming/Printing_Longest_common_subsequence/a.exe create mode 100644 Dynamic Programming/Printing_Longest_common_subsequence/print.cpp create mode 100644 Dynamic Programming/Rod_cutting_problem/rod.cpp create mode 100644 Dynamic Programming/Shortest_Common_SuperSequence/a.exe create mode 100644 Dynamic Programming/Shortest_Common_SuperSequence/short.cpp create mode 100644 Dynamic Programming/Subset_sum/a.exe create mode 100644 Dynamic Programming/Subset_sum/subset_sum.cpp create mode 100644 Dynamic Programming/Target_sum/a.exe create mode 100644 Dynamic Programming/Target_sum/target.cpp create mode 100644 Dynamic Programming/Unbounded_Knapsack/a.exe create mode 100644 Dynamic Programming/Unbounded_Knapsack/unbounded.cpp create mode 100644 Dynamic Programming/longest_repeating_subsequence/a.exe create mode 100644 Dynamic Programming/longest_repeating_subsequence/long.cpp create mode 100644 Dynamic Programming/min_insert_delete/a.exe create mode 100644 Dynamic Programming/min_insert_delete/min.cpp create mode 100644 Dynamic Programming/minimum_subset_sum_diff/a.exe create mode 100644 Dynamic Programming/minimum_subset_sum_diff/min.cpp create mode 100644 Dynamic Programming/sequence_pattern_matching/a.exe create mode 100644 Dynamic Programming/sequence_pattern_matching/seq.cpp diff --git a/Dynamic Programming/Coin_change/a.exe b/Dynamic Programming/Coin_change/a.exe new file mode 100644 index 0000000000000000000000000000000000000000..36a2d2e42d2b500db683974ec6fea3ef3f94edc6 GIT binary patch literal 51288 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 +using namespace std; +int t[100][1000]; +int counting(int arr[], int sum,int n) //unbounded subset sum +{ + for(int i=0;ij) + t[i][j]=t[i-1][j]; + + } + } +return t[n][sum]; +} +int main() +{ int coin[] = {1,2,3}; //example cases + int amount= 10; + int n = sizeof(coin) / sizeof(coin[0]); + memset(t,0,sizeof(t)); + int count= counting(coin,amount,n); + cout< +using namespace std; +int t[100][1000]; +int counting(int arr[], int sum,int n) //unbounded subset sum +{ + for(int i=0;ij) + t[i][j]=t[i-1][j]; + + } + } +return t[n][sum]; +} +int main() +{ int coin[] = {9, 6, 5, 1}; //example cases + int amount= 11; + int n = sizeof(coin) / sizeof(coin[0]); + memset(t,0,sizeof(t)); + int count= counting(coin,amount,n); + cout<;3vnwQBQ9tskj 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 literal 0 HcmV?d00001 diff --git a/Dynamic Programming/Count_of_subset_sum/count.cpp b/Dynamic Programming/Count_of_subset_sum/count.cpp new file mode 100644 index 0000000..f0cdb8f --- /dev/null +++ b/Dynamic Programming/Count_of_subset_sum/count.cpp @@ -0,0 +1,43 @@ +//Program to count how many subsets exist which adds up to the given sum. +#include +using namespace std; +int t[100][1000]; +int counting(int arr[], int sum,int n) +{ + for(int i=0;ij) + t[i][j]=t[i-1][j]; + + } + } +return t[n][sum]; +} +int main() +{ int arr[] = { 2,3,4,7}; //example cases + int sum= 5; + int n = sizeof(arr) / sizeof(arr[0]); + memset(t,0,sizeof(t)); + int count= counting(arr,sum,n); + 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 literal 0 HcmV?d00001 diff --git a/Dynamic Programming/Equal_sum_partition/equal_sum.cpp b/Dynamic Programming/Equal_sum_partition/equal_sum.cpp new file mode 100644 index 0000000..ba33c4f --- /dev/null +++ b/Dynamic Programming/Equal_sum_partition/equal_sum.cpp @@ -0,0 +1,57 @@ +//Program to check whether 2 partitions exist which have equal sum. +#include +using namespace std; +bool t[100][1000]; //t[n+1][sum+1] +bool equalsum(int arr[], int n) +{ int sum=0; + for(int i=0;ij) + t[i][j]=t[i-1][j]; + + } + } +return t[n][sum]; +} +int main() +{ int arr[] = { 2,4 }; //example cases + int n = sizeof(arr) / sizeof(arr[0]); + memset(t,-false,sizeof(t)); + if(equalsum( arr,n)) + printf("YES"); + else + { + printf("NO"); + } + + return 0; +} \ No newline at end of file diff --git a/Dynamic Programming/Knapsack_zero_one/a.exe b/Dynamic Programming/Knapsack_zero_one/a.exe new file mode 100644 index 0000000000000000000000000000000000000000..9e5e378211f7c6d2b4f6a39947a220c56fa1722d GIT binary patch literal 50202 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 literal 0 HcmV?d00001 diff --git a/Dynamic Programming/Knapsack_zero_one/zero_one_knapsack_dp.cpp b/Dynamic Programming/Knapsack_zero_one/zero_one_knapsack_dp.cpp new file mode 100644 index 0000000..fa0567b --- /dev/null +++ b/Dynamic Programming/Knapsack_zero_one/zero_one_knapsack_dp.cpp @@ -0,0 +1,39 @@ +//dp code maximum profit +#include +using namespace std; +int t[100][1000]; +int max(int a, int b) { return (a > b) ? a : b; } +int knapsack(int weight[],int val[], int c,int n) +{ + for(int i=0;ij) + t[i][j]=t[i-1][j]; + + } + } +return t[n][c]; +} +int main() +{ int val[] = { 60, 100, 120 }; //example cases + int wt[] = { 10, 20, 30 }; + int W = 50; + int n = sizeof(val) / sizeof(val[0]); + memset(t,-1,sizeof(t)); + cout << knapsack( wt, val,W, n); + return 0; +} \ No newline at end of file diff --git a/Dynamic Programming/Knapsack_zero_one/zero_one_knapsack_mem.cpp b/Dynamic Programming/Knapsack_zero_one/zero_one_knapsack_mem.cpp new file mode 100644 index 0000000..e1ece14 --- /dev/null +++ b/Dynamic Programming/Knapsack_zero_one/zero_one_knapsack_mem.cpp @@ -0,0 +1,34 @@ +//memoization code +#include +using namespace std; +int t[100][1000]; +int max(int a, int b) { return (a > b) ? a : b; } +int knapsack(int weight[],int val[], int c,int n) +{ + if(n==0||c==0) + { + return 0; + } + if(t[n][c]!=-1) + { + return t[n][c]; + } + + + if(weight[n-1]<=c) + { + return t[n][c]= max((val[n-1]+ knapsack(weight,val,c-weight[n-1],n-1)), knapsack(weight,val,c, n-1)); + } + else if (weight[n-1]>c) + return t[n][c]=knapsack(weight,val,c,n-1); + return 0; +} +int main() +{ int val[] = { 60, 100, 120 }; //example cases + int wt[] = { 10, 20, 30 }; + int W = 50; + memset(t,-1,sizeof(t)); + int n = sizeof(val) / sizeof(val[0]); + cout << knapsack( wt, val,W, n); + return 0; +} \ No newline at end of file diff --git a/Dynamic Programming/Knapsack_zero_one/zero_one_knapsack_rec.cpp b/Dynamic Programming/Knapsack_zero_one/zero_one_knapsack_rec.cpp new file mode 100644 index 0000000..f4d9a8b --- /dev/null +++ b/Dynamic Programming/Knapsack_zero_one/zero_one_knapsack_rec.cpp @@ -0,0 +1,26 @@ +//recursive code maximum profit +#include +using namespace std; +int max(int a, int b) { return (a > b) ? a : b; } +int knapsack(int weight[],int val[], int c,int n) +{ + if(n==0||c==0) + { + return 0; + } + if(weight[n-1]<=c) + { + return max((val[n-1]+ knapsack(weight,val,c-weight[n-1],n-1)), knapsack(weight,val,c, n-1)); + } + else if (weight[n-1]>c) + return knapsack(weight,val,c,n-1); + return 0; +} +int main() +{ int val[] = { 60, 100, 120 }; //example cases + int wt[] = { 10, 20, 30 }; + int W = 50; + int n = sizeof(val) / sizeof(val[0]); + cout << knapsack( wt, val,W, n); + return 0; +} \ No newline at end of file diff --git a/Dynamic Programming/Largest_Palindromic_Subsequence/a.exe b/Dynamic Programming/Largest_Palindromic_Subsequence/a.exe new file mode 100644 index 0000000000000000000000000000000000000000..176b187065b69f1f96466f51b03cc0483ab63002 GIT binary patch literal 61866 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%0D&)!%6z?K-jS*3b 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 yjbk*)( +#include +#include +using namespace std; +int t[100][1000]; + +int LCS(string X,string Y, int m,int n) +{ + for (int i = 0; i < m+1; ++i) + { + for (int j = 0; j < n+1; ++j) + { + if(i==0||j==0) + t[i][j]=0; + } + } + +for (int i = 1; i < m+1; ++i) +{ + for(int j = 1; j < n+1; ++j) + { + if(X[i-1]==Y[j-1]) + { + t[i][j]=1+t[i-1][j-1]; + } + else + { + t[i][j]=max(t[i-1][j],t[i][j-1]); + } + } +} +return t[m][n]; +} +int main() +{ + string X="bbbab"; + string Y=X; + reverse(Y.begin(), Y.end()); + int m=X.length(); + int n = Y.length(); + memset(t,-1,sizeof(t)); + cout<wZo6Osu;CJ&Q6yab7z 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 +#include +#include +using namespace std; +int t[100][1000]; + +int LCS(string X,string Y, int m,int n) +{ + for (int i = 0; i < m+1; ++i) + { + for (int j = 0; j < n+1; ++j) + { + if(i==0||j==0) + t[i][j]=0; + } + } + +for (int i = 1; i < m+1; ++i) +{ + for(int j = 1; j < n+1; ++j) + { + if(X[i-1]==Y[j-1]) + { + t[i][j]=1+t[i-1][j-1]; + } + else + { + t[i][j]=max(t[i-1][j],t[i][j-1]); + } + } +} +return t[m][n]; +} +int main() +{ + string X="sujoy"; + string Y="sujoyy"; + int m=X.length(); + int n = Y.length(); + memset(t,-1,sizeof(t)); + cout< +#include +using namespace std; +int t[100][1000]; +int LCS(string X,string Y, int m,int n) +{ + + if(m==0||n==0) + return 0; + + + if(t[m][n]!=-1) + { + return t[m][n]; + } + + if(X[m-1]==Y[n-1]) + { + return t[m][n]= 1+LCS(X,Y,m-1,n-1); + } + else + { + return t[m][n]= max(LCS(X,Y,m,n-1),LCS(X,Y, m-1, n-1)); + } + + +} +int main() +{ + string X="sujffy"; + string Y="sujoyyyy"; + int m= X.length(); + int n = Y.length(); + memset(t,-1,sizeof(t)); + cout< +#include +#include +using namespace std; +int LCS(string X,string Y, int m,int n) +{ + if(m==0||n==0) + return 0; + + +if(X[m-1]==Y[n-1]) +{ + return 1+LCS(X,Y,m-1,n-1); +} +else +{ + return max(LCS (X,Y,m,n-1),LCS(X,Y, m-1, n-1)); +} + +} +int main() +{ + string X="sujoy"; + string Y="sujoyy"; + int m=X.length(); + int n = Y.length(); + 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 literal 0 HcmV?d00001 diff --git a/Dynamic Programming/Longest_common_substring/a.out b/Dynamic Programming/Longest_common_substring/a.out new file mode 100644 index 0000000000000000000000000000000000000000..e42222c4987fb1164919c4f2f73e3cb463f6422d GIT binary patch literal 20976 zcmeHPe{@t;e!r7RASxsQ!Hr;LRO|^LV}^tnM05ffcv%BRLRMVS$7JS_%waMUXWl?U zWfvOQIt^J_t4GeRyJcH<%W==1)t+vTcI_G#6?(e1_+ypb#Wq^CNkNNot*lk1pYMJ5 zzP!1a7goCev?uqRneY96?)Uq>-}}Ay-FM%Q`@R}#UR~tzFqypUX2!Xh77`Q%XPTr0 zV?kEWrsLno=CLV&i}4GJVwIjKvI-?rs(yOFQ0eXc6GfAa~L`lyrY16C{Nm+%( zlU@mB1+UWC!ZAr@xm}-+l#zV=-=^<~_DSm0qu5j~w&W{UlWA5 z`qN4O5?)SzQ5`g<)~st|Ff&M)2qW){S%RnXL%+SJ^VS(V9$&cp{$IUva^WL~_U*nx z+Mqf~h7#!umpD)P%kU!^tNq{LdBP|iH~y(>_JL`uEN=Y&51}Xy<-Edo!4<;yp~6DA z*9HHo3%isj+dvyW(D}c{nb6GHG6;?o>Cye*B8I3GjL}R>;>3T<3GNGr< zaLUwmrZ;U^t4EEL(Gg3VMry;_Rq#5`NoGujQPdGZ7ty31#%b>!D99jHEd0D z(@L;_Yn^%jl7PkPOJo6ZOZ-bQ^u3s?i|}6rT8#PJ%aJL32A|5y==iXtiZS5!uGAbzj>Xe&+;Q`j>?$6W9rPQAtKsNnBC`v`Jg_6q(f zdEiG>lo3BG7Mo6InYRR%nG?H+&Jd@Cyj)kv^ZAgNBz$7sAo0#GkTu4t6#Sr&FAefy zdtD&;W4Bm1oqOathmhkAT)4soPdM;0j#z&~4t$0KA9mo*`R$AYztkar)`8D<;1xlO zq1cNhAP0g1r}MN30mnBAJ5#~QDUb>_J8*d}C%n^v%QXq%-42|uF9}5Iap2B%%Pt2_ zb<1?W1DAb9W&0gCI^IqP9QegH%Gf~%j)7^XLk=7R%1%!>@Nyev>?sFMV_Bv_2Ttpo z$ut>($q4-4jlhTHSAL@Poi5e-OMZDhW7^(9vnY35>wB*B2yaww>D7QobJt!2Qa+E7 zd?%HRj=Y)6<@R%)CeYE5mu#L+2%{s1ZJs95(UB)@o+i-Ik?-0(O`M}6->`X_Fh@sr z+dNH_qa*j)JWY_JBVn7TiE(t~cAKXOadf1?=4m1v9SPVxoghX>uCjTW5JyL5NFJ^I zp`TjY$as6fFIM<#75)ztezw9-SNIZz{|uM=&iX!5`1ch49ff~G;eVmY<(EEAWWhNtdqz9_{w>n)Ti;aYsL2vE|yu;ruD6u2}!19-!Z3Y{VP_38E!h4%MC}-c`uaggq-JY=-Ty@ z{>XL|Ql<@htr+c^mfd+w%Vq|%ZO>%aK6NzoD!JSrdS-d()%(^T4V|#qrnohX}9WWcj{fn{h`z3 z%&?m?KZX&wy)5+h&V}cb&04akvoCbobL!E)(6Hy!pY(^`#;m5@b@!36k+A#pAvh7$ z`irlvLPpDmh697zz}`FHI7R>2PeBJB=Ip@U&4dmt-GSMJ3fJ>OTlSiKc8^mvvdcm@rn;-kZFQI#*iWc5Or`~m4_e}-f7$pzHV7qsl_ z!*$%KC4RA$M}0?!&wY~1{e=1vwssNl9soyc{snCIgx0@yII7i5<3TRp^G(Q)?8hH< zgqA(x2sp`WP=KWxR5M=S?;&t%g^gPt^$<994CJmw6p*{Oj_i*G`xauY>YhV(I7$5O z=V(wk#t9~jitNr$vzfDfJ3sYgmh9enHkZS6v;ZOdcHMe zc)E0-h99kZDXlS#t?4bv6sL^;-=2x>V4k_&<@C&$bT^6dUmX5o}LQN+-Xxw z_d|wodPm_Y)PXxBj5SWBaIyLL)#5k!elB;0fU=6!WtCqnzhryqE_TbD8yD8hznWmu zC%^B9&s>o}B*IPnb^#v(mC1+9KKue`%f-|Op|Xmv6|I^+CDiBje(Hf&mOm(Ao*gaC z+}o+&T5u&}bEVJZ8~r{;9I9ZWn3nL;js`nlD6;LGB{{@tEvPM1)X2+yfGQD#`5)zS zmpjW_crhWY5x<)tQw14=fYoIc4-_?(Res$YD)S8#hsvtp#mcf$J_h%|P7CbNSdl50^IWyMB-td&1_OcH> zC9iwg14UIo^Rn-GDT-N)o4ccqq}e3r}KkKV7h;l~#tYn~|08@yr$F@>*by;N^Qebge;&u8}BxbS{@9 zdXO%pkmTC9RJ?Q|-#s}d%IW%u(pljjU0+cW?l9*&HG~T_78LJ&2sPFs8cNqGl;pcC z@*SJAq9Tb8ikDZU-}ORYz;^w(PT@();VA%bAH+F?hhCho7K*qepfY z>@P=w7rQ8Y1@SUgQJ`PFtep7@;xOWTc}~>f#o&Ta(mv%m&dFabRt&X>v*r(S?aZS zk&K}<{S>ng@Gvev(R^Km&Z<`8Stjt!3Ql1md3k=2)^0$?1Akf?EQIQ#v>HE8fjD#l zCp$xm{a!9VKAs1F7xMr6Tz)1i^&x{K>pjf#GucHxLdWpecz!0k*hlCX{%<@#mkr%z zok66XQI5}K(|pJv$$9m12zW5ADtsKa>s=)9847;0z-KBroma@tEP+e=Nr6`?_yYpJ zLcyODxKF`f7WjMx|5)Hv3Vs<*c;wG@3SKYpY6YkL0VH3m;Aw%^EBJ!~ze&NL7I;v> z-xPSGf?tIBk?PeHJRtC91;10^EegI{;2RYDF@bMX@D~NXNx{zwe6xaIgAOG>qYBO z#O+)*?!40>aJlZ5?(E=p#-Dc<0;hd5n;R@idKHJ#e&7{s4yz1u*8Y10IA%jOBIa{` zuO6kP@ZSe{rpUj}?L*jSnZR)6>0RIjLdJ^FLCUFu%eQd6f_*3!=5&9bQk#qXw_Wfj zfzK$K!_;-*PhI3oFT!&b$X5h;b@ug1EiN!-7L8wr%!hm-|ED276gOFTy=9Kw>>|I( z1>fd^KM0)KrS{i%2zRU>}6k%ig)pWB)}ifizK_c zO=qyZj`qFzBi-HD&DCl)2bOimjEJ#4mNxWAGJ)bu1iPMiQB61=Pe#J<4^}!XurAh- zNT#q6iX`fFJ(i?ez^+?{En|rc?XqiL56>TopKZK;!W?2228?R`d%BG|-6Rtpx_C6d%&*YbMUk9A>J zm#f4Lkz_oM{a~&Ff$GqzwGFM2RIJ-{66CqXUb#fl)Z3Hiw?}fu?MTJVG$uA@Co}E?Eg(d@Q^qzuybW6o-CI(N*9u_x z{GqNEg6RncPC!~qByreuPtfWcgtaZPRNB;&iTDJvHAX6hDdD`wMnK4!z1=+7&CJf*C$)m>97*QRuBWqin-I*eLCP zH4Qz+r>t5`_QYdTHJu7DkHmI>!@lh>cHKq|>y$!#bqqV9*EHX@vY{C&nRdNNrwz8N z*Eg&U>7jLvw8dM;Hwg5QCP1xmJ<}WST-UI+X%))yPH545fNv7F&EK|qb!!OwrW;l^ zhhWu+hRra}6E)4NT5;Ha-p$}4>{uq>n{Go(qp^gZ!BL0mX}hr88XOGrZNFki?}cvE z=9{C1DQgEY?HcAAjp^KZVcW*@?1_!dio1F=ozy$gVYHS0LN=Mx7VNxw$nVBG{5V+s zh4+#>Hd`yspnm6G^gOfNJGqr!DWPHL*v~y?wHAGauLa04MuDV_;)?o(G#h)?<=*-{ zYt(uiIv922REjT<{x@GCC}6xjogTB@YUXe1r@i!fI`D??T#uwP{4fGPeuIB7=-9dJHzQt=8yI!P=!U!lvT0~UuVF)n#brUOBwMnDTrKm++=>fO7|n{ z??{5BOxlPrKR$Kwh|VaiNe9Uv%v%OARGA-FH(j`5ab9m-Xr7)=dhips73}9b@;Q%uJ}K>!tTSB$2A9aTzI+ZO zsn02lJZ?ASr8;m<{f)TKNJ-N97Hj{@`zR7!C^6{)3`^ zNvnjOb$4jI|6!El($#Lid`=~4P#7j3DR#2`^7(8G7*#3jm(Q~#mCtn{!jl^Rdx6q3 zQ>kx1_riS+O4Sw--x?aLN6LQ%<@5|z^78qZr2BdI{{_qjkfE4LefbdibpD#)} zT?z`S9zV|uecAuaCjzC9E|H>Wu@_B02VyhM@XK`cW zU*hG^r!JQD%jd50dvo%;a&-Jsl6umw9{{5eNqzZVNKo9U9YmQkNqtG_eQ~Eg3kvCK zi^}6v+K_sZzY@xX+4Tpll1ia}Xm0)h7R8nj{;v`B3vnBl`txnX%8;*=oK%iItHk;b z3WNK_3qSN8i;kc4U$%>;S?Rl_Y5gC+$)X?7$-$9iy%M6sy^#K4&61$~49=vm?0*2W CRx*wN literal 0 HcmV?d00001 diff --git a/Dynamic Programming/Longest_common_substring/substring.cpp b/Dynamic Programming/Longest_common_substring/substring.cpp new file mode 100644 index 0000000..8e1436a --- /dev/null +++ b/Dynamic Programming/Longest_common_substring/substring.cpp @@ -0,0 +1,62 @@ +/*Longest Common Substring(Dynamic Programming) +Given two strings ‘X’ and ‘Y’, find the length of the longest common substring. +Examples: + +Input : X = “GeeksforGeeks”, y = “GeeksQuiz” +Output : 5 +The longest common substring is “Geeks” and is of length 5.*/ +#include +#include +#include +using namespace std; +int t[100][1000]; + +int LCS(string X,string Y, int m,int n) +{ + for (int i = 0; i < m+1; ++i) + { + for (int j = 0; j < n+1; ++j) + { + if(i==0||j==0) + t[i][j]=0; + } + } + +for (int i = 1; i < m+1; ++i) +{ + for(int j = 1; j < n+1; ++j) + { + if(X[i-1]==Y[j-1]) + { + t[i][j]=1+t[i-1][j-1]; + } + else + { + t[i][j]=0; + } + } +} +auto max= t[0][0]; + +for (int i = 0; i < m+1; ++i) +{ + for (int j = 0; j < n+1; ++j) + { + if(max zJBf1cG;P}2dwW}Yi;uS2>uv456wrEYfJm?(wb7!bN-b7wCk9)p7J2FXe{1h^=FG_? zwEy0I-~WF9>w%MV&Tp^1_F8MNz4qgrIj8K-US?&C*|0|Yz(#u$>l)~OUd!Nic$Jm_~#!j$ADM_-p*gO!`U@!gFQ*NZWiprs6y2b*>f7rl&K94AiymcO>A8JjjrM&(Q3I|{Bt8H#U{f{VkM z_(KAbu2Cg$j%^LAT$9mIr_|w`mr;om=*$*ikJ&sdvoE7v5S~ax!W!&$>F}fh1e}$VXRNNa%1T&SK-9b zbp%Ci*q+c4iQJa;O7N_0Y|*f@dX1*K4@y?sIg1f@9Vz>R_-x z{eX@2DA%!D9tN+#=8-wiW$>JVpHc#uQfGMr3C~8b4L?KKdv8gg{Qnx0pBy**jL7fk z`W7!)`3K~ugvcPzJhT}cME-vyUAoudI)(>n5e^6*$`(l8RYU|fuAa^#2T<=w`8>!3 zI^<{JHm4@*&;%-O4}qEGW4oBjmz|wmi7$Nxct?@Q_~*# zu+9VXD(Mi0?9NCi@;gnC$YAhPGMzg;EWDVsI%Nxg1%coZd!>h|Hh1`t1LD4A1>)`` zR)O2Ye?&>4Dal0O4DXqUOear=Q^tet*ObCkl=TP$HBM}g*ysd|o0r7Rj0oss2(G3p#mont^oxvjIxIcG6^d+W0iz01UA%4=G%Q8G=k{4J%#Ssyskvy z&PQxu3-w5b;0XyyvxyRnlR-L@1Py0_O|U=rU@!a`q-5^Ml;e;q{A04D;7tY<>Ci$? z|Asj|a&7XLJxtHAfkm#p2rj+RtyXJ96(uD0WBiRCf4AboK+@6EnF=C#hE$@P^a) z;gq=gkT+KEX*3r@xerOX9`6ZK?igGK$7j~VQ^MOpg}Ua33YA@av8V3hL2h*WGcK4o zT!Hi#1u`wT%`OG5d0<;IjkE$&1;GL;+vcvF0^<8WM##~r$q|SUi6l{Y9~7f1>Wy66 zfRgFBMmw(J$Hv}9s=sCAprvOLsM%NoDd8tClHYu|@-BJx!QQZZ1DcMn5AwrN*Un5ebn1x0$Yo!zfEx?Ta+vw;Qsq(h#_ zszs**e-4!mcE9N8K7jm>45HBm7fO!q&(jrydLeekw#nn@`U-$Wfy0i^y@Hca?Gf8gg5JS|Nst0)dTvU6wJu&1x0#|qUc#j>j@VEif@<1B$_6w&yO!a#D3aaqqk5Qlr zc~3k>(J$od({0E3QKfi@eXcwFd6c zw@1_quvhmf_ztPR8l=*J#$H|j!N8w~Dk(c;9A}m>(61_JI@=BhUy`WU5{Rh+JWJ;0 zmLL9_R%&B!&yqJg&t2ts=pRvzW6z5bcTaeYhxN2W!0nEQ_p3h_R{rY#@#jd4YO0W$ zOevZ_MjrLGt`{9$^C8qB%l4jjX=o-+gl{ubkdmtnC(()B%gFbQNPcOH5x%HUO8f&uS8&H1laHX?tZJs23Ap&mB!ej9lO zedmQc9bb47&8BC`w>!_d9S?mI=R)x{=rtk3^~#dq0coh6vb1aRyF^7iLxPY4og-Ne z45d*8h`@PBnqiW5K4nM$afq#gh(m5%La6Iwg>n*;Lqjj0h!6)h5(KQ4~sC6i* zC1GMG&@+cR39)>Hrqapi)JCUFQksK@?T7#moMIM4rIV)}-?zC#JKcwo_`q&{c(ZRZ zb9_J9tqPO~9@0;f-Sfriiw|5Ny1><(t%XW(@>3g~y3Xw95_uk*+3DdE#!knhx1fm5 z4cC&?xXSA5er0pQK87ov&jZOxr11%qW#tDH#l-fA6HzKeJ<+uo#5DFs207AGX$yI5 z>J&=FaAhdipL~$Fzi8K|^=~vj3SITI2UUF`qRi@kLrLXyk+g4ea99d_hydDo1){6# zEGn&k+RB57J6V0gf7FAh&QMx65qG~5I6blhePlKShIEMsweej70aQ1`U8I2+Kf8lx ztx6imoV?m-_?yg!zr8%X)VODcFvvy^$UDbki&niFolr&ar`Vkqyk$KKu^^9InJ|#R zFHmCetVOvD<87rX*q_D=T6vdV&c3u=9yW*msE77{V(IR?|Bb9Spl8VTO#&gB1;fOH z(xNxFpEBnbrK7Bw6x&EM>aDrFh>1G^j7G0DlisX8qb|uFTz(k57z%_x<3>Qe%7arH zBE6x^Y3vPIRdD_KXTbH8O+6Goj5AblGDbf3P=QU&c1H$7EA8EH1YXs-bPHlgvGT5i zj}(F%GU)X|^-ppqLvFpJJURn99E8dq(n4dST5;i43vA&Y@Oy-WQgzXEk^*~p8WOYm zARBj-;Ni&d8BJADKU5x3X4qA%`x)2BuCS$%hB^@}mAHDQV<{G77s< zcfx~>y2^qq`m9Z}|K0L)|WY(>bdl>NBJM@(9f!P>c4mjy&w;1;p zy33raTEoPA#)&Y>*EaXVM{< z=q0PG+;%btsR2_s*TNM2us*N9HK}1RoW;LQ@2g zZHHH^B5VZU>rQ}3N*|*YaRCte3~IM%%9#<<4#vkhgU#!!K;0Du-^sa>a7QU zLc%s%;^wro7$yIc}(b=YPovf>kA0X@q)}r?}F1SN-=QXhG*^iad;Mt4HT=+nB@N7gW4xar) zx$##n$6gPWlYEAExlSd)@%`U1Wxc9Zx2)a zAhO}_h{AdKvoYzW2_1PWpVt2~jYnQck%tLp3O!QrG{^|c!ncRHF(zI0ZoU{ z;pMmr0iJcJ`%GY``YVL>nd-a2w_QE?Qs=qVN>k^#?aF0cFDiFA_S`OEQX$|fz=0ux zP=5C{aHyVki+VskJ$zKy(Xppk!rb?>es{W~>$_-1j^~GlE`wP$|8P9NTI#&8TDi>e z{0Au6MHLepXVj0M#mWL3x|OoP(R;R85G~xW%U1Vn^`nsDb`3jGkLvJ^tK8|q7a)gn z{i2VzZ3nYqb+#Kwc77FS&6S0VFkO=kB9 znGeE?qcZQtg<0muMY16?#iyvu>c9}Sbgfn}K0*CQYv0kejxxgouA!;Wa?acE0!LS| zNG9Io34v7I3!?qAdSLiJxLpnmeGkpOSN#OmaSxT_oX0PepB-C%t@^^UrRr-KW}s?r zc0BLIOnb2NLWZMj9>wC-63yDqK?C*Y!QZ=J;WYK5+}j*o9|Fo<>FC-?#~YNDXZE`S zBiV?_yPvR(np8R|<9yo6xN)IX``)nnmXpbH|=_~3xlxjn)H zVKnjn+3KL^LE#^c=ckeeq)g{FX}YpqJq9V9;iDH2@m`=_*-G;6Apx9@=Ley2@DM58 zO_MXnp6!x)7Vt-}4}X{2uk%*s=z1OMKq~du!#`7Bo%O;{iDA*s^BKy@kM@&@@K#h; z@ZF4|CL_IPwS~%u=v9z_3RMp{_INEArOj4}^V8@a#(Ue>on;=%!B{a6E4f?w62bZt(2( zz&Q2&u2%xHyCceAFe2TLvCwK|f%?CKXQwN#;V>Y97C8__U*^3v^zPguv7RLsWg0Sl zd-(OJJS+K-5M6p!-|#P>ADsD6wfYMh66Ggb^KCu0Zd!Ta{YO3@^3mG1B&zR+e}M!Q6%D?>So0c>^XuXA$gkY72220LUIfm2rDKl;%Rjl>1MfQabJ11L2T?A1>KkzkdHXsSW}qL%c_+r4j_xTqJL4U6I=X*= z_1Z(;Z><{e_MreaRE`wt_k8=*Lu8C^p>#u)TX5yrb2V&7x@>!{ryRZPc4bEAg)K_q zj%(15bz!{l&k)72=PpTo3C80Tfj8;;P~!HkHv-8$MHcux688@u*&!qTSimwkU>W{l zBgTiw_Pz>3mK}vr#K`a%*0g3rxZEwujhY{AU(f|hTn(e-&PE_UhefbdUTVGthK4n_ z1dhX+7H;R^KSbM4?lwpFG~@~nNr6{_+m38Ooxy-w$li7|v<-{lN1r8QLor7exgM{t zLz23`^TIZzrSrmUNB55a2hU>!{}fKt_kT?E+#fN1LHCKye!G%B^hZKPBysGiv;_Ms zz#ZMk08=#t-aRDgH5>BnL%GqVP>~7s5PTP!(faElX&V;I$UG!hw;%q93(Fz4y{Fi+ zV>#@u+ylTGJY*fJL84YJbUT!|MSTedAF80hmWTXX0`^1F7EGCjf3V|n)X0;=*&2Co zE_m++9odd7`~%9WfCAPnSx8;uo~9(oIXk@oy z3r&T*{>fAxKSH(rJ?V+)`WF4B<1${qxpS5D+*Qg1$_M!Mz#o8205Xmm(ePyS-_*fb zfqn?|^p4tZg|?kQ^M(8@lt|5Y0Zy?>tghatUU=Xw)(OeV`iDz}JZO}dCu1=h5oSjC z>m-H<=CrO8`6c2bU*_o50z$|dJji2L{|AsAJ&2?0_vGE%j!MdLQsk)#V9%H5zYWy} zyt^R=bq5p0LeYLFCGQS-cMo`fNPz1L_G&`^3hF^&j;Rv8U%h5LqGKxZwSE zXW-4A`;(zf$h%KHAO4p!6bu7Db?hz2Eu&qk@2Q?b$)N>Z31x)>yAeAuQBrH4PzSru zIJ$2maS;q_AICUBgyP>*i4{Z*FwGrK$Egv5p2fY^P~ZtIe0v|q2ym()FPvI^X-B>m zSH~gxh`3sWph}U3Ck5UKAs-5P6ui`nLa~KZE!&QwlZjZ+jR(Wh^Z|9-QB;V>(e+!H zCRA&uaT48Q3HhEH`YpT#(RV1HZvS|XQE#C6ZeQn1o#A@)gOq&Nd2%Xl#5UZX4tbv@ zD;AQg)#9e!)8VgU)pRJEn4#lHC4ms+6*n(UxeAByG*IAv2_^y5m;DJBzUPKsqTv*Q z!$UACYP0NXuoYjq!Q2t%3{M0v$DYFMB$zQ&_BHAhu#~_%g(pd!z-|nvzO}@!J%Vlx@zLk=eU^tqVJXAZoE^*+UDy1p&T-Ku3LRO{O-h9kJ*8% zS^erctb8S_?+-iGbMOW32#&6Yz|XNq!k7qt@;k?#JoLYo;os;|{|Z@EQDt^6%G2ry z!G}&mFtkQ=n{4PL&UIfDAzUAy%nk+8LaXheZG0v6qX7yB%FPel`uJK8Qzk;)x1r0x zIJ$%-LuF1r+`k$&Q1{ci^fd@|>fz`xzjvUBtZLkk4*uSW2Jbzt`cBd)YzV1FlX(bN zp|az=$=Fml&4J;`nwZpHE=1dlwP%agUJ7`7IcT((6KWX`D6PcHcM|NVDjO+szOR;@ z40rq)HC1*pw(p^U$(JXbAxx(=T~jc^g3D*|9{7mT2!>$O4-{LgQyzEww!>Na-@%3DTZ6iS86W;_pNyfoUJciI4FMte5H; zD5084Tg8``xGWuXjas<|l816A2i4|jQJcaJs_(d7G(>@bR4O&7a5-f@5OWv#8H9AW zGX}1pi$O6`&-A}#TIqj$;RM0L;*X5!WjmK zpCFcD;&O8UBR4q4Ns!ryeAuD6M=xFRjN5+80+T|%<3q2b9q2wz{R1-9{uV>I%X$B( z9%>ApU!{D;v3Dtrcd#y~WCNLtwzb#EPsIHrq-lWiA;uTzoLq9 z?8R940OjZ9!jkU|_rcDMi{KpHSCMYP?KaE|=(a6SSfC}{ox7tT8I!W>F~3fvaq8ZJ zaTujiYU3?7$+5Q&M7G@E%WQ|#)fYGsDs(&D%Y$c~8>e7u{XjpJL@iriavvzLPeTR8 zCh+ldcrMxXV0d354%31ctO~|zIDcSa5;)-ETet`=v?x!7zlyT~hWRlY{#JMgzo4ix z{N?Z#et{_&8}8O>V03+7CuXECMizn5)SU@+?ZQv~H|cvDiEwt3awPl$W}E|zREV{T z2!p+}p8de7*|0&V%k9B|TEh=;M09p^J%|(Z;`~89x|K>{kA_WmgJtJdcRI%SN?B+^ z@PMu7fygJHeDcxD(+^+UiA{O;$<9u+*RE{Jb&wqlzHXiMzGF{m+Lb-Fsh#KMDxS`B ztCY_^vkGD%wDc5Cm4@fg`1exGehFe?h6gf_S)aXuu0Ci~ogvHuY(1aj0=zPPFjj!T zxcy;g@SsKA&-Mr3u+I9RCzwtWp=)HveeiAd-S7+=5Ovd|ue>QehD`hDYQT##9JO>cJi?3Gbj& z3=*e?I!Q_O_3$Lb9^AER}-hk^A5?H`V&H(loZ618R0KSc?zN4joOnx4}js7 zn=5%{Qw8a>41(j9&P~A|lfsd}mBX{O485AnuZMpDIbh_;Aua$yoXSrYo!)v}TfP(Z zco{F6YEi)E@XFh(sIqiwsX@?%a@smQ4CQa`S!!Q&U}Jkv<;Boe4BvixF*Hg2h5B;v zZENtYi>ho>9gAMtSl!chcF~_UmSXy6J99un`(31d+_N$9qhI4T3*FXGx7mZgwJ1qF z)zbcVEupk8NiTD_HW^_vVC~tM6q@ap{xtn(vtC^k4%lEmJX~Psp5EAt;Q(e&k>@cN zVn0F1Wy4RIG|+C_u5xF>h}rOxn=ztt!iY4M2$TCSI;dO+Wv*U?xYM2)PDJ1m(Ky(T zyGnd0iv|MoJ85u;oRKNTU-rOS{Dvc+kkR@gss+E9{w}IaC3&UdC;o z<&V*6sKsWzD_J@?{slbLnGtHSfAs6=!#CcQto|CxrQ^m!ru56tZgnr*m<6qAsLjQF z0Zc>Vg2T4p+ZRj%T&?YLDtZqkkl zKhkro`oE#jE2be696s{ZDIT`V<3aV){d{^v_S5aZVgW=9hR!O&JdE|juAkcUzhce* zyYl**)~>6smpkN!jq~PYWizXjb6Szd}gXaT|6lr;P;O-U!>yCQT}SOToTVGV2@XQ>B}_d)?mB3^#%&wzFk z(du%P3pptL^Vt6t>7&U>=}%#&{B$18zx>jAa?wE)e28*Dgy_}nNwRT){N%q~*!#hU z%uL%@GEqAtnVtac8XQSSqf9ilk`z}ZZ*X_>zXd7D(3}gwW`mq`KZ3j+l=lwJJ{>9P zI@rKNXMJv@YZ za6V`&NJ$GOcvC8urxX^XR5njYNrOq8sF&ot0hs0m3Stc@9;8|F`2jYFBY{1N!TWLS zJ5kQN@!yVPD2{$I`gSW zWFwAbH%lJO1m7Ji58;$YK_0irlSv*r7CqTYr@ubhuDQLS$Ah*!vKOpjy-pg%5Q~#2 z|0?VaKZr!Gr->eq3-Gju$PSvl5!Wq0MRxd!$<*E?-ez_pTg?w65&l3W@;_uLjM~w1 z&x9BYdXrYrWszo3)I%Zi9>=~L`AH5cU#kbychCkews>H46dkRHyd)%{IYt3wqZmv- zr9J{aB{&y;RY2_*EU3lmO{XY{Xe&W`8njEyw5Xx`VrcWYeYS!&?cXDjFWUuQ-p6Qh z)B2(%CQ>d*vd)N&oJ*3Zoj!;B3f^7uXRWN*{Fb7a>J+^8vUiFi)D9=EX8B{s7K@D`iU_{(Bf8c$_Yzl$}tQW zPFO6U+RaP8??AtAjV8|6UuoY63LIDaV_P+ z@D3viqyItra?oajR*t8w(rAm5e6SnBGQ|)Yvo(PJdZI_sU}!_r;r-*|NZW+8do^B0 z|6u{IsM9Y_DmO01@{e5bApdv*{Qg7Zr^VjbSdwn}@+hGMb{LCqjmFn`P>X{`8`op) zrV<n^ZHx%kz?|&0aos+^y8gbD_L9$JQg$^6gQoya*k7w8JRS`V?X^c6rq2lif03 zh(u_;>c7jjsn?Li`HzS}UqU|~gUtli2W&6~+YRgpuo~?8b{JSC<{fKduv5TR0UK>= z1HJ?MF6`gO{w($**pFj>7yCu*$zQ=72Kzkh<=7jsZ@~UA_D8Yr#!g#5jxTBFujBYG z_Vd^$JdAk^_8YKgW4{&q?bw%MzYF`_*cI&eW8Z=OVeC7xe+T>1*q_DTk9`pP>)20X zKaKr7cH39+?lbJuu)DEmVqb`zwn7}&Xy==7?83ea`*RxhKUw!dR_OEl6kkDmlhRaQ z=dbqF(>fu0k9k|L;ye;&(rga)Y4GkZ|(50EPh_p)ZU>KHTivc zjOBBr94}TAK%G?7?(>y4t!=Ms-^{wD#XhB=wYj;jrJ=N`1sNiQl-6}9-uCv^cE%=I za9!5g5b*noK_qw*M#bleB~QkFV<~BY>~(&uP>vLLuC>%xw;>K@^Q@(0w@Gqi8&-mSKv&>A z;Pc0fLJnrw6sEzRxnAvvs%fnZwT*yNEDEF~gCGglCG#yGq{f#%yS)i*24L{xJevk+Ir`!Kb z3rJ6USUUFHP7kx~`qU5pCwT$QNi1Apn(SkKdYgycz|X{=G#o7KI{X#sF-f1E{{O%N zGoXW3|5zmu^?x&bfVTPA@53&2K8iOZiuFaCw79(1RgiU)xRdUh)2swqe7CIgwfNeb z>Ty}uUcdg9rksTfTyxgx|10LX=IDFlTDm8X8~JlYm+hL<*wQ+uL#eC3XAV6qfDtan z;>j5qbH)FT_WHSaLS+uWaX(k&(GK%6>e<}&taDrj=B6P0V9w8)WDp2 z{#ZZ@o=e!^6GZdpX`I--P}5>dz<7^Y-{I$pffgDm;^7AZEtbTN^%#@7%&0xV-`cXy z#s6@!WE($kXbr5zVAJBX$wmIwIwfn~LS~W1)vvE>XVyX(8f8T@*=VdBXvEupUva*N zv;?_LX=l>W@pOT!dXz7{YA3O534DOaq}O<&Jwa~t*R5mHFL`P*E-@2g(lLJNL{=0? ztfgOZBn{aEjTnS8>2(fFOOTc3w#F7b<-?>mIL~x8&PEa@7L}BGnRMK`8W;8t@Fxj= zGM-J~BYWwOQ^;*BmIPrIuDmUg>tr&~1R0Z$dSE#8)-PfG%c}w z;W9zkvAIKrPqj14J86X2iS`Sc2$YC4Kb}%zmQSVz0Vm0=9eBosS*A!={|WR-^2VkX z4or;!n(OX{cUdlrg_>Fjnx;cy0%TbuP2qyHVrJITz^u8+`Xvx%y(M}{GFoqqUP4`l zWpR==Np7gy>~C7PUSYOX(p1WyB-8UY_hI_OY^$ZIcYum3=Et&pGKnn_$$h*+Y8lxNOt77)rQVH`MuMg(ciDl^7?kSL)Wv1ha&>Q(gt%ake+` zcj6E6=Uwb6^amil_tYV%efP421r7<3f1E85e zf{94+-D}{_JO2dSBH5!Z!drwB(=P;s);77$zm6r^NL>3>5J8QUfjRm^J$vWJ+a; zsT+785?A(AKUN92bmN)zE*QXmJ%mfgj_Xt$#@R|ymDcGvO@eZ5K0H###qMC^ZkMhg zN)6v&Bz#9C(CkyFj}y#z*KKCWiElX{N1g|~UW78&!w6l}fVT}k+m!i|h8X!wd6Zpk64R1r5&kq+!lhV0&NogH;oRA(! z)w4_$S!_m1G}Bb+D#~P+()?L+eO>)}pXT+`M4n_M%rhliE)twl8buVJQomkai{+ww zSmG5TB@M+ik+asd_*w%UJn#^iuY)CCDM+SCX;|EAK~`!eEb%G-zP$o*}L?aouq**2WS)BY1p@s%K3#Gi ztn8!_g+(5aZOpm>=NzQq#6b(QhIEiZh&G0>?!x&v+mm3D)U;{g0?jFlr0ZVd2^7CY z0(Aje>SF0y!l&>IG^&Tq8=4UOwJtgF32EG%spy55gJDf=xmT_(DE1cCVwf0%RpwRI zl;oAlRo=yNp|{doUg#|^Sb-kf$W`r?$Dp#9sj4eWOKONyHG0`-em!qdY2IR9Om$6O zX(_WA6lE1lm$QVJYj0Ua)e5<+q`EAxrl43B8O9j|MYWKrpsZ5PD=(DutMbZ0gy)PC zFHNx^o7pc-QC&eoR07D)z8 zWmQFK#o}78Tw6`a(ALY6jbv|SNnG+oBbih!_2wZ@iUC&ERu{`<+)T`2z{I~4wS`pX zG~mLD+I$^OHDH~(qLNKAP@Nd)WCN|tE0n8?E2?VbqT2F;nv#lgmS#?^^48Q=l~=PV z23%B8TP5FKi+U<8DJ!XAQ;j58x@K8k6=bdQ7I{(0WSM+#xwojK0Pe^xGe}DdDm4$7 zW`I>*2vk;4SW>itU2ec+tdjDALT>@P!az&PYrKoSRdQhwa(H~2- zb%}QY_Xn3jqg6|FO%-f{T9|Gmp+)4CmMkv!lI}~^kk0eyy7DE z88cQ;T2si}W-PykU27mh(4xFja6nk#lIE9{u^lO@p5O4%HPg238x-J+!xa4EP#Ng4bvV=SubnhJQWPBzy} zR+(3@1a+g;An6{Z%rsNhtf=&sdaEHA@vFu?rD(h)sYsSgIe&#*xxAu^%`+0om8&2$ z;w*VUwOmsnFNL?yzXVB9RYe&m${v-7>d9MGjV4{qatsO)%uTLZRLLvVTLnWeFes@` zAp;bVV<~PLl|qyT1`Ca3-kd6{i))MW*&+iLKA4@q0>PESM9Fd(>SiOI%3YjSQ|zr` zpEXdC3oAH9WqEQzaUN=c<&I3Am$M)y`Igw^mSm*eoxrDyi|Z z5+jkvt+Fh6X-S?8*S_6IDX*YlQkhp$m51JnEiqE`5d@7<#8{v-CQ*~|4jwvKS$s-y zi5QcV8%df%WIk45z{2NCE3{s^npGNUC*V7%Erpt^ZFFIa%DOGfBWhGk5 zawDk})rZFp>}6OWxdj77J{VoD4K(?Hve8$k;CE&iQ9dnArLm+KY|@(X$ie1(%ea&J zU^A}@<1y;jw1K8}T}kHCMwYSA!h9?SQTXHFa`JaEeB{^p)ywiKwb3F6xY!9o><@LZ zZJO9zG(+rLEK^CUq)p%+oh)Jk#u7^{Q%UcsaziUt5dt(V#)ASf=D9vu&^I^wTIxZ0 zw`F3@Wi&j$0e`39;Q+ZF%S+Kwc4opj`{huyyh3;xOU1B;)GVZfCAEMK*3^7D*ix%Y z=$MdN$dBVv(d7WB#?ZB(v?4#>i@FzpJ@pQ8G9H}EW$j`@YE5aiyttw!KM(H6b0(#h zV9dT;TqLKKdKc#*Fz}>_sj+<^#*YZkH5HYVh*2Xhs^NoZ`gH9~EkdWGjowpJsS_$H zsY3gv#7RQC<-8l^tS55{ewvnw;k=PDCAF+flV+;MlbCVR%QOIPEr4kdzQ)LVc}#jV z(-o;@dDTk<{gu2d<2s#RbKX~_VvtExasfP~8ePTJ%z7uPjL*QXLKSiUUc#&sah}w$ zc9Zd-M{^y`$L*7dic%J2k4U>-OY7Lso-M~`ohg#17>jTG85*%Pn)s}J+_SiEmx@+e zfG!{1B(Ii|0uxp;f8hdnjX_kB4ZsouU~*PdQdVa~UJ4Ag{V0uaM_t(_(NM*Og)>V^A*kQulC046P{M8 zW?^)8tBo% z#QVli;rEny&Zd_7R=UR+N3}&z*(rR}H#GJ5FbC&Ji1R$mQnON5mja}SUi@&#KvDq5w?jlI65UI`Y+vL&#Tl5xWG)YIMMG@1z zN>>y%?pfM5LI68%{&H0!%zBno!E=MHZFuSo{T%KovGEtBsYC<3-hZEfEEWzW(z+JE zojKtKX9;M=*(&h&GW$aOU5TCUC(3-JUs{5`L1q)?rd9$6T1ex69nIwEG|G~+VElvx zD}AqN+P!pn6J7S<^3&~auz-}xoa0iZNs=|?%9LwUCS%1AorZL+eR7i3ex==s{?6iN zNlCZj5;wT6VeBH}x7ndcI7t#`=19^xvacWEod`Xf@ zCR2{_(^1fb?3l#cF3+XLsX+;gkX=B@(^2SLFr7F>y8d#JJtct);-CjpoHj^vYZ8@b zNR&DgtnvF(Hi^rcV5CgeWaTB0tZ60y2AE=E2s#pY>SbU^5?(fiU5~@GY_^!nL$ZZ_ zfboCn)(p9=jD8IzNf%Nk;;)1onYazjq)R`7fhF|Drgd|hXq3U~H?PCp_Ka%E2XC;@ zQ$*G;NYacME0$!gyJf|S%(=JDm|>B?p1wF}Wo1;r$O2=Z<UC5 zi-pt?g!ClHU(N)gxv?r;vJ}Sf9BET)#(L5hr?@RG&hfl8o(>S_bdO$~(M@**N?hPM z1-dmkhu;USYf(CY;f^>N5oee_(AgZYpafis$6e;(0&cl(t$z+Z97Aci)YIze;&0xZ z$cbM=;pb5J^|$uhZtbQF=bA7(fa zyhJWp`$>l@ie%uo8~9xU-w-C5Rk{vovCoz=ma!J=9@<7x%qr2(XU$s%f2K|RdhQdv z>usF`Po(Yv5A-Q(@usSljC#3s?cJ1%a&tbM#Xs`D7{K6&qOtue_Do$u5^9u}TqNO}NS|WLm(ftC)M*GWi=LPovFVydC6q=VH2ezr4r3<{R;dAhiKDS)v>Szy zPF5+;NQ^mq8|P<{RnW|fNfD>IRZrqlShd}Up9Xc{*~pCgwzeq!A8=NPo%7-71lY}M zLR>(KOh^V07Z9T^ZUs_oqG<$DYC<*xDKjBGK*~+XE+CaAqz_1q33&_1auZ^MC03b` z>wv5=A*Ddb-iD@rAnQ%Y7lHUq$iD$0YZP80GFkX@TA-@Fjgb9&Q z;ZK>63?NUNkYzx2n~?i~>@y+X0rH#)`8kk26LJPfzX`c&oM<~R0k<_g7swG4O$(4g z6Y^CcM@`6cK#rM^-vc>rLMG#7b0W{6S51)SEGm?qeNNIU3vti(OdA0O^;D1O2oraT^5o35j1@|4SoqKTD%L34qU=$y$e26 z7DYW|h}ra(>jXxUj@FuVnP(&YQZifY=pCY^Qz27;c#=oTS!mo^ zStOZx%P6R-aW5~tGYv517BY`YlSjEPO;egjIme_?{2lH)@4Pb|G*AX*#aDa=(d6ZE zK4Z~P88eXhbkrJzcz|T$BRitL2&n_o7e#dMt>n3=^x3GS8AKS}bc=a_h}v;Q(_&9H z5NEsye1vbL5JH@9fa_0>%@7?wuK_w%z3Xk~ESQM4^F0#}{o+fcJDMFYoeCVW>6!`} zl4m0*s8nOqeU<9n@KqySKl=t*b<)^n5#0}CX`(GfBPSQ=QTR#OIS?MP+9awoh$Y1{HXheA6I{= z2KPnfq24EcJ53gwrE5y*5@KQIjj_liAe|<}4P?-S+(fx%$L1;qvL=e?Htf8fXh^R+ zAUf7WM{FyQ>x7=`67~@^#OFW2A)b(;^{zRZJn_j<-w-s!hdh%;4Cd_t@Ns4QWj=z2 z_|RN$goo?1+PRwU(eXxqT<=+f`l6bO_U762Rv#0xU=7#{Wb9FaJ+7?2xUwqa%BqPg ztMF1~X|wFJkXOtH8}WFw*?x5O4cL%2>Z35D$6t!e=Iy&04LT9fP%Mbwex%VPBgrb= zi@)ZI)qTvV>n`08$3%}d(~tu7!6%L+8X*-VQB96UL%H^A^3cI5x$u`bnzuoX1_2o~ z51JFTt2Zxd$SUk?tmEnob=`BLy6Y*%@$acS)hX4asMGJ@rdoX4 zp*p3S6m^<2ilv1OU7#ToSo!)!JQ>wH)wZbjW$^?^dmH;2xRr>#qpV$s5q?fTa-$&_ z?Q6kH$YMfr`r>H%N77{XgU4UUmE#%Nz81Kntx214Z;8lNm>I9+hU|oI@iK6SClR9L>x)nv-!f?l>CyK8=ZUjw_C4FpefYj;243W?CH0 zvvD+OaWqfI(KzF1zB7_$!OoFL4t;sfq}PIn<7j9t$xO3jB+Y{R;}B&el0)M$GoQQT zXg-Xip&uWbb1fZ-!R2cEz(;G)aU;H-9{P{SV<8d_fCPP!M z1+=1SLUOv|Xr7Iu>5QZKejE+GwbR6T!LB%(O>s0k;%JmOnzoTN*_+~gH71uf`XW2W z-Q)1JG~h)Cd<&!ZEJYWLCdPY5#y$eFD^rYVM;qJdV~K}34fV@{Q|#Zr=U9T)>!K1$ zD3rw)n2dpjkeTE`*ER~x6`iD@->Jv2S6YoX63=H(*YBy-MRF~Xl$8JBC-NO`i?jMOxH z)kq{~`N&*19fmL_d9vH$a{1$Oor>myV61=!nAm8|6QtOxfaq=6g7q=+g1M7?-0RY4 z?gmXV_XHi;7Gp8NXD5(TnmhveHz0mfuAczW`))z=b0Dhv6GC6QJ!R4&69~0#vY{x8-k6?lD$55%@2v#QRv`K;QXu~fL|>y8$df?y zm?@AxAhglKhd_P~MDM=@auUdHt#$-*7Rausgm^I^f5qQ%lNMKE*#3Ew%-KM6?-hKC zf#~BXs#AHBU#{m7i)M;~rj~~P*bGl-Cd3(wJQzpwHIBGqa{W6HiVX&zm$Y0)StsI< z_u~)?rfdB%x|7WJ@i~gYXA)=zqckM_bwEl@)>r`KsEOuwAf&WW?<;`VOu6m`qQ@3t zpU(lIxg*6!fqVnVX%pw~0ulEMTpA6nN*063sQnHyVHI?-S^B%FsUcV;Y2 zJ|U*E?f_D1;k@{{Ujkx|NIw9w)x_snAjhKh zE{k^*@knBL<`K})W<=3r#3wUWuipd7H0gB)h`t^rB(!4j_@b%wNkEh+AG{)izjAa{ zlt#qNI$pYnKLTmsvKSHR8t{3V^U*zg4v>eVe2BqKKxh-SgJ-Sri|ewQ^*{_w7lVdI zrv_3D#BD-kjgL`!D-ar`7`e6pS!1%s*G;*orO;by3r!L}1sZ+SBrLWcNF_LH?Tcz> z11_-{WgP>Jp*vpZ;iuQbJ{9FG%i=vw6zYkq;QV{!qT11|Aznz^AI*g%b{;e?lNNT| zD`<$;7tve}gjgCrKO4y7QI8^;+kxn-8KU&%K=g5)K-z({f!5G#2av-+s8AVmf5RSH* zXr=;zqA|6c0VLa``w}2CO*AWkJZ0k32}IlraN$lm`7x45Z2t@zLJi%22!u8RIRHdo zhtzZjqI;Y`jstnlr2FrH=;L`o^Dz*8eO@3Fv8mB5VH+;0C7T1!_NN# zgvMIr_re-`fl!?qo_PR>c$!7G*c-$LG)7b(26EOU;W;2RCi_@1klbXVnGQr>m9?uF5por^ljBj9ll=K#^hy9EoCF1xL0&Hw$SthPyQP}&J+b|=*SGQ zO7W?@`@Z|`0}H%_yEJQ2Ta&Nex3LL7{N+#gw+HGKJ#9XZqjh+8pZYQlU4T~y(Tl}I z{)IB$tH@u4hU@Z05UV91*KgWXIxmY}F5Xy2uS%nrQsK8({-*lPUY&O)67gaz{=O9+`_Id~y|hmUg}HGM%#Ye!&h$Jhi5 zQAATS-Y7IS$xZaebv!*hHbqvZw*WuLt#5B?Q^uys!Hd$H>c>uBh=-5S=lL4OCYfKi z@t(0$v)ADjgJUP>_%5BEHIIHJ=il6dp9xFN z@2@3X+q&_uE82G{!bL)tx)$M{qdHMmwjd($TJXJqOBB06P@*~E6`TRQcLD-o~coGT*{BKbbfeOWqoVgrF6eZ2ybkXY47GCc2DSQ2G^8wztgWuy*YekK zyOb8$LW{L^4OH%>D7A8Vzw?*N?P$9+x14CXhzodr^Aa2vX!Rj}lG~(Qs**J!`45hD zmgox_d*>c=0~oITx~x3`JAkM)Eb>SIzZ}l8FYYB_|gfn7CH5IVDhhd zL{ak_Ys8R^#$Q_g=rF0MDzD5d)9Zd@HewVd z^A~yZ`%fA0O+G9WPljhK$jOj*yc(Ej`HR6R9^%#FimzGLK36aJ5EI-H zht_s)A~$IDH;@Auj<6mda+1Y^Z7gG> zukM}<)CPh-Y7KK09zEbQjjaTGi)9f-^1X{o%DKTc7alqP;#qXBfNg0lQMZu(nJHPu zPYPq}W$a*}MXl%;tPJ;9@2hKzaU`LL+#xq?oQL;@lOLKKUb|I><{Zd`LNU#2l)8j% z@gXn$b7Ium;t|ci=q=J(%n`m3{R|c5DTw)$8HEeYed6nse=Q1fai49|RsuD0ZOxDO ziWqC+15~k&&+9?^si&49`lT(Co-i1%Z#^JzY3lGIZt9;zm1>^>gOSA--|#kdOn{qx zc!>zwUun$e(YUwqqP5i-CL4+iEk}mn61-?iZ+TH!qFxDU#`Xdfjh>gwB zP{`z%Pth4d!V&pb#I$Zg7sK@JHQvea&(`sLu`fJ9NWg2g>Dy(fB1mF3+V0iCeMn-O0B!qjY!|iLZ$`e^dz83a@iEJ z>CCINE*bt%h2ryY@@QX10O z(OgV@Qb(Xw?~*P#UNFx=bV>fw&V NW42swLhaW5{{z7x1egE- literal 0 HcmV?d00001 diff --git a/Dynamic Programming/Matrix_Chain_Multiplication/mem.cpp b/Dynamic Programming/Matrix_Chain_Multiplication/mem.cpp new file mode 100644 index 0000000..b77d6d7 --- /dev/null +++ b/Dynamic Programming/Matrix_Chain_Multiplication/mem.cpp @@ -0,0 +1,34 @@ +#include +using namespace std; +int t[1001][1001]; +int solve(int arr[],int i,int j) +{ + if(i>=j) + { + return 0; + } + if(t[i][j]!=-1) + { + return t[i][j]; + } + int min = INT_MAX; + for(int k=i;ktemp) + { + min=temp; + } + + } + t[i][j]=min; + return t[i][j]; + +} +int main() +{ + memset(t,-1,sizeof(t)); + int arr[]={40,30,20,30}; + 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 seoLtEB#yo17Jsh= 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 literal 0 HcmV?d00001 diff --git a/Dynamic Programming/Matrix_Chain_Multiplication/recursive.cpp b/Dynamic Programming/Matrix_Chain_Multiplication/recursive.cpp new file mode 100644 index 0000000..360acb2 --- /dev/null +++ b/Dynamic Programming/Matrix_Chain_Multiplication/recursive.cpp @@ -0,0 +1,31 @@ +/*Matrix Chain Multiplication +Given a sequence of matrices, find the most efficient way to multiply these matrices together. The problem is not actually to perform the multiplications, but merely to decide in which order to perform the multiplications. +*/ +#include +using namespace std; +int solve(int arr[],int i,int j) +{ + if(i>=j) + { + return 0; + } + int min = INT_MAX; + for(int k=i;ktemp) + { + min=temp; + } + + } + return min; + +} +int main() +{ + int arr[]={40,30,20,30}; + int i=1,j=3; + cout<0XmWP7G zZep3crp>R{-k-Onx8S4IUVpu|mm;-X8XyvEsf`vbRoc=@+l`@?T8g~t{y*PyW_EV6 z2~vOBfB*k>U@~()=leR}^FC*GrtIz>W@U`oaE8N-?Z%akJpT96e>xDIeEo~bZ0DFC zP2Me){%CUbT5r3vwXJ1MTWyoGzP7o!MRC@7oNfMQr?=TzSmAaywKRA#uef4th9RC%8{vfHYkWon~OhW z5T!Me2;AdX%_>)CHq;)V=d>t;wLFdG^kwcL` zc`Rk&tek8fF5!6wCz5@SL`e7zr<+R|#@HdEOVQ}IawzhL)6Khuhq--DjqYC}B>V<` zSvYHc7Qg4JvNXC!hts7jG$S8hC~z`8SeW4qvLL(dU*U1(+V!QkO~Q?%^Dwlm+Y;9v z4&RaeTHvg0{f+&F8N7)0+cKzlg&u^@0%s*h=Nkxh^*Xvfz%~0dbs*4}zTd{Wl^fV? zk3p7y<8aP=!Rh}2MUX3Xk<$?IVi?EJcZt2{wm9Pd&nW&x(k$tkzsfZ${{nuB2oG@P z!Htk0`2UU4(zOQRC>fNB(Eq^muwHo(mUk8rfsH3mmoXPm&v5&;f(dlsXQAiOCJA+8 zN!>02wRGq*{`i5=t0j@!?jpTE2oJt)j^j2>*W$j5IBvf?aB|{~i?w-huaXX9$nT7d zqVlO35*`SgOrragJQn)jB;lkj^pi1+?XXwoG1Zn4iif44$te9hdcRZzQT{tacYrQ9 zK8XlYLT4OcI&msg4g*6oDTb-gwS#pa8p?Lq=mvroTNzUigwD^xB|RhbFGMPeCoEJz{3=Rv`h5qq#8i?D5Gtdg*;zy@2$eLHWUqy~Yl zonajdPt8HNCvw!NzgdDjNg;QyhPx|C@ktwU$FD(f&$R-4GUdxfJg>%qlH4V5yLyn4 zH(dkcLHr~`5(6jgU1yY3inDj{6d!8MW8pU-_xL!dswFRZ&aSv;)d9o4{y1VS&d+0e z^YCZrfAlDksSZVqfd&6N1S=2Ognb8-7LIQ%wkmJ!G^XQX-kOYH*W%kfGh=gMuyCw!*A%gb@T}f(M zhPp3w)}lqR`3D@2^>+3ubAzsv-Nj*0c2|bI`^X$=ASi6j3>GdR)K?wakwH{@ryt=qK~lN+h*PVvAg6hM2&HSxUU!g^{JDP5tj+)P}1x@)!yRS$!lt2z?V-Yg*)AW8dN#K zg9}VLLZ18bU*M3M)6@5>11d5N;J(l-uo2b1&{W*P`5^r60M*{xgg}_^_*FddG^T>m z@1eMWg%bH5zuS(x5bo5YLrW;hy-Vw+tHMUR)XebflLf+woCr&AKsiq18M&RK~Mk!n4bgl zLtnjs9!007dQOChgq6ticb}jzokoP>bJEvFNBddV1j% zG<5e)hhGX=>b{U|-*H6 zN4mmdkkRj=p$1b=Wxv+%8lYRf5nIPPF5Kbx{8AM1jti3=pT7s5>dr~&dd<=K8WsF? zEYK?*%nPqvaLWJZVA(*|%Z@I}-yL=&DllJibkR_1$9#l>?2K(go}&|k9JauJ$nlxi za1*RK3|U?MxQ#MmkOpJwe%}8ss5#V@5Of_zQ<>52I(pE;`yHwxpg~dXqoN&j9imcl z>Ka0hJxLu^&~^MtMpsX-?mI4zay^g4=b}HHCPqz7$oW8cjH9ywH(JuSUe{eDVc6w5 zA_X@eaqQg^RxiL`T_@39QSw)TRNCLzqo;qs|L4I*Cqag^Pm`eY zAM*b>uz6sLGA8hAj4xk>#|}z2cIU$-u$k)1;IASAUPllD`1s4rf1|P<{QkCpe_)Dw z$l!e%yn?>t!rhL~J&QJ}d-2m9=Q13h{R-|y!q?X3G1zdUvN*6`8f+t$HqCyg$cXQf zAyk0QkuCcN(8e^O94EyP^Z=nS&jKSl&lf>0oqgqgy5^O@Tvpv;YsEr0EYjCdW6?8E?xtgvf_? z^2;xJ$1%q@lQL9+62WKn+oX&+;`Zf-FA$yoIxf~i8dCVJjc%Q1_Hm2yp6o*lx*M`P z98cUvmvvLgYJ{?TyI$KEx0@lv`SM^nnKUMjSXTTA0~PJqk%Cq#NF$l47z8)=gfX%K z(p_l_=GoNobdTZgV4yGQ0Iz?Mp_4W~qVaWb(m)}y`a)Ql-u0G}%IU&sU*X`8WpbYOwuq6uv0rz3{OPUiKGbm)OM!@ZnI%@ zX8})!GPXaC2cR)<)}mZRGoGqIUm6#%;vQYk?zHEN*i8DP9^ChVrK|U$x3b?tI)k>a z5D3#Om}VT17W`t%Ni(<54qelzZKIS?r_b$$t=j;MM6Xqop6p&DFUcR=emMLDycC*~ zfd+NbG2EidN7l@2>qM-3!}zK?xiR51rAHD)NW)aT|gwGn_Eo0lMs76e+Dd>PFAkl~Brim1)^8 z4<%8-RQGkgrd*>A1XC8g8LYJX|Iqcaa)crCrnTr~vJ~L8YcF+tIxoE!%+A!Y8 z=w6l=DU2&K_}sV-71#=9UN99@r1T7`TcQ8$gn{SrN90eCiJIA`07Klgz*)3USRnCFK`Bf@BfKjqVQZ2V4a0&{ZSP@P%7;!uKB@2a zWu%bUJQC~6NFvd|(^Qn~LrzLxO0YCz8W;AOW0&o!t+sLKf)>07VdwIcZwAiUlxM+^ zqA`og79}Jggy@ikM#5%a558mhbcahhJsP>5fp3R{(d2HqY{shh@Jan9o z3Z2360!Vax{tJ-yJql3=cq=$i{b&t{2J^uJJFN?KZNR-qci=$M!xuSuJt!w+%rjuwaRj>5{>0mk;_B%74WQuoW4Qkw{TVE#o*KosCve`bEY{{%9d&tB zipWhY^dyZ5)-lHm|BDQ3M1K_j@DFH>eERwCT0kHTaC1NolMaG-@MKuYtU!FS2~e7wRvC{p7HWRg{)CIsEKpjAt}-TE2ssBiPX_^2i3+`OQ5!yJ{f!gJOzOBEo;~{)r8IE%qB0Bh-W@m_ zR*C~>KTvM|nbYw?9_dLs!@JxRCC>59>Wm~bDSheG|MkbEp=*VjaCp2EwQuOBB0T~p z_^r2xsQnn%s;_i+t;Fw4 zRZ_==RmxS4y?=scCuK}@JEQ*PMNIP9;O)eMg5JH^g4QAfe%X{ULw!G}WH^UXkdNxn z%_}p~124f2<;Den*}Mh9hSV7uKti3@BBclPl&(W)`T=yTKcn zMN-FkxOP3%b)4U#T;GYw!CC|yyOv67zaG6zMEie5FiqC}2R3%g7PTMq_QPbS`hofm z$qkaRn{d9bz5&B2>>P45_Nag2_P$H@-n`%g$LDA*sq6Rt-=XIZyeowUs4zur-j5Ks z`E}SlL$f(!n9T=JiX%4fM8ItGQzF{1ncAm_&1(N3)pRXaFg`*4M{?iMxrUfg0V&pVj?C|IPiffAAZq?mg-U@J_~HIqrG;1^qeE`fJpe zmM&4>z%T<@bE{)-3TD~^9TzekowKPeUM112?Hp2|{y6YECp?^{zMp%Cqm!2Va#uJy zx6$<`WyP6&PXCy|`7Mslg}m^^W0lR1x|MR~r94O18zcbrp%j&%I%8t!?yC`g2_=QE z{gxsGU#G+86Q{q_^?OI>S3!Ssbwev!y{t&8o-wbs?^q?poj=d8o1(cYM&C+CL3l?}vGg3lFu(YDSM7^?= z?A=8Mq&W5tAjN@$l;|#+oH=%Fk<_z*-+y!H>)d}Gw=+lQn=lVnsXrh3k^1`dmj+7= zk9M5TR93vdk4!{qMRo<=$sF_=@!hK|q#veN!2(jM?sx2RSujeQq5gdE0iuN2J&wIK z-1Xmv2=EMkgRWFBS4o5S<34wlKM8!+?p0P!-+iByyGj|KyG5A``) zW6#p=VrdCRJC40H#;@J?PF!|aeIsy23j9_Y`V`g|&fcWl7dU%|(ik|qLj56@TOGT4 z)qclbYha%Qj#+`TTm13rd!4WOXLN;?fk0S#2xFmD$~^UlfwPm9H*o2fKno7EqObDa z8tLwMP-5MSEy_eNJw5bh#GVy=NQf>yyLad(NFNIGLAUx78WJr`vM#iB+q!7wh4&u| z`Kb4r@iYTaZor@-=uT1#?A;qB=~d~x`XFWlTl;N2l+ZvQ#$}`%H(Y~m2h|lC>!tBI zWL)SZ+=|f)1lrINPUd48B|&{J^b8 zx@}(}<}r;LxAAe0@F6hjlZx zWgPZ$Q&mLOQc^fW3XA$U4(H7z!0x-P~9c>b-ryaGNFIt}jO13;R z2ID}nKBu~nnOHLl6;krBB!>aq!%&Z0xiScKXG3qHr6KfO95niS)wj{mhT0&>(3Zlr zsqb}fg1&R;R*=8QarM2e`C$~^YaP2RSpLb~;(y1nYax||zq z^%&J)1_Qclj)rJ>0h@wlN2sfK2c2YaRUZ}hTy)iQK$MG~`es~%uHKIMndnDx-+?iw zqia0w&bS6r99{nvkEJ8mS6BACdZB;~mLrDxJA>`O~9ehV=*}SK_ z9KGxoWlG0|2bIFD*P|cn#CYM~VTxndJ(BtgoX08rzo78Jge{$K`IEYfEGYAc+&6T1 ztBm%?0+E4!%h0zPF+K#_dnz1Rb_7llBg3Ou)0zR}avxM~*2>YAd7bdYb#O}V3^c^& zun3mQwJx;4(eUPj{$uc_h5LEv-AMh(-R$U^2(G}Og52~-g;e!>_u;qjQLBIW=^dP28 zL;tn)YUIeXLpd6GPcCG?06Ov=dHBDGrwtjj(5k*S_#}n+xcp$AMK^sg&rsLXasEN& z!H)Br9i30WXd2~Aq?)sT@NHs6xjKbuAFhsFDOAvVrLA{`(Ken6y6o!tz>mf5)}f$l zPiP9p>0sd2QY{nToGz_ z&=vIWMB9Ohl3MeOI?#2-(RBxzi^j0#DU1_DQ~W#9C=)fnw2V*&ZjIJ-zk|d)qcz{I zr!WGXVAzX7t-i8#q1LX(qxBK(Y7rV$YH4_s|2IMKLCH5DOT8!(HlMO(^AU71VGFu( z>~Bu)S2rI)hU7Uqe+}0JYwR>mqCJ+N=efaOqqLy)9bAZViXMV`1KOEI+3oFkr6W|2 zevqQ?!S0ae#MVS`x}GO57E)2Gu_F}v(pgM+b4VCEj;qNaH1bLY*QQLuB{UHf*e}5( z0KLIme?-8uXYdsoP7ydX2&W=9%N~cXu#;h@z8~%kO@b`PuELx|xG`AvICTnGO5mNs zvy>eFP7J8Ny45zjyKuHNxPdI%{52jOujUy_JYTwRwfE=oex4dP z6v@{fnyfCe4L%_pgN1-8@53+uNzL{}L8GugBG#xfpGPQIc8pgUn~FlSe`uU$Ce@bq(a91jJERHd4#^o?3Py)Q-jfVA+Z2zK0r2zC4i<#B^FqYcfWdd~hlJ6MV=PyeFwE z{Lr=1FNr=_WDnXNr&biz^AGQa!wY`t9|DN7+VqZHL9*( zJ6>31Q8%Ax44gwNV26Wnhr!_oXv;8hxz&%68w$n=klBcQ$e|UF9tv^B&A(>;D}$b6 zgKwf9=w+Px2QbzA8bi6OdH<*$Yz&-VseH=u!V((qU|mqj0Wu49>xC44BleFFrvb`o z&haidL7V_dw0^dr?1bYppN9_|FSvdU6K5%@_`6a`gu?IQ;S$!UBKaq>Uu#q=ExPAu zAg{SD^iyOG#{6)TmSHs~C~K0CyTO_hBHIo|kN&>~hUiQ?NMU5!y_oV)x=WC5tgjpj z3|h#zKpA}JctPT}4RYJw&hBkg^O3Fu^&E$!hf&+ zVEXyMd7I;NPg9nkYovPBOSh{|s6QCW(AK+NxEqrM@Iheb|EAcZ>U*4&)|pA7n*RYQ z^}p_T;hM(4g_TN@dKA}L{-06CI9|Y5ct7!Tz3}AkhkD`X#sw%GU6Uwnfh{)73~1XS z+6~`_!^jQwLvVxNK1fgOH7;0Wadh2kMjf>JLIoo9YuJECgw%tyqN`x9a&c0l zS`d%kG9!0uK@uiqH)4LBK;zUG3gR(JrP#*XY?9-JUJ%)G1Fy2JQfIIKc(5=dC1Y9O zY|8ram|8#FN1CW+>r3wa1@?)^py&ubeh%G1emxL6gvXiGiGd4NB_p&4_Ycocgaics z3xU9Vi}GCPY25WQ%#Yd7S3{5U0JU&KUkC+x08=tH)TQOX$mxBDgi(4ivha_T+-XRz zU6hkgD7_VA!r3d8!=cwPTMeFS7d;~Y> z#rcDtw3SND9u1owfXI$b*qKn@Q_6y41N&{=4~IYa;Dh&HoqT9&2M*<(XFEDjUpwjf zDD?n45O~u%{XNI7(zI*4Z4)}q%~J9@&aG5F{oR!?3r$OR;RI=DCXIhDCG4jlCSiD> z_o(&7n<(_BMl~gfS%9tkGu(jJCJ#g#;E%^+SAhc-bsyUoc*{EdPu+oZvIzC!AuJ$> z6}sO+Q1@b~yMs?u&)M3lg4IbA_u-+eezn?uQT^GUo>t!pO`!o%7d^wptJ0HT+D)N; z7w&NBN<)ASG~u>~`^cqgC^CRRpZ7h-t_fRH&g`=&-*UWAo%}%~gnuyfv}kY0%>9!@y{`RLKY`%uAnIOKr2*}vEGFrzlqbAmmT1U!j`CE=}fi$UUqUcVJ0KDp#|~=SKKt8nm=>4t=tAfg zZV++rhCSh-LCtjS5+!fEA@57NJpWapGZ+a9^<1FN9-z!r-wfSH3$fe~YI~0L2lQ;> z)YyMY(vm+m*g;VNJed)CA|g{5^-jc}{CNNjuQGTd&uplm^elzp*wVQr@I6X!*njQN z42_{jv-!=?Phba}JTAx$Koh6(n+2yf9n+TYL_XfgRZ}hs*xbDG`YN(4ooZ?Tbiuhv z^z7^zWn=de`-1)J+qx?+1~*~&_UntmE7hN27Yx>m2IkH!7J%=+Ok4dq2UsxI?#t*B|elz1%ZSV8XST%Jie1})bR~R zJ|Uy^MPv)6v2dc;ht!P_`*-Q2JQz>Sz*muD!6kOJKUiezzB?gs+=|BzkjlFgk+AvF zQEKuyrBD-`uwXyhMM%#6J+gB-R@k$GGbsb6zlv?2Wlz#=u-Rt4CrLUm<|RDcn;C4j zzyI^eLpR@(r2ZU9*67+Pkju|plgqIeUxACs=SSUT7w6CliJ2V zJV^I}F>EGXdBpmm>H7dITh3)%+#zI~)vlW~SsS#gqFr0Ht53VG)vgWNb+vX~sa=<8 z*J|xrsa;F8Yq56C)2_MNHA}nB(5@NUHC?+-)UGMoHA%bLwCgD?9VfMGNV}fUuE(|O zG3|O(yB^W51KRblc0HtB`?PDXcHN_0cWc+3+Vy$u`W(Mv4u!^0ExQ^c?8L|RGtcc?}11G0xLr(NInB=pq zuJ_48RI)cX00H)`Dc!F32|A!dNn2CIGsv(RkF@eJ>t_(T6;Fu}JJmmdQghN1=*vJ7 zg`XyNi+GLe7&=Rg5sL`j7osOd&G9FAymF&iDz;={qPE#7KnKbGRoTiAP2+(`@DZkYh&cNQ_WAclXSgNCXYY=l`JV<+G@-Dm$mF8GH{ zs?S@uroLWommAj4o|&E5;PWwAZu6}1wkw`Cxe>qP^~m1l#ulIro{@0Pb5w@tK=00{ zJ{T}EYCmX9;KZ4SvjeAzU|4WO`b+R&JNqMZy+q`By z{XkpsHhG+lwO*gU&2#Hm=5#LcwkiHv-(7xB+eRMYX>c~Sv^l3XIO{elo_1%g;;e0G zX!EqUJEyk7)!?aVzOT7ueY3N*-Q#a)akhDUE%mjEw*^RBi_%ix;&ZO^w6zm3wIP%8 z=u$j&Ud7q&eZZsBuJN_hp^RqDY$BuQ%qE?T(P9~nDU2;DD7e)*4Jlf*G_$2`jkBPw zrM-P7Q0GFw*Viy}cGm2ythsZtXJ$`#F36mnnFY3wgC|NuMDWKU_ittYKlS|W%E~`| z{ZC(il5G=j3-O2g;ejXO*_W`g;ncwquC%yHhx9-dlQ!98yM;9LB@J2H(<4^Ep9Ee4D^G3)hG~_^T1gqEwCMYhCA&fpD0{ zeGy*4_Mv?9q02jd+orONC(-FSX%i}u@KAJN`_zEwNuMd2A z(R`aO&6f*Wvh@V&_m^qXp|=Y~pS3<>3&d6NMx>vYz=es{TcoIP5hfv{m1U~$BzMNw z!r=sJH&#(QYAH^NOX{*(NSxgwA4s;1#!oo$Uj%E+&?5yM+(Y^d{L2?pO&W&I*Ku&2t4PO4Tp}REyv?r&RCp#;W(_P8V0?k+XiM+4d z3i`rluu6t&#GjR*DS$sq5}~j-*}1{Qi5`WqES!Bf9|!LqT*-HL!*>OVEAZEq=;hWC za%W-#zaKr#lwLZMo(+fZBv~dui+(m2a4zCcYVlo^51&Ooq PNKOmHxsofFB^MSX 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 axr8x7W*K|Q=n`WoH??Qr9E@Qi+kOLpB>U3< literal 0 HcmV?d00001 diff --git a/Dynamic Programming/Minimum number of deletion in a string to make it a palindrome/min.cpp b/Dynamic Programming/Minimum number of deletion in a string to make it a palindrome/min.cpp new file mode 100644 index 0000000..59cf96a --- /dev/null +++ b/Dynamic Programming/Minimum number of deletion in a string to make it a palindrome/min.cpp @@ -0,0 +1,53 @@ +/*Minimum number of deletions to make a string palindrome +Given a string of size ‘n’. The task is to remove or delete minimum number of characters from the string so that the resultant string is palindrome. +Example : +Input : aebcbda +Output : 2 +Remove characters 'e' and 'd' +Resultant string will be 'abcba' +which is a palindromic string*/ +#include +#include +#include +using namespace std; +int t[100][1000]; + +int LCS(string X,string Y, int m,int n) +{ + for (int i = 0; i < m+1; ++i) + { + for (int j = 0; j < n+1; ++j) + { + if(i==0||j==0) + t[i][j]=0; + } + } + +for (int i = 1; i < m+1; ++i) +{ + for(int j = 1; j < n+1; ++j) + { + if(X[i-1]==Y[j-1]) + { + t[i][j]=1+t[i-1][j-1]; + } + else + { + t[i][j]=max(t[i-1][j],t[i][j-1]); + } + } +} +return t[m][n]; +} +int main() +{ + string X="aebcbda"; + string Y=X; + reverse(Y.begin(), Y.end()); + int m=X.length(); + int n = Y.length(); + memset(t,-1,sizeof(t)); + int d= m-LCS(X,Y,m,n); + cout< +#include +#include +using namespace std; +int t[100][1000]; + +int LCS(string X,string Y, int m,int n) +{ + for (int i = 0; i < m+1; ++i) + { + for (int j = 0; j < n+1; ++j) + { + if(i==0||j==0) + t[i][j]=0; + } + } + +for (int i = 1; i < m+1; ++i) +{ + for(int j = 1; j < n+1; ++j) + { + if(X[i-1]==Y[j-1]) + { + t[i][j]=1+t[i-1][j-1]; + } + else + { + t[i][j]=max(t[i-1][j],t[i][j-1]); + } + } +} +return t[m][n]; +} +int main() +{ + string X="aebcbda"; + string Y=X; + reverse(Y.begin(), Y.end()); + int m=X.length(); + int n = Y.length(); + memset(t,-1,sizeof(t)); + int d= m-LCS(X,Y,m,n); + cout<;3vnwQBQ9tskj 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 G@c#ji09)4p literal 0 HcmV?d00001 diff --git a/Dynamic Programming/Number_of_subsets_with_given_diff/num.cpp b/Dynamic Programming/Number_of_subsets_with_given_diff/num.cpp new file mode 100644 index 0000000..cb9eb1b --- /dev/null +++ b/Dynamic Programming/Number_of_subsets_with_given_diff/num.cpp @@ -0,0 +1,52 @@ +//Counting the numbere of subsets of a given array with a given difference. +#include +using namespace std; +int t[100][1000]; +int counting(int arr[], int sum,int n) //using count of subset sum +{ + for(int i=0;ij) + t[i][j]=t[i-1][j]; + + } + } +return t[n][sum]; +} +int main() +{ int arr[] = {1,1,2,3}; //example cases + int diff= 1; + + int n = sizeof(arr) / sizeof(arr[0]); + int range=0,sum; + for(int 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 h+FK|b2w0#}?9J?iqiQp%{ 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 +#include +#include +using namespace std; +int t[1001][1001]; +bool ispalindrome(string s, int i, int j) +{ + if(i == j) { + return true; + } + + if(i > j) { + return true; + } + + while( i < j) { + if(s[i] != s[j]) { + return false; + } + + i++; + j--; + } + return true; + + } +int solve(string s,int i,int j) +{ + if(i>=j) + { + return 0; + } + if(ispalindrome(s,i,j)) + { + return 0; + } + if(t[i][j]!=-1) + { + return t[i][j]; + } + int min = INT_MAX; int left,right; + for(int k=i;ktemp) + { + min=temp; + } + + } + return t[i][j]=min; + +} +int main() +{ + string s= "abcde"; + memset(t,-1,sizeof(t)); + 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 z z!8=7oM9Y|24~@}R*0$gU{%C1`?Z>FR_4U++%x-P+ul+CN&qVhmUMkFcWd7MTdQ)_x zjBlr*80fUo5z=)!7q}2_Rl+*}WppHRAr`;VsQdNt53JFfFZ@0zg;fwf0Y*1m(;SfX zw?}aSNX8qYi884r^3Tv>R93?RjiE|2oig}e@L72=}_ zWexh}+FJQe-v-Xnn%d&y@4${F;5lWy{fQ>x)K-wI*+;)Wms{{=5Bzu?qYCuE)ax^p z0foY++=#WvslP;;f21smny;voMh?0%r`OiE@HgE@vo|%P&#ULf6H@TH;93( zT7G$Uu~(+|<;iT&Fiz%Q!r+fgrNKq{xKR8^Ds9f}*|TOd@#JWiRT|c6pc>^A6!Lz8X(J!4Gl>|q-;Ze^pf*~$(vibPiUfbeqsrO zM(cll@Z}$*L$zYjoL*d1U4wVC<69i{HLX;?{C(?kQymo*1Ae@kr~z{wO2A?ref|wr z6zfZaN$FFMEqGZ!(eh7qP@KibJ``VrjBk0gQXJ-dhzahRMP2Gkm4bha4@z-n^)bwJ zL@b?Y_DAa#AHLMCp`r1$OC9?%#uRD{c2lhl#ePCl7ovUAQg6FfCmn2M5ld-y=2u$L z;VLr5aWzrT;$L(TjxfYG31w(z`e-S4t6>@fd2f@ymi*T6-!=H`rYs%?Wohet)pw@B z=;+DdF_`)BPzYDAYa-ZNAd8Tg<6T%-!Yf;Ad4p%OJd5tks2p0S)-9xe6jYY+f`QnI z9X_&YAvpTIQNuOY_^O*@oLCe@Zk21-&BRwks12Cfsdl3nQ7Dj(0>wmyA?gyg#b;Ob zkH1ooup*j+(l;fv04jVV`l(RLlNUgB|cLMm3e5U zZ|RskKiZFIV;j9%=_{MaG=~}`6*%_Aa)>ywJt2K4I7W5ThiY|q79Wz}^<(bG>3KDL z4G0Thx{so{{g*zdtBD-y>&}KZX*XqLyi`^+DVlr4#G%*%{nhg+)Ry=vF6<`yi|E+b zzpjC-Ic#YDGA^qH9?{7U3N6%PqctAW?NV!lC+Wo;vR@ivC>agu(Y|NMuH=Hf4~j@G zf+^=vpAnC#B5@Bq#?g@)<> z^=5}D{tzP(T?yWMf7#$Ae7l}%!qjupH=k(SgD>}q;WD?R{yA__C;H5Jh)*>0IL<$0 zPGhRrkQW_?U{HQ%t8yns+bD=0EbjERH2VDbxI{I;*jO0Tq_js6^)BD=981qnlN+Pc zLcL>zU@fZAY=nD7zjUrU7zn8M(V_u2#Nd9)=AVG{2jr#K0H pzD)elI|9mnf$<{N=e6O0s5tQ?hCH~EFB~zor>b;^80w?s{}aHXEolG% literal 0 HcmV?d00001 diff --git a/Dynamic Programming/Palindrome_partitioning_recursive/recursive.cpp b/Dynamic Programming/Palindrome_partitioning_recursive/recursive.cpp new file mode 100644 index 0000000..cd914f6 --- /dev/null +++ b/Dynamic Programming/Palindrome_partitioning_recursive/recursive.cpp @@ -0,0 +1,56 @@ +/*Given a string, a partitioning of the string is a palindrome partitioning if every substring of the partition is a palindrome. +Example: +“aba|b|bbabb|a|b|aba” is a palindrome partitioning of “ababbbabbababa”.*/ +#include +#include +#include +using namespace std; +bool ispalindrome(string s, int i, int j) { + if(i == j) { + return true; + } + + if(i > j) { + return true; + } + + while( i < j) { + if(s[i] != s[j]) { + return false; + } + + i++; + j--; + } + return true; + + } +int solve(string s,int i,int j) +{ + if(i>=j) + { + return 0; + } + if(ispalindrome(s,i,j)) + { + return 0; + } + int min = INT_MAX; + for(int k=i;ktemp) + { + min=temp; + } + + } + return min; + +} +int main() +{ + string s= "abcde"; + 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 literal 0 HcmV?d00001 diff --git a/Dynamic Programming/Printing_Longest_common_subsequence/print.cpp b/Dynamic Programming/Printing_Longest_common_subsequence/print.cpp new file mode 100644 index 0000000..49b3edc --- /dev/null +++ b/Dynamic Programming/Printing_Longest_common_subsequence/print.cpp @@ -0,0 +1,73 @@ +/*Given two sequences, print the longest subsequence present in both of them. +Examples: +LCS for input Sequences “ABCDGH” and “AEDFHR” is “ADH” of length 3. +LCS for input Sequences “AGGTAB” and “GXTXAYB” is “GTAB” of length 4.*/ +#include +#include +#include +using namespace std; +int t[100][1000]; + +int LCS(string X,string Y, int m,int n) +{ + for (int i = 0; i < m+1; ++i) + { + for (int j = 0; j < n+1; ++j) + { + if(i==0||j==0) + t[i][j]=0; + } + } + +for (int i = 1; i < m+1; ++i) +{ + for(int j = 1; j < n+1; ++j) + { + if(X[i-1]==Y[j-1]) + { + t[i][j]=1+t[i-1][j-1]; + } + else + { + t[i][j]=max(t[i-1][j],t[i][j-1]); + } + } +} +return t[m][n]; +} +int main() +{ + string X="AGGTAB"; + string Y="GXTXAYB"; + int m=X.length(); + int n = Y.length(); + memset(t,-1,sizeof(t)); + LCS(X,Y,m,n); + int i=m,j=n; + string s; + while (i>0 && j>0) + { + if(X[i-1]==Y[j-1]) + { + s.push_back(X[i-1]); + i--;j--; + } + else + { + if(t[i][j-1]>t[i-1][j]) + { + j--; + } + else + { + i--; + } + + } + + } + reverse(s.begin(),s.end()); + cout< +using namespace std; +int t[100][1000]; +int max(int a, int b) { return (a > b) ? a : b; } +int knapsack(int weight[],int val[], int c,int n) //unbounded +{ + for(int i=0;ij) + t[i][j]=t[i-1][j]; + + } + } +return t[n][c]; +} +int main() +{ int price[] = { 60, 100, 120 }; //example cases + int length[] = { 10, 20, 30 }; + int L = 50; + int n = sizeof(length) / sizeof(length[0]); + memset(t,-1,sizeof(t)); + cout << knapsack( length, price,L, n); + return 0; +} \ No newline at end of file diff --git a/Dynamic Programming/Shortest_Common_SuperSequence/a.exe b/Dynamic Programming/Shortest_Common_SuperSequence/a.exe new file mode 100644 index 0000000000000000000000000000000000000000..07edec164e1067a329e5ad1dd067405f190cb9ec GIT binary patch literal 54008 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 h=QgoS7et% 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 +#include +#include +using namespace std; +int t[100][1000]; + +int LCS(string X,string Y, int m,int n) +{ + for (int i = 0; i < m+1; ++i) + { + for (int j = 0; j < n+1; ++j) + { + if(i==0||j==0) + t[i][j]=0; + } + } + +for (int i = 1; i < m+1; ++i) +{ + for(int j = 1; j < n+1; ++j) + { + if(X[i-1]==Y[j-1]) + { + t[i][j]=1+t[i-1][j-1]; + } + else + { + t[i][j]=max(t[i-1][j],t[i][j-1]); + } + } +} +return t[m][n]; +} +int main() +{ + string X="geek"; + string Y="eke"; + int m=X.length(); + int n = Y.length(); + memset(t,-1,sizeof(t)); + cout<<(m+n-LCS(X,Y,m,n))<Of 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 Ohbr{KEmwQA{{H|2=z)3w literal 0 HcmV?d00001 diff --git a/Dynamic Programming/Subset_sum/subset_sum.cpp b/Dynamic Programming/Subset_sum/subset_sum.cpp new file mode 100644 index 0000000..cd9b50a --- /dev/null +++ b/Dynamic Programming/Subset_sum/subset_sum.cpp @@ -0,0 +1,48 @@ +//Program to check whether a subset exists which adds up to the given sum. +#include +using namespace std; +bool t[100][1000]; +bool subsetsum(int arr[], int sum,int n) +{ + for(int i=0;ij) + t[i][j]=t[i-1][j]; + + } + } +return t[n][sum]; +} +int main() +{ int arr[] = { 2,3,6,10 }; //example cases + int sum= 18436; + int n = sizeof(arr) / sizeof(arr[0]); + memset(t,false,sizeof(t)); + if(subsetsum( arr,sum,n)) + printf("YES"); + else + { + printf("NO"); + } + + return 0; +} \ No newline at end of file diff --git a/Dynamic Programming/Target_sum/a.exe b/Dynamic Programming/Target_sum/a.exe new file mode 100644 index 0000000000000000000000000000000000000000..6a41fcc8e9879dce1396822c90ab07a165b4613d GIT binary patch literal 51115 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 z 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 G4gVj}kz4Tq literal 0 HcmV?d00001 diff --git a/Dynamic Programming/Target_sum/target.cpp b/Dynamic Programming/Target_sum/target.cpp new file mode 100644 index 0000000..cc7fec3 --- /dev/null +++ b/Dynamic Programming/Target_sum/target.cpp @@ -0,0 +1,52 @@ +//Counting the numbere of subsets of a given array with a given difference. //LEETCODE PROBLEM. +#include +using namespace std; +int t[100][1000]; +int counting(int arr[], int sum,int n) //using count of subset sum +{ + for(int i=0;ij) + t[i][j]=t[i-1][j]; + + } + } +return t[n][sum]; +} +int main() +{ int arr[] = {1,1,2,3}; //example cases + int diff= 1; + + int n = sizeof(arr) / sizeof(arr[0]); + int range=0,sum; + for(int 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 literal 0 HcmV?d00001 diff --git a/Dynamic Programming/Unbounded_Knapsack/unbounded.cpp b/Dynamic Programming/Unbounded_Knapsack/unbounded.cpp new file mode 100644 index 0000000..fa0567b --- /dev/null +++ b/Dynamic Programming/Unbounded_Knapsack/unbounded.cpp @@ -0,0 +1,39 @@ +//dp code maximum profit +#include +using namespace std; +int t[100][1000]; +int max(int a, int b) { return (a > b) ? a : b; } +int knapsack(int weight[],int val[], int c,int n) +{ + for(int i=0;ij) + t[i][j]=t[i-1][j]; + + } + } +return t[n][c]; +} +int main() +{ int val[] = { 60, 100, 120 }; //example cases + int wt[] = { 10, 20, 30 }; + int W = 50; + int n = sizeof(val) / sizeof(val[0]); + memset(t,-1,sizeof(t)); + cout << knapsack( wt, val,W, n); + return 0; +} \ No newline at end of file diff --git a/Dynamic Programming/longest_repeating_subsequence/a.exe b/Dynamic Programming/longest_repeating_subsequence/a.exe new file mode 100644 index 0000000000000000000000000000000000000000..456912e2fc344467967a88e9a469c5d2e53fa569 GIT binary patch literal 54008 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 literal 0 HcmV?d00001 diff --git a/Dynamic Programming/longest_repeating_subsequence/long.cpp b/Dynamic Programming/longest_repeating_subsequence/long.cpp new file mode 100644 index 0000000..e0137f5 --- /dev/null +++ b/Dynamic Programming/longest_repeating_subsequence/long.cpp @@ -0,0 +1,51 @@ +/*Given a string, print the longest repeating subsequence such that the two subsequence don’t have same string character at same position, i.e., any i’th character in the two subsequences shouldn’t have the same index in the original string. +Example: +Input: str = "aab" +Output: "a" +The two subsequence are 'a'(first) and 'a' +(second). Note that 'b' cannot be considered +as part of subsequence as it would be at same +index in both.*/ +#include +#include +#include +using namespace std; +int t[100][1000]; + +int LCS(string X,string Y, int m,int n) +{ + for (int i = 0; i < m+1; ++i) + { + for (int j = 0; j < n+1; ++j) + { + if(i==0||j==0) + t[i][j]=0; + } + } + +for (int i = 1; i < m+1; ++i) +{ + for(int j = 1; j < n+1; ++j) + { + if(X[i-1]==Y[j-1]&& i!=j) + { + t[i][j]=1+t[i-1][j-1]; + } + else + { + t[i][j]=max(t[i-1][j],t[i][j-1]); + } + } +} +return t[m][n]; +} +int main() +{ + string X="aabbdefgcc"; + string Y=X; + int m=X.length(); + int n = Y.length(); + memset(t,-1,sizeof(t)); + cout<a(R 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 literal 0 HcmV?d00001 diff --git a/Dynamic Programming/min_insert_delete/min.cpp b/Dynamic Programming/min_insert_delete/min.cpp new file mode 100644 index 0000000..ec265e5 --- /dev/null +++ b/Dynamic Programming/min_insert_delete/min.cpp @@ -0,0 +1,53 @@ +/* Given two strings ‘str1’ and ‘str2’ of size m and n respectively. The task is to remove/delete and insert minimum number of characters from/in str1 so as to transform it into str2. It could be possible that the same character needs to be removed/deleted from one point of str1 and inserted to some another point. + +Examples: + +Input : str1 = "heap", str2 = "pea" +Output : Minimum Deletion = 2 and + Minimum Insertion = 1*/ + +#include +#include +#include +using namespace std; +int t[100][1000]; + +int LCS(string X,string Y, int m,int n) +{ + for (int i = 0; i < m+1; ++i) + { + for (int j = 0; j < n+1; ++j) + { + if(i==0||j==0) + t[i][j]=0; + } + } + +for (int i = 1; i < m+1; ++i) +{ + for(int j = 1; j < n+1; ++j) + { + if(X[i-1]==Y[j-1]) + { + t[i][j]=1+t[i-1][j-1]; + } + else + { + t[i][j]=max(t[i-1][j],t[i][j-1]); + } + } +} +return t[m][n]; +} +int main() +{ + string X="heap"; + string Y="pea"; + int m=X.length(); + int n = Y.length(); + memset(t,-1,sizeof(t)); + int ins = n-LCS(X,Y,m,n); + int del = m-LCS(X,Y,m,n); + cout<CXkeWzwiHl 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%0Db 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 +using namespace std; +bool t[100][1000]; +bool subsetsum(int arr[], int sum,int n) //use of the subset-sum problem function +{ + for(int i=0;ij) + t[i][j]=t[i-1][j]; + + } + } +return t[n][sum]; +} +int main() +{ int arr[] = {1,2,7,8,9 }; //example cases + int range=0; + int n = sizeof(arr) / sizeof(arr[0]); + memset(t,false,sizeof(t)); + for(int i=0;i v; + for(int i=0;i<=range/2;i++) + { + if(t[n][i]) + { + v.push_back(i); + } + } + for(int i=0;iKZmxqGH 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 ?$|;sB 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 z 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 literal 0 HcmV?d00001 diff --git a/Dynamic Programming/sequence_pattern_matching/seq.cpp b/Dynamic Programming/sequence_pattern_matching/seq.cpp new file mode 100644 index 0000000..64bc847 --- /dev/null +++ b/Dynamic Programming/sequence_pattern_matching/seq.cpp @@ -0,0 +1,53 @@ +#include +#include +#include +using namespace std; +int t[100][1000]; + +int LCS(string X,string Y, int m,int n) +{ + for (int i = 0; i < m+1; ++i) + { + for (int j = 0; j < n+1; ++j) + { + if(i==0||j==0) + t[i][j]=0; + } + } + +for (int i = 1; i < m+1; ++i) +{ + for(int j = 1; j < n+1; ++j) + { + if(X[i-1]==Y[j-1]&& i!=j) + { + t[i][j]=1+t[i-1][j-1]; + } + else + { + t[i][j]=max(t[i-1][j],t[i][j-1]); + } + } +} +return t[m][n]; +} +int main() +{ + string X="AXY"; + int p=X.length(); + string Y="ADX"; + X=Y+X; + Y=X; + int m=X.length(); + int n = Y.length(); + memset(t,-1,sizeof(t)); + if(LCS(X,Y,m,n)>=p) + { + cout<<"True"<