P1439 【模板】最长公共子序列

虽然这是我第一次写博客,但是我会做到最好的。

好的废话不多说,下面就是答案   (仅供参考)

#include<cstdio> 

#include<algorithm>

#include<cstring>

using namespace std;

const int N=101000;

int b[N],idx[N],n;

int read(){

int x=0,f=1;char ch=getchar();

while (ch<'0' || ch>'9'){if (ch=='-')f=-1;ch=getchar();}

while ('0'<=ch && ch<='9'){x=(x<<3)+(x<<1)+(ch^48);ch=getchar();}

return x*f;

}

int main(){

n=read();

memset(b,0x3f,sizeof(b));

for (int i=1;i<=n;i++)

idx[read()]=i;

for (int i=1;i<=n;i++)

{

int x=idx[read()];

*lower_bound(b+1,b+n+1,x)=x;

}

printf("%d",lower_bound(b+1,b+n+1,b[0])-b-1);

return 0;//完美结束

}

求求帮忙点个赞呗Q  Q

上一篇:c++ stl二分查找与lower_bound


下一篇:cplex教学 | 分支定界法(branch and bound)解带时间窗的车辆路径规划问题(附代码及详细注释)