UOJ Logo

NOI.AC

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#212006#3817. 写字Rainxcy501ms1284kbC++981b2024-10-13 10:01:432024-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);
            }
        }
    }
}

Details

小提示:点击横条可展开更详细的信息

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...

output:


result: