站外题求助
  • 板块题目总版
  • 楼主jiangyunuo
  • 当前回复1
  • 已保存回复1
  • 发布时间2025/8/2 11:38
  • 上次更新2025/8/2 18:26:45
查看原帖
站外题求助
1061050
jiangyunuo楼主2025/8/2 11:38
#include<bits/stdc++.h>
using namespace std;
struct node{
	int b,c;
}a[1000005];
string ch,sh;
int len1,len2,b[30],f[1005],tot,x;
bool cmp(node x,node y){
	return x.b<y.b;
}
int main(){
	//freopen("vlcs2.in","r",stdin);
	//freopen("vlcs2.ans","w",stdout); 
	cin>>ch>>sh;
	len1=ch.size();
	len2=sh.size();
	if(len2>len1){
		swap(ch,sh);
		swap(len2,len1);
	}
	for(int i=0;i<len1;i++){
		a[i].b=ch[i]-96;
		b[a[i].b]++;
	}
	for(int i=len2;i<len1;i++){
		sh[i]='A';
	}
	for(int i=0;i<len1;i++){
		if(sh[i]!='A'){
			a[i].c=sh[i]-96;
			if(b[a[i].c])b[a[i].c]--;
			else a[i].c=0;
		}
		else a[i].c=0;
	}
	sort(a,a+len1,cmp);
	for(int i=0;i<len1;i++){
		if(a[i].c){
			if(a[i].c>f[tot]){
				f[++tot]=a[i].c;
			}
			else{
				x=lower_bound(f+1,f+tot+1,a[i].c)-f;
				f[x]=a[i].c;
			}
		}
	}
	cout<<tot<<endl;
	return 0;
}

题目不需要知道,只要告诉我,为何这个代码会RE

2025/8/2 11:38
加载中...