PAT程序设计考题——甲级1045 (最长公共子序列) C++实现
2017-06-17 00:38
447 查看
to PAT
#include<iostream>
#include<algorithm>
#include<map>
#include<string>
#include<vector>
const int maxn=10010;
const int maxc=210;
using namespace std;
int main(){int color;
scanf("%d",&color);
int k;
int n;
int aorder[10010],border[10010];
scanf("%d",&n);
for(int i=1;i<=n;i++){//please think the question why we store the vector from 1
scanf("%d",&border[i]);
}
scanf("%d",&k);
for(int i=1;i<=k;i++)
scanf("%d",&aorder[i]);
vector<int> temp(n+1);
vector<vector<int> > lcs(k+1,temp);
for(int i=0;i<=k;i++)
lcs[i][0]=0;
for(int i=0;i<=n;i++)
lcs[0][i]=0;
for(int i=1;i<=k;i++)
for(int j=1;j<=n;j++)
{ int max1=max(lcs[i-1][j],lcs[i][j-1]);
if(aorder[i]==border[j])
{lcs[i][j]=max1+1;
}
else{
lcs[i][j]=max1;
}
}
cout<<lcs[k]
;
return 0;
}
#include<iostream>
#include<algorithm>
#include<map>
#include<string>
#include<vector>
const int maxn=10010;
const int maxc=210;
using namespace std;
int main(){int color;
scanf("%d",&color);
int k;
int n;
int aorder[10010],border[10010];
scanf("%d",&n);
for(int i=1;i<=n;i++){//please think the question why we store the vector from 1
scanf("%d",&border[i]);
}
scanf("%d",&k);
for(int i=1;i<=k;i++)
scanf("%d",&aorder[i]);
vector<int> temp(n+1);
vector<vector<int> > lcs(k+1,temp);
for(int i=0;i<=k;i++)
lcs[i][0]=0;
for(int i=0;i<=n;i++)
lcs[0][i]=0;
for(int i=1;i<=k;i++)
for(int j=1;j<=n;j++)
{ int max1=max(lcs[i-1][j],lcs[i][j-1]);
if(aorder[i]==border[j])
{lcs[i][j]=max1+1;
}
else{
lcs[i][j]=max1;
}
}
cout<<lcs[k]
;
return 0;
}
相关文章推荐
- PAT程序设计考题——甲级1045 (最长不下降子序列) C++实现
- PAT程序设计考题——甲级1077(Kuchiguse ) C++实现
- PAT程序设计考题——甲级1058(A+B in Hogwarts ) C++实现
- PAT程序设计考题——甲级1065( A+B and C (64bit) ) C++实现
- PAT程序设计考题——甲级1036( Boys vs Girls ) C++实现
- PAT程序设计考题——甲级1008( elevator) C++实现
- PAT程序设计考题——甲级1082( Read Number in Chinese ) C++实现
- PAT程序设计考题——甲级1098(Insertion or Heap Sort ) C++实现
- PAT程序设计考题——甲级1066(Root of AVL Tree ) C++实现
- PAT程序设计考题——甲级1005( Spell It Right ) C++实现
- PAT程序设计考题——甲级1030(Travel Plan) C++实现
- PAT程序设计考题——甲级1020( Tree traverse ) C++实现
- PAT程序设计考题——甲级1031(Hello World for U) C++实现
- PAT程序设计考题——甲级1027(Colors in Mars ) C++实现
- PAT程序设计考题——甲级1017(Queueing at Bank ) C++实现
- PAT程序设计考题——甲级1057( stock 分块查询) C++实现
- PAT程序设计考题——甲级1007 (最大连续子序列和) C++实现
- PAT程序设计考题——甲级1003(Emergency ) C++实现
- PAT程序设计考题——甲级1068 (背包问题) C++实现
- PAT程序设计考题——甲级1046(循环最短距离) C++实现