题目描述
这道题实际上就是给你一个字符串,然后给你一些变换规则,问最小需要多少步数可以到达最终的那个字符串;
这道题呢,实际上是不应该用STL的,因为毕竟2011年STL才解禁,于是写了一个hash来代替set,目的是使一个子串不重复进队(但考虑到队列不好实现,便没有手写队列)
直接上代码:
#include <bits/stdc++.h>
#define ll long long
using namespace std;
const int mod1=16927;
const int mod2=998244353;
queue <string> q;
queue <int> cnt;
const int N=6+5;
string a[N];
string b[N];
string s;
string t;
int n;
struct node
{
int k1;
string s;
node(int kk1,string ss)
{
k1=kk1;
s=ss;
}
node() {
};
};
vector <node> v[mod1];
int get_hash_key(const string &letter,const int &mod)
{
int ans=0;
int len=letter.length();