解题思路:
ret放在最外层循环就AC了,但觉得后台数据应该错了,ret 觉得应该是放在 auto& k1 循环内的
前后结点相同的状态应该也有扩展状态的必要,而不是直接继承
注意事项:
参考代码:
#include<bits/stdc++.h>
using namespace std;
const int N = 1005;
struct w{ int x,y,z;};
vector<w> pre[26];
int main(){
int i,j,x,y,n,m,L,u=1,k,fl,c[N],ret;
string s,t;
cin>>n>>m>>L>>s>>t;
for(i=0;i<n;i++)
pre[s[i]-'a'].push_back(w{1,i,0});
for(i=1;i<m;i++){
x=t[i-1]-'a',y=t[i]-'a'; ret=INT_MAX;
if(x==y)
for(auto& k1 : pre[y]){
if(k1.x==u) k1.x=u+1;
}
else{
fl=0;
for(auto& k1 : pre[y]){
for(auto& k2 : pre[x])
if(k2.x==u){
int d=k2.z+abs(k1.y-k2.y);
ret=min(ret,d);
}
if(ret<=L) fl=1,k1.x=u+1,k1.z=ret;
}
if(!fl){ cout<<u; return 0;}
}
++u;
}
cout<<u; return 0;
}
0.0分
0 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复