合并数列

题目 合并数列

image-d647fca2

思路分析

代码实现

#include<bits/stdc++.h>

using namespace std;

#define endl '\n'

//区间dp吗 反正两个集合的和一定相等 要求的是过程中零散的相等需要最少步数

// 暴力加贪心的话 还要考虑很多情况 序列大小问题 a大还是b大还是相等

//找到某个不相等的位置 就做一次合并?

//如果暴搜的话 如果题目是 将a串变成b串 倒可以用bfs的最小步数模型写

//可是它这里的操作可以在两个序列中 目标状态是什么也不知道

//暂时输出一个极端情况 如果相等 0次 否则直接输出最多要合并的情况

const int N=1e5+10;

int n,m;

string a,b;

int main()

{

	ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);

	cin>>n>>m;

	for(int i=0;i<n;i++){

		char c;cin>>c;

		a+=c;

	}

	for(int i=0;i<m;i++){

		char c;cin>>c;

		b+=c;

	}

	if(a==b)

		cout<<0<<endl;

	else

		cout<<max(a.size(),b.size())-1;

	return 0;

}

同类题型

视频讲解


⬅️ 班级活动 🏠 00-冲刺国赛 ➡️ 数三角