简单DFS。

 /* 2414 */
#include <cstdio>
#include <cstring>
#include <cstdlib> const int n = ;
char map[][];
int x, y, d;
char dirs[] = "^v<>";
int dir[][] = {
-,, ,, ,-, ,
};
int tdir[][] = {
,,, ,,, ,,, ,,
}; inline bool check(int x, int y) {
return x< || x>=n || y< || y>=n;
} void dfs(int x, int y) {
int i, j, k;
int xx, yy; xx = x + dir[d][];
yy = y + dir[d][];
if (check(xx, yy))
return ;
if (map[xx][yy] == '.') {
map[xx][yy] = map[x][y];
map[x][y] = '.';
} else {
dfs(xx, yy);
map[xx][yy] = map[x][y];
map[x][y] = '.';
}
} int main() {
int i, j, k;
char cmd[];
int xx, yy; #ifndef ONLINE_JUDGE
freopen("data.in", "r", stdin);
freopen("data.out", "w", stdout);
#endif while (scanf("%s", map[]) != EOF) {
if (map[][]=='-' && map[][]=='-' && map[][]=='\0')
break;
for (i=; i<; ++i)
scanf("%s", map[i]);
for (i=; i<; ++i) {
for (j=; j<; ++j) {
if (map[i][j] == '^') {
x = i;
y = j;
d = ;
} else if (map[i][j] == 'v') {
x = i;
y = j;
d = ;
} else if (map[i][j] == '<') {
x = i;
y = j;
d = ;
} else if (map[i][j] == '>') {
x = i;
y = j;
d = ;
}
}
}
while (scanf("%s", cmd)!=EOF && cmd[]!='#') {
if (cmd[] == 'm') {
// move
scanf("%d", &k);
while (k--) {
xx = x + dir[d][];
yy = y + dir[d][];
if (check(xx, yy))
break;
dfs(x, y);
x = xx;
y = yy;
}
} else {
// turn
scanf("%s", cmd);
if (cmd[] == 'l') {
d = tdir[d][];
} else if (cmd[] == 'r') {
d = tdir[d][];
} else {
d = tdir[d][];
}
}
}
map[x][y] = dirs[d];
for (i=; i<; ++i) {
map[i][] = '\0';
puts(map[i]);
}
putchar('\n');
} return ;
}

最新文章

  1. HAProxy的安装与使用
  2. HTML基础知识汇总
  3. 如何扩大LVM 逻辑分区的大小?
  4. spring_异常提示1
  5. windows下安装rabbitmq的php扩展amqp
  6. 扩展GridView控件——为内容项添加拖放及分组功能
  7. 【BZOJ】【4003】【JLOI2015】城池攻占
  8. js设计模式(5)---外观模式
  9. linux系统文件属性及企业精典故障案例
  10. 使用一个HttpModule拦截Http请求,来检测页面刷新(F5或正常的请求)
  11. Delphi 服务操作
  12. LNK1207: incompatible PDB format in********
  13. wifi 模块
  14. eclipse 终极操作技巧
  15. PHP 字符串替换
  16. typeScript面对对象篇二
  17. python从零开始 -- 第1篇之环境搭建
  18. Senparc.Weixin SDK 微信公众号 .NET 开发教程 索引
  19. 在Linux上编译Hadoop-2.4.0实践与总结
  20. Go数组和切片定义和初始化

热门文章

  1. Linux查看当前系统登录用户、登录日志、登录错误日志
  2. td中使用overflow:hidden; 无效解决方案
  3. 解决 TortoiseGit 诡异的 Bad file number 问题
  4. HTML基础(2) 格式标签 文本标签
  5. java开发规范总结_代码注释规范
  6. SQL Server T-SQL高级查询【转】
  7. CSDN Oracle版精华帖荟萃
  8. C蛮的全栈之路-node篇(二) 实战一:自动发博客
  9. group By 和 Union 、 Union all的用法
  10. Java面向对象程序设计--接口和内部类