当前位置: 首页 > news >正文

UVa 556 Amazing

题目描述

题目要求模拟一个机器人沿着右墙法则在迷宫中行走。机器人从西南角(左下角)出发,初始方向朝东。机器人保持右侧始终贴着墙壁,若前方有墙则向左转,直到可以前进。机器人回到起点时停止。统计每个单元格被访问的次数(000111222333444次),输出五个数字。

输入格式

输入包含多个迷宫。每个迷宫的第一行包含两个整数bbbwww(行数和列数)。接下来bbb行,每行www个字符,0表示空地,1$ 表示墙。输入以0 0` 结束。

输出格式

对于每个迷宫,输出一行五个整数,分别表示被访问000111222333444次的单元格数量,每个整数右对齐宽度333

样例

输入

3 5 01010 01010 00000 0 0

输出

2 3 5 1 0

题目分析

本题的核心是模拟机器人行走,按右墙法则。

方向与转向

  • 方向:东(000)、南(111)、西(222)、北(333)。
  • 右转:方向d=(d+3) mod 4d = (d + 3) \bmod 4d=(d+3)mod4(逆时针909090度)。
  • 左转:方向d=(d+1) mod 4d = (d + 1) \bmod 4d=(d+1)mod4

行走规则

  • 尝试前进(当前方向)。若前方为空地,则移动;否则左转(逆时针)重复尝试。
  • 移动后,检查右侧(当前方向右转909090度)是否为空地,若是则右转(即调整方向为右侧方向)。

边界

迷宫四周有墙,但输入不包含外边界,需要自行处理边界检查。

统计

记录每个单元格被访问的次数,起点在第一次离开时计数?注意定义:正方形被访问是指机器人进入并离开它。初始位置算访问吗?从样例推断,初始位置算一次访问。

复杂度分析

机器人移动步数有限,最多访问每个单元格多次,直至回到起点。

代码实现

// Amazing// UVa ID: 556// Verdict: Accepted// Submission Date: 2016-08-18// UVa Run Time: 0.000s//// 版权所有(C)2016,邱秋。metaphysis # yeah dot net#include<bits/stdc++.h>usingnamespacestd;intmain(intargc,char*argv[]){cin.tie(0);cout.tie(0);ios::sync_with_stdio(false);intb,w;chargrid[100][100];intcounter[100][100];intoffset[4][2]={{0,1},{1,0},{0,-1},{-1,0}};intrightside[4][2]={{-1,0},{0,1},{1,0},{0,-1}};while(cin>>b>>w,b){memset(counter,0,sizeof(counter));for(inti=1;i<=b;i++)for(intj=1;j<=w;j++)cin>>grid[b-i+1][j];intx=1,y=1,nextx,nexty,rightx,righty,d=0;do{nextx=x+offset[d][0],nexty=y+offset[d][1];if(nextx<1||nextx>b||nexty<1||nexty>w||grid[nextx][nexty]=='1'){d++;d%=4;}else{counter[nextx][nexty]++;x=nextx,y=nexty;rightx=nextx+rightside[d][0],righty=nexty+rightside[d][1];if(rightx>=1&&rightx<=b&&righty>=1&&righty<=w&&grid[rightx][righty]=='0'){d+=3;d%=4;}}}while(x!=1||y!=1);inttimes[5]={0,0,0,0,0};for(inti=1;i<=b;i++)for(intj=1;j<=w;j++)if(grid[i][j]=='0')times[counter[i][j]]++;for(inti=0;i<=4;i++)cout<<setw(3)<<times[i];cout<<'\n';}return0;}
http://www.jsqmd.com/news/1055714/

相关文章:

  • B站多账号批量管理终极方案:如何高效操作数十个B站账号?
  • 2026年天水学员咨询众智商学院PMP课程怎么核对官方入口? - 众智商学院官方
  • 全国医疗纠纷律师推荐:河北雄奕律师事务所主任齐凤,医法双修15年 - 资讯速览
  • 杭州黄金回收行业实价标杆,不搞套路营销,真心实意做回收 - 讯息早知道
  • TV Bro:如何在智能电视上实现高效网页浏览的完整解决方案
  • Ultimate ASI Loader:游戏MOD管理的终极解决方案
  • 基于i.MX53与MC1323x的Android RF4CE遥控器开发实战
  • Mac上使用Xbox手柄的终极指南:360Controller驱动完整教程
  • I2C总线电容超限?PCA951x与P82B96缓冲器选型与设计实战
  • CentOS 8 安装 Nginx 的三种可靠路径与生产就绪检查
  • 从MCF5307到MCF5407:嵌入式处理器升级的架构差异与迁移实践
  • 2026绍兴GEO优化公司TOP5推荐指南:深耕本地实战,自研技术护航AI精准获客 - 936品牌测评网
  • 固始古城路电信营业厅实地测评 宽带监控一站式通信服务深度解析 联系电话:19937328133 地址:古城路与王审知大道交叉口东南角(佳乐超市隔壁) - 资讯速览
  • 嵌入式USB主机认证预测试实战:信号质量与电气特性深度解析
  • 2026年新疆摄影旅拍向导推荐和草原路线避坑完整指南 - 盛世西域旅行
  • QQ音乐解析技术方案:Python逆向工程与API数据获取实践
  • DSC56800EX快速启动环境:图形化配置与驱动抽象加速嵌入式开发
  • 2026安徽省合肥市国防预备班招生简章最新发布,低分初三生入伍升学双路径 - cc江江
  • 庆阳市黄金贵金属回收指南:六家靠谱门店,覆盖全域安心变现 - 新芸鼎珠宝首饰
  • 澳大利亚NAATI认证驾照翻译怎么办理?全流程指南 - 资讯速览
  • 闲置爱马仕香奈儿LV大牌包包想出手?2026 北京这些正规回收渠道靠谱不踩坑 - 沉迷学习28
  • 抖音公会签约流程详解 - 舒雯文化
  • TranslucentTB终极指南:轻松实现Windows任务栏透明化与个性化定制
  • 终极指南:3步实现Steam游戏免平台启动的完整教程
  • 采访大良企业行政负责人|团建选KTV,红馆纯K和凤悦派对KTV真实团建对比 - 资讯速览
  • Shiro550漏洞复现:从Java反序列化到RCE实战解析
  • 番茄小说下载器完整指南:三步打造个人离线图书馆的终极方案
  • 门禁怎么选?中优智能教你从环境、兼容性逐一甄别 - 4G门禁专家
  • 2026 深圳添价收钻石回收,行业领先资质完善本地口碑居首 - 沉迷学习28
  • 2026年广州家庭搬家机构权威排行榜|正规服务商甄选指南避坑攻略