最长公共子序列问题:
思想:主要运用了dp动态规划
//LCS问题
string s1,s2;
int dp[1010][1010];
int main(){
cin>>s1>>s2;
mms(dp,0);
for(int i=1;i<=s1.length();i++){
for(int j=1;j<=s2.length();j++){
if(s1[i-1]==s1[j-1]) dp[i][j]=dp[i-1][j-1]+1;
else {
dp[i][j]=max(dp[i-1][j],dp[i][j-1]);
}
}
}
cout<<dp[s1.length()][s2.length()]<<endl;
}
最长递增子序列:
同样可以运用dp动态规划思想
可以先对序列进行排序得到新序列
然后对新序列和原序列进行LCS的最长公共子序列从而得到
缺点是:复杂度太高了 n*n
/LIS
int n;
int a[100010];
int b[100010];
int dp[1010][1010];
bool cmp(int a,int b){
return a>b;
}
int main(){
cin>>n;
for(int i=0;i<n;i++)
{
cin>>a[i];
b[i]=a[i];
}
sort(a,a+n,cmp);
for(int i=0;i<n;i++)
cout<<a[i]<<" ";
cout<<endl;
mms(dp,0);
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
if(a[i-1]==b[j-1]){
dp[i][j]=dp[i-1][j-1]+1;
}
else {
dp[i][j]=max(dp[i-1][j],dp[i][j-1]);
}
}
}
cout<<dp[n][n];
}
mysql - Mysql2::错误:表.schema_migrations'不存在 - 程序调试信息网
2017年第十届华中地区大学生数学建模邀请赛经典赛C题 雄安新区的设立对北京的影响研究 - 程序调试信息网
二维数组最长递增java_leetcode刷题(十三):动态规划2(斐波那契数列,最长递增子序列,最长公共子系列)... - 程序调试信息网
javascript - 实时时间表编辑和保存 - 程序调试信息网
mysql - 如何通过命令提示符导入mysql数据库 - 程序调试信息网
mysql - 使用MySQL更新原始表的概率? - 程序调试信息网
mysql - 在联接中,如果特定列为空,则返回结果查询不返回整行 - 程序调试信息网
题目1442:A sequence of numbers - 程序调试信息网