算法学习之路|hdu 1035 Robot Motion(模拟)

简介: 给一个地图,由ESWN(东南西北)组成,机器人根据脚下的指令移动,求如果机器人能走出地图,走的步数多少,如果不能走出,求每绕一圈的步数和绕圈之前走的步数。

题目大意

给一个地图,由ESWN(东南西北)组成,机器人根据脚下的指令移动,求如果机器人能走出地图,走的步数多少,如果不能走出,求每绕一圈的步数和绕圈之前走的步数。

不是图的题目,直接做就行。

代码:

#include<stdio.h>
#include<string.h>
#include<algorithm>
#include<iostream>
using namespace std;
char map1[15][15];
int flag[15][15];
int main()
{
    int n,m,k;
    int x,y;
    while(scanf("%d%d",&n,&m)&&n)
    {
        int sum1=0,sum2=0;
        memset(flag,0,sizeof(flag));
        memset(map1,0,sizeof(map1));
        scanf("%d",&k);
        for(int i=1;i<=n;i++)
        {
            for(int j=1;j<=m;j++) { cin>>map1[i][j];
            }
        }
        x=1;
        y=k;
        while(x<=n&&x>=1&&y<=m&&y>=1)
        {
            if(map1[x][y]=='E')
                {
                    flag[x][y]++;
                    y++;
                    sum2++;
                }
           else if(map1[x][y]=='W')
                {
                    flag[x][y]++;
                    y--;
                    sum2++;
                }
           else if(map1[x][y]=='S')
                {
                    flag[x][y]++;
                    x++;
                    sum2++;
                }
           else if(map1[x][y]=='N')
                {
                    flag[x][y]++;
                    x--;
                    sum2++;
                }
            if(flag[x][y]==1)
                {
                    sum1++;
                }
           else if(flag[x][y]>1)
                break;
        }
        if(sum1>0)
            printf("%d step(s) before a loop of %d step(s)\n",sum2-sum1*2,sum1);
        else
            printf("%d step(s) to exit\n",sum2);
    }
    return 0;
}

 

 

目录
相关文章
|
3月前
|
机器学习/深度学习 数据采集 搜索推荐
Paper Digest | 突破个性化推荐数据稀疏性:长尾增强的图对比学习算法研究
本文提出了一种新的长尾增强的图对比学习方法(LAGCL),该方法促使模型同时兼顾头部节点与尾部节点之间的知识,并通过长尾增强技术来使模型产出更均匀更准确的节点表征,从而改进基于 GNN 的推荐任务。
|
3月前
|
算法 网络协议 Linux
【Cisco Packet Tracer】交换机的自学习算法
【Cisco Packet Tracer】交换机的自学习算法
59 0
|
4月前
|
机器学习/深度学习 算法
机器学习 - [集成学习]Bagging算法的编程实现
机器学习 - [集成学习]Bagging算法的编程实现
37 1
|
1天前
|
机器学习/深度学习 算法
应用规则学习算法识别有毒的蘑菇
应用规则学习算法识别有毒的蘑菇
|
12天前
|
机器学习/深度学习 算法 数据挖掘
【Python机器学习专栏】关联规则学习:Apriori算法详解
【4月更文挑战第30天】Apriori算法是一种用于关联规则学习的经典算法,尤其适用于购物篮分析,以发现商品间的购买关联。该算法基于支持度和置信度指标,通过迭代生成频繁项集并提取满足阈值的规则。Python中可借助mlxtend库实现Apriori,例如处理购物篮数据,设置支持度和置信度阈值,找出相关规则。
|
12天前
|
机器学习/深度学习 算法 前端开发
【Python机器学习专栏】集成学习算法的原理与应用
【4月更文挑战第30天】集成学习通过组合多个基学习器提升预测准确性,广泛应用于分类、回归等问题。主要步骤包括生成基学习器、训练和结合预测结果。算法类型有Bagging(如随机森林)、Boosting(如AdaBoost)和Stacking。Python中可使用scikit-learn实现,如示例代码展示的随机森林分类。集成学习能降低模型方差,缓解过拟合,提高预测性能。
|
25天前
|
机器学习/深度学习 算法 前端开发
Scikit-learn进阶:探索集成学习算法
【4月更文挑战第17天】本文介绍了Scikit-learn中的集成学习算法,包括Bagging(如RandomForest)、Boosting(AdaBoost、GradientBoosting)和Stacking。通过结合多个学习器,集成学习能提高模型性能,减少偏差和方差。文中展示了如何使用Scikit-learn实现这些算法,并提供示例代码,帮助读者理解和应用集成学习提升模型预测准确性。
|
25天前
|
机器学习/深度学习 算法 Python
使用Python实现集成学习算法:Bagging与Boosting
使用Python实现集成学习算法:Bagging与Boosting
22 0
|
26天前
|
算法 安全 数据可视化
python关联规则学习:FP-Growth算法对药品进行“菜篮子”分析
python关联规则学习:FP-Growth算法对药品进行“菜篮子”分析
|
1月前
|
算法
【算法学习--字符串】(不含KMP算法)
【算法学习--字符串】(不含KMP算法)