luoguP2268 [HNOI2002] DNA分子的最佳比对
思路
简单的最长公共子序列。状态转移方程是:
Code~
#include<iostream>
#include<cstdio>
#include<cstring>
#include<iomanip>
#define R register int
using namespace std;
char a[110],b[110];
int f[110][110];
inline int max(int a,int b) {return a>b?a:b;}
int main()
{
scanf("%s%s",a+1,b+1);
R la=strlen(a+1),lb=strlen(b+1);
for(R i=1,x=-2;i<=la||i<=lb;i++,x-=2) f[0][i]=f[i][0]=x;
f[0][0]=0;
for(R i=1;i<=la;i++) for(R j=1;j<=lb;j++)
f[i][j]=max(f[i-1][j]-2,max(f[i][j-1]-2,f[i-1][j-1]+(a[i]==b[j]?1:0)));
printf("%d\n",f[la][lb]);
return 0;
}
这是mcr130102的博客,转载请注明出处
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律