题目传送门

 /*
题意:光线从 '*' 发射,遇到 '/' 或 '\' 进行反射,最后射到墙上,将 'x' 变成 '&'
模拟:仔细读题,搞清楚要做什么,就是i,j的移动,直到撞到墙,模拟一下一次AC,不要被题目吓怕了:)
*/
#include <cstdio>
#include <iostream>
#include <algorithm>
#include <stack>
#include <cmath>
#include <cstring>
#include <vector>
using namespace std; const int MAXN = 1e4 + ;
const int INF = 0x3f3f3f3f;
char g[][]; int main(void) //CSU 1562 Fun House
{
//freopen ("B.in", "r", stdin); int n, m, cas = ;
while (scanf ("%d%d", &m, &n) == )
{
if (n == && m == ) break; for (int i=; i<n; ++i)
{
scanf ("%s", &g[i]);
} printf ("HOUSE %d\n", ++cas); int sx = -, sy = -;
int num = ;
for (int i=; i<n; ++i)
{
for (int j=; j<m; ++j)
{
if (g[i][j] == '*')
{
if (j == ) num = ;
else if (j == m-) num = ;
else if (i == ) num = ;
else if (i == n-) num = ;
sx = i; sy = j;
break;
}
}
} while ()
{
if (num == )
{
++sy;
if (g[sx][sy] == '/') num = ;
else if (g[sx][sy] == '\\') num = ;
else if (g[sx][sy] == 'x')
{
g[sx][sy] = '&'; break;
}
}
else if (num == )
{
--sy;
if (g[sx][sy] == '/') num = ;
else if (g[sx][sy] == '\\') num = ;
else if (g[sx][sy] == 'x')
{
g[sx][sy] = '&'; break;
}
}
else if (num == )
{
++sx;
if (g[sx][sy] == '/') num = ;
else if (g[sx][sy] == '\\') num = ;
else if (g[sx][sy] == 'x')
{
g[sx][sy] = '&'; break;
}
}
else if (num == )
{
--sx;
if (g[sx][sy] == '/') num = ;
else if (g[sx][sy] == '\\') num = ;
else if (g[sx][sy] == 'x')
{
g[sx][sy] = '&'; break;
}
}
} for (int i=; i<n; ++i)
{
for (int j=; j<m; ++j)
{
printf ("%c", g[i][j]);
}
puts ("");
}
} return ;
} /*
HOUSE 1
xxxxxxxxxxx
x../..\...x
x..../....x
*../......x
x.........x
xxxxxx&xxxx
HOUSE 2
xxxxx
*...&
x...x
x...x
xxxxx
HOUSE 3
xxxxx
x./\x
*./.x
x..\&
xxxxx
HOUSE 4
xxx*xx
x/...x
x....x
x/./.&
x\./.x
xxxxxx
HOUSE 5
xxxxxxxxxx
x.../\...x
x........x
x........x
&.../\..\x
*...\/../x
x........x
x........x
x...\/...x
xxxxxxxxxx
*/

最新文章

  1. 如何把Spring制作成jar包,然后在项目里运行。
  2. python网络编程-socket
  3. Java多线程21:多线程下的其他组件之CyclicBarrier、Callable、Future和FutureTask
  4. 【XLL 框架库函数】 Excel/Excel12f
  5. UVALive 6257 Chemist&#39;s vows --一道题的三种解法(模拟,DFS,DP)
  6. Python 虚拟环境Virtualenv
  7. 重拾HTML(一)
  8. 一月份实现Adb小程序
  9. Javascript个人理解
  10. MySQL管理一些基础SQL语句
  11. 在SCIKIT中做PCA 逆运算 -- 新旧特征转换
  12. Linux-day1-pdf课件
  13. Asp.net Core 使用Jenkins + Dockor 实现持续集成、自动化部署(三):搭建jenkins集群环境
  14. windows 2008下IIS7 安装ASP.NET 遇到500.19
  15. 关于visual assist x插件不能用的解决方案
  16. java框架之MyBatis(1)-入门&amp;动态代理开发
  17. win10 安装 open live write
  18. indexOf()/equals/contains
  19. python学习笔记12-深浅拷贝
  20. SQL Server 2008中SQL之WaitFor

热门文章

  1. cnblog可以直接黏贴qq截图,但最好不要偷懒
  2. 解决Yum安装依赖问题
  3. Unity3D开发之NGUI点击事件穿透响应处理
  4. 序列GCD和问题(题目)
  5. Linux下列格式化工具 - column
  6. jquery check box
  7. 分享一个Cnblogs简易APP
  8. ExecutorService 和 NSOperationQueue
  9. MySQL下载安装、配置与使用(win7x64)
  10. 使用eclipse开发Java web应用