#include <iostream>
using namespace std;
int book[111][111];
int v[111],w[111];//v价值 w重量
int n,m;//n 数量 m重量
char s[100],t[100];
void LCS(){//最长公共子序列
for(int i = 0; i<n; i++)
for(int j=0; j<m ; j++){
if(s[i]==t[j]){
book[i+1][j+1] = book[i][j] + 1;
}else book[i+1][j+1] = max(book[i][j+1],book[i+1][j]);
}
cout<<book[n][m]<<endl;
}
int main()
{
while(cin>>n>>m){
for(int i=1;i<=n;i++)
cin>>v[i]>>w[i];
if(n==1&&w[1]<=m) {
cout<<v[1]<<endl;
break;
}
LCS();
cout<<book[0][m]<<endl;
}
return 0;
}
最长公共子序列
最新推荐文章于 2024-06-09 14:21:24 发布