原题链接:蓝桥杯2014年第五届真题-兰顿蚂蚁
解题思路:
把蚂蚁的行动、动作当作对象,创建关于mayi()的的对象,并对蚂蚁行动关于黑格、白格等转向设置函数point(self),在主函数中对行走后原位置黑白格取反
注意事项:
此代码中,每个格子的参数类型为str,如果是int型,会导致一直导致答案错误,还有在使用map_1时,与map函数很类似,可能导致程序出错
参考代码
class mayi(): def __init__(self,head,x,y): self.head=head self.x=x self.y=y def point(self): p=self.head i=self.x j=self.y if p=='L': if map_1[i][j]=='1': self.x=i-1 self.head='U' else: self.x=i+1 self.head='D' if p=='U': if map_1[i][j]=='1': self.y=j+1 self.head='R' else: self.y=j-1 self.head='L' if p=='R': if map_1[i][j]=='1': self.x=i+1 self.head='D' else: self.x=i-1 self.head='U' if p=='D': if map_1[i][j]=='1': self.y=j-1 self.head='L' else: self.y=j+1 self.head='R' m, n = map(int, input().split()) map_1 = [] for i in range(0, m): map_1.append(list(input().split())) x,y,S,k=input().split() x=int(x) y=int(y) k=int(k) yi_1=mayi(S,x,y) for w in range(0,k): i=yi_1.x j=yi_1.y yi_1.point() if map_1[i][j]=='1': map_1[i][j] = '0' elif map_1[i][j]=='0': map_1[i][j] = '1' print(yi_1.x,yi_1.y)
0.0分
0 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复