璟雯院

珺璟如晔,雯华若锦

用户工具

站点工具


icpc:problems:704c_maximum_width
problems
名称Maximum width
题目编号704C
题目链接codeforces.com/…
来源CodeForces
算法分类构造, 贪心
难易程度看懂题解

Maximum width

想法

判断每个t串在s串中,可行的最左的位置和可行的最右的位置。然后两个t串的元素减一下就行了。

代码实现

#include<cstdio>//uncle-lu
#include<cstring>
#include<algorithm>
 
int n, m;
char line_s[200010], line_t[200010];
int left[200010];
int right[200010];
 
int main()
{
	scanf("%d %d", &n, &m);
	scanf("%s\n%s", line_s, line_t);
 
	int sit_s = 0, sit_t = 0;
	while(sit_t < m)
	{
		if(line_s[sit_s] == line_t[sit_t])
		{
			left[sit_t] = sit_s;
			sit_t++;
		}
		sit_s++;
	}
 
	sit_s = n-1; sit_t = m-1;
	while(sit_t >= 0)
	{
		if(line_s[sit_s] == line_t[sit_t])
		{
			right[sit_t] = sit_s;
			sit_t--;
		}
		sit_s--;
	}
 
	int mx = 0;
	for(int i=0; i<m-1; ++i)
	{
		mx = std::max(mx, right[i+1] - left[i]);
	}
 
	printf("%d", mx);
 
	return 0;
}
/app/www/public/data/pages/icpc/problems/704c_maximum_width.txt · 最后更改: 2023/10/01 10:31 由 温婕莺