UVa 10452 - Marcus

#include <iostream>
#define EOF (-1)

using namespace std;

char Path[12][100];
int Step[7]={0};//记录走过的足迹
char example[8] = {'@','I','E','H','O','V','A','#'};

void Dfs(int n,int m,int ex);
int main(){
    int line,m,n;
    string Commands[3]={"forth","left","right"};
    //freopen("D:\\t.txt","r",stdin);
    while((cin>>line)&&(line!=EOF)){
        for(int i = 0;i < line;i++){
            cin>>n>>m;//输入鹅卵石路的宽m,长n
            for(int j=0;j<n;j++){
                for(int k=0;k<m;k++){
                    cin>>Path[j][k];
                }
            }

                for(int q = 0;q < m;q++){
                    if(example[0] == Path[n-1][q]){
                        Dfs(n-1,q,0);
                        break;
                    }
                }
            for(int t = 0;t < 7;t++){
                cout<<Commands[Step[t]];
                if(t<6)cout <<" ";
            }
            cout<<endl;
        }
    }
    return 0;
}

void Dfs(int n,int m,int ex)
{
    if( (Path[n-1][m] == example[ex+1]) && (ex<7)) {
        Step[ex] = 0;
        Dfs(n-1,m,ex+1);
    }
    if( (Path[n][m-1] == example[ex+1]) && (ex<7)){
        Step[ex] = 1;
        Dfs(n,m-1,ex+1);
    }
    if( (Path[n][m+1] == example[ex+1]) && (ex<7)){
        Step[ex] = 2;
        Dfs(n,m+1,ex+1);
    }
}


原来递归运算时陷入了死循环,加上“ex>7”的判定,就好了;
输入的时候注意m,n(我是新手(*^__^*) )

题目意思很简单,就是沿着一个路径走到底就行,用dfs解决。

 
 
 
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
了解网络安全的基础知识是成为黑客的关键。以下是一些推荐的书籍,可以帮助你建立网络安全方面的基础知识: 1. 《网络安全技术与实践》 - 于洋 这本书系统地介绍了网络安全的基础理论、攻击技术和防御方法,适合初学者入门。 2. 《Metasploit: The Penetration Tester's Guide》 - David Kennedy, Jim O'Gorman, Devon Kearns 和 Mati Aharoni 这本书详细介绍了Metasploit框架的使用和渗透测试技术,是学习黑客技术的良好起点。 3. 《网络安全攻防实战》 - 黄磊 这本书通过实战演练的方式,介绍了常见的网络攻击和防御技术,对于初学者来说很有帮助。 4. 《黑客攻防技术宝典》 - 李忠华 这本书以实战为导向,涵盖了渗透测试、漏洞利用、无线网络安全等方面的知识,适合对黑客技术感兴趣的读者。 5. 《Web Hacking 101》 - Peter Yaworski 这本书介绍了常见的Web应用程序安全漏洞和攻击技术,对于初学者来说很友好,并提供了实用的渗透测试技巧。 6. 《The Web Application Hacker's Handbook》 - Dafydd Stuttard 和 Marcus Pinto 这本书深入介绍了Web应用程序的安全漏洞和攻击技术,对于想要学习Web黑客技术的人很有帮助。 这些书籍可以帮助你了解网络安全的基础知识,并提供实践经验和技术指导。除了阅读书籍,还可以参加相关的在线课程、培训和实践项目,以加强对网络安全的理解和应用能力。请记住,在学习网络安全的过程中要遵守法律和道德准则,并尊重他人的隐私和安全。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值