• Welcome to the world's largest Chinese hacker forum

    Welcome to the world's largest Chinese hacker forum, our forum registration is open! You can now register for technical communication with us, this is a free and open to the world of the BBS, we founded the purpose for the study of network security, please don't release business of black/grey, or on the BBS posts, to seek help hacker if violations, we will permanently frozen your IP and account, thank you for your cooperation. Hacker attack and defense cracking or network Security

    business please click here: Creation Security  From CNHACKTEAM

Recommended Posts

zfzemd3ykq45112.png

这道题目主要是深度优先搜索记忆化搜索。

深度优先搜索就不说了,这道题的深度优先搜索只有国会议员需做一下处理其余没有区别。

重点是记忆化搜索:坑

1.需要两个矢量来记录路径,因为只用一个的话会被盖,最后只剩下0和0还有0。

2.巨坑:起点可能是墙!!!

1xj5b3uuokc5113.png

我也只是默默的掏出了板砖而已。

程序:

#includebits/stdc .h

使用命名空间标准

int n,m,p,q,mp[20][20]={0},ans=0,vis[20][20]={0},cnt,d[10][10]={{1,0},{0,1 } };

矢量整数步;

矢量内部事务_步骤

void dfs(int x,int y,int k)

{

如果(x==ny==m)

{

CNT=1;

如果(韩束)

{

ans=k;

ans _ step=step

}

返回;

}

其他

{

for(int I=0;I2;我)

{

int nx=x d[0],ny=y d[1];

if(NX=1nx=nny=1ny=mvis[NX][ny]==0mp[NX][ny]!=-1)

{

vis[NX][ny]=1;

一步。推回(NX);

step . pushback(纽约);

dfs(nx,ny,k MP[NX][ny]);

一步。pop _ back();

一步。pop _ back();

vis[NX][ny]=0;

}

}

}

}

int main()

{

scanf('%d%d%d%d ',n,m,p,q);

for(int I=1;I=p;我)

{

int x2,y2;

scanf('%d%d ',x2,y2);

MP[x2][y2]=-1;

}

for(int I=1;I=q;我)

{

int x2,y2,money

scanf('%d%d%d ',x2,y2,money);

MP[x2][y2]=钱;

}

if(mp[1][1]!=-1)

{

一步。push _ back(1);

一步。push _ back(1);

dfs(1,1,MP[1][1]);

}

其他

{

printf('-1 \ n ');

返回0;

}

如果(计数==1)

{

printf('%d\n ',ans);

for(int I=0;ians _ step。size();i=2)

{

如果(我!=ans_step.size()-2) printf('(%d,%d)-',ans_step,ans _ step[I 1]);

else printf('(%d,%d)',ans_step,ans _ step[I 1]);

}

}

其他

{

printf('-1 \ n ');

}

返回0;

}

Link to comment
Share on other sites