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 由 温婕莺