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

HNU练习七 字符串编程题7. 机器人游戏

【问题描述】

       有人建造了一些机器人,并且将他们放置在包含n个单元的一维网格上,一个长度为n的字符串s代表了他们的编排方式,字符串中的字符既可以是'.',也可以是'0'~'9'之间的一个数字字符,字符'.'表示开始时在相应的单元上无机器人,数字表示开始时在相应的单元上有一个机器人。特别地,数字x表示他可以从开始点向左移动x个单元,或从开始点向右移动x个单元,每次移动距离为一个单元格。

       例如,假定字符串的第7个字符为3,代表机器人从第7个单元开始,他的活动范围为第4个单元(7-3=4)到第10个单元(7+3=10)(包含两个端点),机器人仅仅可以在这个范围内移动,但不可以移出网格。一旦达到范围边界,机器人会折返。

       在此范围内,开始时机器人可以在任意时间按照任意方向移动,但如果两个机器人可能同时到达同一单元格时, 就会发生碰撞。 

       请判断,机器人的编排方式是否安全。 

【输入形式】

第一行为一个整数T,代表测试数据的组数,接下来T行,每行为一个测试字符串s。
【输出形式】

对于每个测试用例,输出一行为"safe"或"unsafe"(无引号)。
【样例输入】

4
....
.2.....
.2...2..
1.1.1.

【样例输出】

safe
safe
unsafe
unsafe

【样例说明】
【评分标准】

#include<iostream>
#include<cstring>
#include<cmath>
using namespace std;
int main()
{int t,l,m[10000];string s;cin>>t;for(int i=0;i<t;i++){memset(m,0,sizeof(m));cin>>s;l=s.length();for(int j=0;j<l;j++){if(s[j]<='9'&&s[j]>='0'){for(int k=max(0,j-s[j]+'0');k<=min(j+s[j]-'0',l);k++){m[k]++;}}}int flag=0;for(int j=0;j<l;j++){if(m[j]>1) {flag=1;cout<<"unsafe"<<endl;break;}}if(flag==0) cout<<"safe"<<endl;}
}

http://www.lryc.cn/news/250054.html

相关文章:

  • 【Linux】bash 终端指令
  • 基于SpringBoot高校心理教育辅导设计与实现
  • 关于电脑提示vcruntime140_1.dll无法继续执行代码的解决办法
  • 5. 链表
  • OSI七层模型与TCP/IP四层模型的区别(计算机网络)
  • Other--什么是 CGI,FastCGI、asp、jsp
  • sql关联另一个表,update表的值
  • Python基础:JSON保存结构化数据(详解)
  • 抑郁症日常如何调节?
  • hive两张表实现like模糊匹配关联
  • 【高效开发工具系列】Hutool DateUtil工具类
  • 基于springcloud openfein 使用示例,包含代码和 maven 依赖配置
  • 彰显营销硬实力!皓量科技连续四年入选《中国数字营销生态图》
  • web静态网页设计与制作-基于HTML+CSS+JS实现旅游摄影网站
  • 每日一题:LeetCode-1089. 复写零
  • React Native环境搭建及Hello World
  • VS2017 C++ Qt工程打包软件
  • 【JWT的原理和使用】
  • 对本地存储的有效期的理解
  • 蓝桥杯-02-蓝桥杯Java组考点与14届真题
  • 门户网站二级等保评测问题,服务器漏洞问题解决办法
  • NPDP考前注意事项,这些细节你可要注意!
  • 八个优秀开源内网穿透工具
  • C语言贪吃蛇(有详细注释)
  • MUI框架从新手入门【webapp开发教程】
  • HNU-计算机网络-讨论课2
  • 西南科技大学信号与系统A实验一(信号的产生与时域运算)
  • 代码随想录二刷 |字符串 |翻转字符串里的单词
  • 低调使用。推荐一个 GPT4 Turbo、Vision、GPTs、DELL·E3 等所有最新功能同步可用国内网站
  • 基于视觉传感器的自主扫雷机器人设计与实现