Я пытаюсь поправиться в СР. Я сталкивался с этой проблемой - Ссылка . Хотя я имел в виду наивное решение BFS O (2 ^ N), оно, очевидно, дало мне TLE.
string bfs(int t1,int t2)
{
queue<pair<VII,string>> st;
st.push({{0,1,1,2,1,1},"L"});
st.push({{1,1,2,1,1,0},"R"});
while(!st.empty())
{
VII u=st.front().first;
string v=st.front().second;
st.pop();
//cout<<u[2]<<' '<<u[3]<<endl;
if(u[2]==t1 && u[3]==t2)
return v;
st.push({{u[0],u[1],u[0]+u[2],u[1]+u[3],u[2],u[3]},v+"L"});
st.push({{u[2],u[3],u[2]+u[4],u[3]+u[5],u[4],u[5]},v+"R"});
}
return "";
}
Выше приведен код, который я смог придумать. Я знаю, что есть решение для двоичного поиска, но я не мог понять, как разделить пространство поиска. Было бы здорово, если бы кто-нибудь мог объяснить мне интуицию, стоящую за этим. Спасибо!