【C# 每日一题5】猫和老鼠升级版

pmars 2011-05-26 08:55:49

Description

在一片广阔的田地上有一只猫和一只老鼠
老鼠在田地上玩耍,而猫想抓住老鼠,但当老鼠发现猫后老鼠就开始逃跑(不一定向自己家逃)
任意时刻当猫和老鼠出现在同一个位置时猫就抓住了老鼠
老鼠和猫每次行动都只能向它们相邻的方向移动一格
当老鼠来到自己家门口时,它需要在下次行动的时候才能进入自己的家
每次猫和老鼠都必须行动(移动一格)

Input

第一行输入n,表示有几组测试数据
每组测试数据第一行输入x,y表示田野的大小(2<=x,y<=100)
接着x行,每行y个字符,表示田野的状态(c表示猫得位置,r表示老鼠得位置,d表示老鼠家的位置,d有且只有一个,w表示普通的田地)

Output

每组测试数据输出一行,包括两个字符串
第一个字符串表示最终猫能否抓到老鼠(能输出yes,不能输出no)
第二个字符串表示最终老鼠能否回到家而不被猫抓住(能输出yes,不能输出no)
两个字符串间用一个空格空开

你可以想象猫是非常聪明的(它可以判断出接下去它该走哪步才是最优的)
老鼠也比较聪明(如果与它相邻的方格内有猫,那么它就不会向那个方向跑,跑的话就是送死嘛,老鼠当然没那么笨!)
你同样可以假设每次行动老鼠都将在猫之前(也就是说在开始状态时老鼠先动,接着猫动,接着老鼠,接着猫.......)

Sample Input


1
5 5
wwwww
wwdww
wwrww
wwcww
wwwww
Sample Output


no yes


每日一题1猫和老鼠大家都看过了吧,看看我们在二维的情况下如何解决这样的问题呢?
这次老鼠好像也变聪明了呢!

谢谢大家的关注,哈哈!
...全文
292 25 打赏 收藏 转发到动态 举报
写回复
用AI写文章
25 条回复
切换为时间正序
请发表友善的回复…
发表回复
pmars 2011-05-30
  • 打赏
  • 举报
回复
看来不太受关注啊,这个帖子,恩,这个题出的囧了!
pmars 2011-05-27
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 litaoye 的回复:]

哦,下国际象棋的人解这个问题思路会比较清晰,先帮顶一下,lz辛苦了!(lz应该回复:为人民服务)
[/Quote]
好吧,为 人民 服务!
pmars 2011-05-27
  • 打赏
  • 举报
回复
[Quote=引用 18 楼 kingdom_0 的回复:]

楼主这都是从哪里来的题目?
[/Quote]
都是以前做过的acm题,过来大家讨论一下!
lihanbing 2011-05-26
  • 打赏
  • 举报
回复
[Quote=引用 19 楼 kansousama 的回复:]

引用 16 楼 kansousama 的回复:
你这写法 除非老鼠自己跑到死角,不然永远抓不住,
应该改成老鼠1步 猫2步

说错 刚才试验了一下 还是可以追到的,不过猫要很聪明,知道堵墙角才行
[/Quote]

wd
rc

永远抓不到
一桶江湖 2011-05-26
  • 打赏
  • 举报
回复
顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶
叫我三三 2011-05-26
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 kansousama 的回复:]
你这写法 除非老鼠自己跑到死角,不然永远抓不住,
应该改成老鼠1步 猫2步
[/Quote]
说错 刚才试验了一下 还是可以追到的,不过猫要很聪明,知道堵墙角才行
kingdom_0 2011-05-26
  • 打赏
  • 举报
回复
楼主这都是从哪里来的题目?
636f6c696e 2011-05-26
  • 打赏
  • 举报
回复
这题真心简单
1.只有老鼠与洞口的折线距离小于猫与洞口时,老鼠能安全回家。
2.1条件不符合时,老鼠与猫的折线距离是偶数,猫能抓住老鼠,否则永远抓不到。
叫我三三 2011-05-26
  • 打赏
  • 举报
回复
你这写法 除非老鼠自己跑到死角,不然永远抓不住,
应该改成老鼠1步 猫2步
wtj2832 2011-05-26
  • 打赏
  • 举报
回复
挺有意思的
z_f_p 2011-05-26
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 lihanbing 的回复:]
应该加点障碍物,比如木桩、石头、柱子、水坑、陷阱、沙地啥的,撞到木桩晕两回合,踩到石头瘸三回合,老鼠能游过水坑而猫必须绕着走,等等
[/Quote]

改成小时候玩的飞行棋了,哈哈!
绿色夹克衫 2011-05-26
  • 打赏
  • 举报
回复
哦,下国际象棋的人解这个问题思路会比较清晰,先帮顶一下,lz辛苦了!(lz应该回复:为人民服务)
pmars 2011-05-26
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 lihanbing 的回复:]

应该加点障碍物,比如木桩、石头、柱子、水坑、陷阱、沙地啥的,撞到木桩晕两回合,踩到石头瘸三回合,老鼠能游过水坑而猫必须绕着走,等等
[/Quote]
可以考虑,呵呵,升级加强版!!
lihanbing 2011-05-26
  • 打赏
  • 举报
回复
应该加点障碍物,比如木桩、石头、柱子、水坑、陷阱、沙地啥的,撞到木桩晕两回合,踩到石头瘸三回合,老鼠能游过水坑而猫必须绕着走,等等
636f6c696e 2011-05-26
  • 打赏
  • 举报
回复
无聊的题目
老鼠和猫每次行动都只能向它们相邻的方向移动一格
乌龟和兔子速度都是1还用赛跑么?
兔子-顾问 2011-05-26
  • 打赏
  • 举报
回复
标记一下,楼主很有精神。每天都有新花样。
lihanbing 2011-05-26
  • 打赏
  • 举报
回复
只要c和r同时到d旁边一格或者领先偶数步跑到d旁边就肯定能抓到,否则就肯定抓不到,只要100以内四则运算就能解出来了吧
风骑士之怒 2011-05-26
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 wknight_it 的回复:]
和走棋一样,如果他们在四格内循环走,好像永远抓不到,是不是应该加个限制条件,比如,已经走过的田地,不能去走,而这个题目要考虑的,就是最优路线的问题。
[/Quote]
现在的状况是,老鼠比猫先走,但是老鼠和猫的能力都一样,都是走相邻的一格。这样好像没什么意义,应该区别两者的能力。
xpcxpy 2011-05-26
  • 打赏
  • 举报
回复
想不明白,坐等高手
笨熊熊 2011-05-26
  • 打赏
  • 举报
回复

暈了
加载更多回复(2)

110,561

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧