关闭

蓝桥杯 历届试题 兰顿蚂蚁

标签: 蓝桥杯
525人阅读 评论(0) 收藏 举报
分类:

天啦撸!我的代码风格竟然已经这么奇葩了

没救。。。这题搞错了两次。。。

一、蚂蚁是先旋转再移动。。。

二、我tm少走了一步。。。


#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
using namespace std;

const int dx[4]={-1,0,1,0};
const int dy[4]={0,1,0,-1};
const int turn[2][4]={1,2,3,0,3,0,1,2};

int sx,sy,i,j,n,m,k;
char ch;
int map[110][110];

void move(int &x,int &y,int p,int d)
{
	if (d==k) return;
	p=turn[map[x][y]^=1][p];
	move(x+=dx[p],y+=dy[p],p,d+1);
}

int main()
{
	scanf("%d%d",&n,&m);
	for (i=0;i<n;i++)
		for (j=0;j<m;j++) scanf("%d",&map[i][j]);
	scanf("%d %d %c %d",&sx,&sy,&ch,&k);
	int p=0;
	switch (ch)
	{
		case 'U':p=0;break;
		case 'R':p=1;break;
		case 'D':p=2;break;
		case 'L':p=3;break;
	}
	move(sx,sy,p,0);
	printf("%d %d\n",sx,sy);
	return 0;
}


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:36321次
    • 积分:1044
    • 等级:
    • 排名:千里之外
    • 原创:66篇
    • 转载:2篇
    • 译文:0篇
    • 评论:9条
    最新评论