ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#212006 | #3817. 写字 | Rainxcy | 50 | 1ms | 1284kb | C++ | 981b | 2024-10-13 10:01:43 | 2024-10-13 12:11:53 |
answer
#include <bits/stdc++.h>
using namespace std;
int n,m,Min=2147483647;
string s,c;
void dfs(int deep,int x,int se);
int main()
{
scanf("%d %d",&n,&m);
cin>>s;
cin>>c;
for(int i=0;i<n;i++){
if(s[i]==c[0]){
dfs(2,i,0);
}
}
if(Min==2147483647){
puts("-1");
}else{
printf("%d\n",Min);
}
return 0;
}
void dfs(int deep,int x,int se){
if(deep>m){
if(se<Min){
Min=se;
}
return;
}
if(x>=1&&s[x-1]==c[deep-1]){
dfs(deep+1,x-1,se+1);
}
if(x<n-1&&s[x+1]==c[deep-1]){
dfs(deep+1,x+1,se+1);
}
for(int i=0;i<n;i++){
if(i!=x&&s[i]==s[x]){
int sj=abs(x-i);
if(i>=1&&s[i-1]==c[deep-1]){
dfs(deep+1,i-1,se+1+sj);
}
if(i<n-1&&s[i+1]==c[deep-1]){
dfs(deep+1,i+1,se+1+sj);
}
}
}
}
详细
小提示:点击横条可展开更详细的信息
Subtask #1:
score: 20
Accepted
Test #1:
score: 20
Accepted
time: 0ms
memory: 1244kb
input:
1 1 v v
output:
0
result:
ok 1 number(s): "0"
Test #2:
score: 0
Accepted
time: 0ms
memory: 1256kb
input:
5 5 bacbb cabcb
output:
7
result:
ok 1 number(s): "7"
Subtask #2:
score: 30
Accepted
Test #3:
score: 30
Accepted
time: 0ms
memory: 1284kb
input:
26 300 ywzhvjnpdfqtukimsrbxageloc brsmsrbxbxbxbxagagagegelococololegaxagaxaxbxbrbxbrsrsmikimikikimim...
output:
299
result:
ok 1 number(s): "299"
Test #4:
score: 0
Accepted
time: 0ms
memory: 1280kb
input:
26 300 wempkfsunqgytdzibajorvxhlc gqnununqnusfsununununqnununususunusususfkpmewewewewewempkfkpkpmpmp...
output:
299
result:
ok 1 number(s): "299"
Test #5:
score: 0
Accepted
time: 1ms
memory: 1284kb
input:
26 300 gieywcraxnvblsuojfpthdkmzq nvbvbvblsusuojfjojouoususlslbvnxnxnxarcraxnvnvnxnxnvnxnxnvblslsusu...
output:
299
result:
ok 1 number(s): "299"
Subtask #3:
score: 0
Time Limit Exceeded
Test #6:
score: 0
Time Limit Exceeded
input:
300 300 hgbfdbgcghedefchdabhgdddahcdedebceffegfbceehceeheggffhhddbecbfdhceeedcaeeebdaddfgccggfdcachg...