炫酷镜子

2024-06-17 21:38
文章标签 炫酷 镜子

本文主要是介绍炫酷镜子,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

【题目描述】

小希拿到了一个镜子块,镜子块可以视为一个N x M的方格图,里面每个格子仅可能安装`\`或者`/`的镜子,会反射90°光线,也可能没有安装镜子,使用`.`代替。

但她看不清楚里面的镜子构造是怎样的。

你是这块镜子块的主人,所以你想计算这块镜子块(从输入的上方往下射入光线)从左到右每一格射入依次分别会从最下面的哪一格子射出,如果无法射出,输出-1。

【输入描述】

第一行输入两个整数N,M。随后的N行,每行M个字符。

1≤N,M≤500

【输出描述】

输出M行整数,依次为从第i个格子从上往下射入时从下面的哪里射出,如果光线不会从下面射出,则输出-1。

【样例】

示例1

输入
3 3
...
...
\.\
输出
3
2
-1
说明
第一列遇到镜子两次反弹通过第三列射出。
第二列直接射出。
第三列因为镜子反弹后向右边射出。

思路:模拟即可,注意 \ 镜子需要在其前面再加一反斜杠

【源代码】

#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<string>
#include<cstring>
#include<cmath>
#include<ctime>
#include<algorithm>
#include<utility>
#include<stack>
#include<queue>
#include<vector>
#include<set>
#include<map>
#define PI acos(-1.0)
#define E 1e-6
#define INF 0x3f3f3f3f
#define N 1001
#define LL long long
const int MOD=998244353;
const int dx[]={-1,1,0,0};//上下左右
const int dy[]={0,0,-1,1};
using namespace std;
char G[N][N];
int main(){int n,m;cin>>n>>m;for(int i=1;i<=n;i++)for(int j=1;j<=m;j++)cin>>G[i][j];for(int i=1;i<=m;i++){//枚举每一列int x=1,y=i;//每一列的第一个格子int next=1;//方向int res=-1;while(x>=1&&x<=n&&y>=1&&y<=m){if(G[x][y]=='\\')//向右next=(next+2)%4;if(G[x][y]=='/')//向左next=3-next;x+=dx[next];y+=dy[next];if(x==n+1)//最后一个格子res=y;}cout<<res<<endl;}return 0;
}

 

这篇关于炫酷镜子的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1070550

相关文章

HTML 实现炫酷选项卡效果

在前端开发中,创造出吸引人的交互效果能够极大地提升用户体验。今天,我将分享一段使用 HTML 和 CSS 实现的炫酷选项卡代码,并详细介绍其实现过程。 一、效果展示 我们的选项卡效果具有以下特点: 整体布局美观大方,页面居中显示。选项卡标签颜色鲜艳,分别为紫色(#a55eea)、蓝色(#45aaf2)和绿色(#26de81),且带有圆角边框和白色文字,鼠标悬停时透明度变为 0.7,增加交互反

蓝色炫酷碎粒子HTML5导航源码

源码介绍 蓝色炫酷碎粒子HTML5导航源码,源码由HTML+CSS+JS组成,记事本打开源码文件可以进行内容文字之类的修改,双击html文件可以本地运行效果,也可以上传到服务器里面,重定向这个界面 效果预览 源码获取 蓝色炫酷碎粒子HTML5导航源码

使用b站开源弹幕引擎实现炫酷的弹幕效果

转载请注明出处 作者:AboutJoke ( http://blog.csdn.net/u013200308 ) 原文链接:http://blog.csdn.net/u013200308/article/details/57123100 现在各大视屏网站都有了弹幕功能,但显示效果最好的非b站莫属了。如果你也想拥有和b站一样炫酷的弹幕效果,那么就跟着我来一步步实现。 首先放上地址 h

《Linux操作系统》vim配置与使用 - 超级炫酷的配置vim文件

方法一: 1.打开终端,在命令行中输入命令 cd /etc/vim/ 后敲回车,进入/etc/vim目录; 2.进入etc/vim目录后,找到vimrc文件(vim的初始化文件),使用cp命令对其进行备份,命令为: sudo cp vimrc vimrc.bak //备份是一种安全机制,要谨记 3.用管理员权限打开vimrc,命令为:sudo vi vimrc 4.打开后,在vimrc文件最后

别找AE模板了,这10个ae模板网站,小白也能做出炫酷视频

上次把免费且优质的视频素材网站做成了一个合集,从人物风景 影视剧片段 到 3d素材等等依次做了汇总,并列出了版权说明。 别囤了!这些视频素材网站,绝对值得收藏! 而如果你想在短期内又快又好地制作视频,使用别人做好的AE 视频模板,无疑是最方便的技巧。这次给大家整理了好用的 AE 模板网站,国内国外都有(国外没有版权问题)并以一个Ae模板为例,介绍使用模板时可能会遇到的问题及对应的解决方

Ant-Design-Vue快速入门+排坑全攻略:打造炫酷Vue应用的s实用指南!

Ant-Design-Vue 是一个基于 Vue.js 的高质量 UI 组件库,适用于企业级后台产品的快速开发。下面将提供一份快速上手指南,并分享一些常见的“坑”和解决方案。 一、Ant-Design-Vue 快速上手指南 1. 安装与引入 确保安装了 Node.js(推荐使用最新的稳定版)。 使用 npm 或 yarn 安装 Ant-Design-Vue。 # 使用 npm npm

分享小诗梦404炫酷单页面html5源码

源码介绍 分享小诗梦404炫酷单页面html5源码,小诗梦的一个很炫酷页面,感觉应该符合一些人的感觉!可以用来做404页面。 源码下载 分享小诗梦404炫酷单页面html5源码

WPF炫酷界面设计

一.效果展示(多层次) 二.制作流程 1.在vs2012中建立一个wpf程序 2.建立一个主页面(.cs)(注:C#程序每一个页面都由两个文件构成一个axml一个cs,一个前端文件一个后台文件) 3.在主页面中添加按钮,按钮中嵌入图片,这样就可以在在后台动态更改界面显示的效果,每次点击都更改图片,显示出不同的图片 4.在主页面中添加

推荐3个高级设计师都在用的小众网站,效果贼拉炫酷

今天给大家推荐三个可以提升设计质感的网站,效果贼拉炫酷。 第一个:Gradientor 这是一个在线生成渐变图片的网站,只需在上面上传SVG格式的图片,画布就能根据图片内容自动生成渐变效果,也可以在画布里用鼠标直接绘制,但由于渐变的方向是垂直的,所以纵向笔画后被隐藏。它可以调整画布尺寸和渐变颜色,也可以调整渐变的范围,还可以给生成的效果增加噪点,提升质感。如果对当前生成的效果不满意,也可以撤销

Qt Quick实现一个炫酷的折叠动画效果

demo来自 https://github.com/cjmdaixi/FlipAnimation 代码上传到了 csdn 文章目录 效果图核心代码从中学习到了什么ShaderEffectSourceFlipable 感谢无私奉献的人 效果图 可以动态配置折叠次数 核心代码 FlipCards.qml import QtQuick 2.9import QtQuick.C