解題思路:普通模擬題
NULL
#include
<
iostream
>
#include
<
string
>
#include
<
set
>
using
namespace
std;
int
main()
{
set
<
string
>
shuf;
char
s1[
101
],s2[
101
];
string
aim,str;
int
i,j,n,m,iter;
bool
IsFind;
cin
>>
n;
for
(i
=
1
;i
<=
n;i
++
)
{
iter
=
IsFind
=
0
;
cin
>>
m
>>
s1
>>
s2
>>
aim;str.resize(
2
*
m);
while
(
1
)
{
iter
++
;
for
(j
=
0
;j
<
m;j
++
)str[j
*
2
]
=
s2[j],str[j
*
2
+
1
]
=
s1[j];
for
(j
=
0
;j
<
m;j
++
)s1[j]
=
str[j],s2[j]
=
str[j
+
m];
if
(str
==
aim){IsFind
=
true
;
break
;}
if
(shuf.find(str)
==
shuf.end())
shuf.insert(str);
else
break
;
}
shuf.clear();
cout
<<
i
<<
"
"
<<
(IsFind
?
iter :
-
1
)
<<
endl;;
}
return
0
;
}
?
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061
微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元

