UOJ Logo

NOI.AC

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#212151#3817. 写字huangyuhang500ms1304kbC++11840b2024-10-13 11:37:082024-10-13 12:27:31

answer

#pragma GCC optimize(2)
#include<bits/stdc++.h>
using namespace std;
int n,m;
string s,t;
map<char,vector<int>>mp;
int ans;
void DFS(int p1,int res,int p2)//pos1:S,pos2:T
{
	if(res>ans)
		return;
	if(p2==m)
	{
		ans=min(res,ans);
		return;
	}
	if(p1>0&&t[p2]==s[p1-1])
		DFS(p1-1,res+1,p2+1);
	if(p1<n-1&&t[p2]==s[p1+1])
		DFS(p1+1,res+1,p2+1);		
		for(auto p:mp[t[p2]])
		{
			if(p==p1)
				continue;
			if(p<n-1&&t[p2]==s[p+1]||p>0&&t[p2]==s[p-1])
				DFS(p,res+abs(p-p1),p2);
		}
}
int main()
{
	scanf("%d %d",&n,&m);
	cin>>s;
	cin>>t;
	for(int i=0;i<n;i++)
	{
		mp[s[i]].push_back(i);
	}
	for(int i=0;i<m;i++)
		if(!mp.count(t[i]))
		{
			cout<<-1;
			return 0;
		}
	ans=INT_MAX;
	for(auto p:mp[t[0]])
	{
		DFS(p,0,1);
	}
	if(ans==INT_MAX)
		cout<<-1;
	else
		cout<<ans;
	return 0;
}

详细

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

Subtask #1:

score: 20
Accepted

Test #1:

score: 20
Accepted
time: 0ms
memory: 1276kb

input:

1 1
v
v

output:

0

result:

ok 1 number(s): "0"

Test #2:

score: 0
Accepted
time: 0ms
memory: 1292kb

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: 1304kb

input:

26 300
ywzhvjnpdfqtukimsrbxageloc
brsmsrbxbxbxbxagagagegelococololegaxagaxaxbxbrbxbrsrsmikimikikimim...

output:

299

result:

ok 1 number(s): "299"

Test #4:

score: 0
Accepted
time: 0ms
memory: 1304kb

input:

26 300
wempkfsunqgytdzibajorvxhlc
gqnununqnusfsununununqnununususunusususfkpmewewewewewempkfkpkpmpmp...

output:

299

result:

ok 1 number(s): "299"

Test #5:

score: 0
Accepted
time: 0ms
memory: 1304kb

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: