简单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 ;
}

【HDOJ】2414 Chessboard Dance的更多相关文章

  1. HDU 2414 Chessboard Dance (力模拟)

    主题链接:HDU 2414 Chessboard Dance 意甲冠军:鉴于地图,>,<,^,v的方向,字母相当于是箱子,箱子能够推出边界.人保证不会做出边界.以下输入指令,依照指令走,输 ...

  2. POJ 3344 &amp; HDU 2414 Chessboard Dance(模拟)

    题目链接: PKU:http://poj.org/problem? id=3344 HDU:http://acm.hdu.edu.cn/showproblem.php?pid=2414 Descrip ...

  3. 【HDOJ】4729 An Easy Problem for Elfness

    其实是求树上的路径间的数据第K大的题目.果断主席树 + LCA.初始流量是这条路径上的最小值.若a<=b,显然直接为s->t建立pipe可以使流量最优:否则,对[0, 10**4]二分得到 ...

  4. 【HDOJ】【3506】Monkey Party

    DP/四边形不等式 裸题环形石子合并…… 拆环为链即可 //HDOJ 3506 #include<cmath> #include<vector> #include<cst ...

  5. 【HDOJ】【3516】Tree Construction

    DP/四边形不等式 这题跟石子合并有点像…… dp[i][j]为将第 i 个点开始的 j 个点合并的最小代价. 易知有 dp[i][j]=min{dp[i][j] , dp[i][k-i+1]+dp[ ...

  6. 【HDOJ】【3480】Division

    DP/四边形不等式 要求将一个可重集S分成M个子集,求子集的极差的平方和最小是多少…… 首先我们先将这N个数排序,容易想到每个自己都对应着这个有序数组中的一段……而不会是互相穿插着= =因为交换一下明 ...

  7. 【HDOJ】【2829】Lawrence

    DP/四边形不等式 做过POJ 1739 邮局那道题后就很容易写出动规方程: dp[i][j]=min{dp[i-1][k]+w[k+1][j]}(表示前 j 个点分成 i 块的最小代价) $w(l, ...

  8. 【HDOJ】【3415】Max Sum of Max-K-sub-sequence

    DP/单调队列优化 呃……环形链求最大k子段和. 首先拆环为链求前缀和…… 然后单调队列吧<_<,裸题没啥好说的…… WA:为毛手写队列就会挂,必须用STL的deque?(写挂自己弱……s ...

  9. 【HDOJ】【3530】Subsequence

    DP/单调队列优化 题解:http://www.cnblogs.com/yymore/archive/2011/06/22/2087553.html 引用: 首先我们要明确几件事情 1.假设我们现在知 ...

随机推荐

  1. linux 下ffmpeg和mencoder安装

    ffmpeg和mencoder是进行视频转换和视频抽帧的重要开源工具,支持linux和windows环境下的视频转换和视频抽帧操作.本文章记录在linux这两者工具的安装过程.ffmpeg集成视频编码 ...

  2. java 开发基础篇1环境安装--eclipse安装教程

    如何安装java环境 http://jingyan.baidu.com/article/a24b33cd59b58e19fe002bb9.html JDK download http://www.or ...

  3. C#设置与获取目录权限(.net控制ACL)

    找到两种方式可以修改文件夹的权限 第一种: 想用c#来设置和读取ntfs分区上的目录权限,找了很多资料,未果.终于发现了一段vb.net的代码,做了修改,以C#展示给大家. using System; ...

  4. ubuntu下配置java环境变量

    1.官网下载linux对应的jdk安装包tar.gz 2.filezilla上传tar.gz到对应ubuntu目录test下(见上一篇) 3.解压:tar -zcvf XXX.tar.gz 4.修改解 ...

  5. LINUX nohup命令输入输出深浅进出

    无论是否将 nohup命令的输出重定向到终端,输出都将附加到当前目录的 nohup.out 文件中.如果当前目录的 nohup.out 文件不可写,输出重定向到 $HOME/nohup.out 文件中 ...

  6. STUN/TURN/ICE协议在P2P SIP中的应用(二)

    1       说明 2       打洞和穿越的概念... 1 3       P2P中的打洞和穿越... 2 4       使用STUN系列 协议穿越的特点... 2 5       STUN/ ...

  7. JavaScript学习心得(五)

    一时间 1970年1月1日是电脑常用的时间参考点,称为纪元(Epoch)或者UNIX时间戳(UNIX Epoch).JavaScript中的Date对象能够表示1970年1月1日子夜前后1亿天之内的任 ...

  8. PHP代码分离

    所谓的代码分离 其实只是一种思路,既然是一种思路 那就意味着他是有需求的 没有需求就没有解决方案 没有方案就不存在思路. 在这之前,我们制作 PHP 程序页面的时候.都是 HTML 和 PHP 混合写 ...

  9. cx_Oracle使用方法一

    cx_Oracle使用方法 正确安装好cx_oracle之后,要使用它来连接到oracle数据库进行操作,具体应该分3步走: 第一步:导入cx_Oracle ,建立连接 >>> im ...

  10. 配置nginx支持thinkphp框架

    因为nginx本身没有支持pathinfo,所以无法使用thinkphp框架,不过我们可以在配置里进行修改使其能够正常使用thinkphp. 1.修改配置支持pathinfo vi /etc/ngin ...