社区讨论
好神奇啊?这个代码为什么输出不了我的指令,有人看看吗qwq
P1439两个排列的最长公共子序列参与者 3已保存回复 4
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 3 条
- 当前快照
- 1 份
- 快照标识符
- @mli25en6
- 此快照首次捕获于
- 2026/02/11 21:20 上周
- 此快照最后确认于
- 2026/02/12 10:04 上周
执行不了17~19的输出a,b数组qwq
CPP#include<bits/stdc++.h>
using namespace std;
const int S=100010;
int a[S],b[S],f[S];
int main(){
int n,e;
cin>>n;
for(int i=1;i<=n;i++){
cin>>e;
a[e]=i;
}
for(int i=1;i<=n;i++){
cin>>e;
b[i]=a[e];
}
for(int i=1;i<=n;i++) cout<<a[i]<<" ";
cout<<endl;
for(int i=1;i<=n;i++) cout<<b[i]<<" ";
int ans=0;
for(int i=1;i<=n;i++){
int l=1,r=ans,mid;
if(f[ans]<b[i]){
f[++ans]=b[i];
}else{
while(l<r){
mid=(r+l)/2;
if(f[mid]>b[i]) r=mid;
else l=mid+1;
}
f[l]=min(f[l],b[i]);
}
}
cout<<ans;
}
回复
共 4 条回复,欢迎继续交流。
正在加载回复...