SSL-ZYC 反射

2024-01-30 11:18
文章标签 反射 ssl zyc

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

题目大意:
在一个长方形的区域里,每个位置都有一面镜子,请问从长方形外任意一点照射,光最多可以被反射几次?


思路:
这道题个人认为是一道比较难的暴力模拟,我们用s[i][j]来表示第i行j列的镜子的放置情况,f表示镜子反射的方向,以上,下,左,右的顺序来尝试从每个位置开始照射,最终输出正确结果。
这道题只需多注意些细节就行了。


代码:

#include <cstdio>
#include <iostream>
#include <algorithm>
using namespace std;char s[1001][1001];
int n,m,a[1001][1001],f,sum,maxn;int main()
{freopen("mirror.in","r",stdin);freopen("mirror.out","w",stdout);scanf("%d%d",&n,&m);getchar();for (int i=1;i<=n;i++,getchar()){for (int j=1;j<=m;j++)s[i][j]=getchar();} for (int i=1;i<=3;i+=2)  //从上和下寻找for (int j=1;j<=m;j++){f=i;sum=0;int x,y=j;if (i==1) x=1; else x=n;while (x>=1&&y>=1&&x<=n&&y<=m){if (s[x][y]=='/'&&f==1&&y>=1) y--,f=4;else if (s[x][y]=='/'&&f==2&&x>=1) x--,f=3;else if (s[x][y]=='/'&&f==3&&y<=m) y++,f=2;else if (s[x][y]=='/'&&f==4&&x<=n) x++,f=1;else if (s[x][y]!='/'&&f==1&&y<=m) y++,f=2;else if (s[x][y]!='/'&&f==2&&x<=n) x++,f=1;else if (s[x][y]!='/'&&f==3&&y>=1) y--,f=4;else if (s[x][y]!='/'&&f==4&&x>=1) x--,f=3;  //更改位置及方向sum++; }maxn=max(sum,maxn);}for (int j=2;j<=4;j+=2)  //从左和右寻找for (int i=1;i<=n;i++){f=j;sum=0;int x=i,y;if (j==2) y=1; else y=m;a[i][j]=1;  while (x>=1&&y>=1&&x<=n&&y<=m){if (s[x][y]=='/'&&f==1&&y>=1) y--,f=4;else if (s[x][y]=='/'&&f==2&&x>=1) x--,f=3;else if (s[x][y]=='/'&&f==3&&y<=m) y++,f=2;else if (s[x][y]=='/'&&f==4&&x<=n) x++,f=1;else if (s[x][y]!='/'&&f==1&&y<=m) y++,f=2;else if (s[x][y]!='/'&&f==2&&x<=n) x++,f=1;else if (s[x][y]!='/'&&f==3&&y>=1) y--,f=4;else if (s[x][y]!='/'&&f==4&&x>=1) x--,f=3; //更改位置及方向sum++; }maxn=max(sum,maxn);}printf("%d",maxn);
}

这篇关于SSL-ZYC 反射的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

java中反射(Reflection)机制举例详解

《java中反射(Reflection)机制举例详解》Java中的反射机制是指Java程序在运行期间可以获取到一个对象的全部信息,:本文主要介绍java中反射(Reflection)机制的相关资料... 目录一、什么是反射?二、反射的用途三、获取Class对象四、Class类型的对象使用场景1五、Class

Spring 中使用反射创建 Bean 实例的几种方式

《Spring中使用反射创建Bean实例的几种方式》文章介绍了在Spring框架中如何使用反射来创建Bean实例,包括使用Class.newInstance()、Constructor.newI... 目录1. 使用 Class.newInstance() (仅限无参构造函数):2. 使用 Construc

Python如何获取域名的SSL证书信息和到期时间

《Python如何获取域名的SSL证书信息和到期时间》在当今互联网时代,SSL证书的重要性不言而喻,它不仅为用户提供了安全的连接,还能提高网站的搜索引擎排名,那我们怎么才能通过Python获取域名的S... 目录了解SSL证书的基本概念使用python库来抓取SSL证书信息安装必要的库编写获取SSL证书信息

nginx生成自签名SSL证书配置HTTPS的实现

《nginx生成自签名SSL证书配置HTTPS的实现》本文主要介绍在Nginx中生成自签名SSL证书并配置HTTPS,包括安装Nginx、创建证书、配置证书以及测试访问,具有一定的参考价值,感兴趣的可... 目录一、安装nginx二、创建证书三、配置证书并验证四、测试一、安装nginxnginx必须有"-

Java通过反射获取方法参数名的方式小结

《Java通过反射获取方法参数名的方式小结》这篇文章主要为大家详细介绍了Java如何通过反射获取方法参数名的方式,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1、前言2、解决方式方式2.1: 添加编译参数配置 -parameters方式2.2: 使用Spring的内部工具类 -

python实现简易SSL的项目实践

《python实现简易SSL的项目实践》本文主要介绍了python实现简易SSL的项目实践,包括CA.py、server.py和client.py三个模块,文中通过示例代码介绍的非常详细,对大家的学习... 目录运行环境运行前准备程序实现与流程说明运行截图代码CA.pyclient.pyserver.py参

Java如何通过反射机制获取数据类对象的属性及方法

《Java如何通过反射机制获取数据类对象的属性及方法》文章介绍了如何使用Java反射机制获取类对象的所有属性及其对应的get、set方法,以及如何通过反射机制实现类对象的实例化,感兴趣的朋友跟随小编一... 目录一、通过反射机制获取类对象的所有属性以及相应的get、set方法1.遍历类对象的所有属性2.获取

C#反射编程之GetConstructor()方法解读

《C#反射编程之GetConstructor()方法解读》C#中Type类的GetConstructor()方法用于获取指定类型的构造函数,该方法有多个重载版本,可以根据不同的参数获取不同特性的构造函... 目录C# GetConstructor()方法有4个重载以GetConstructor(Type[]

消除安卓SDK更新时的“https://dl-ssl.google.com refused”异常的方法

消除安卓SDK更新时的“https://dl-ssl.google.com refused”异常的方法   消除安卓SDK更新时的“https://dl-ssl.google.com refused”异常的方法 [转载]原地址:http://blog.csdn.net/x605940745/article/details/17911115 消除SDK更新时的“

Android逆向(反调,脱壳,过ssl证书脚本)

文章目录 总结 基础Android基础工具 定位关键代码页面activity定位数据包参数定位堆栈追踪 编写反调脱壳好用的脚本过ssl证书校验抓包反调的脚本打印堆栈bilibili反调的脚本 总结 暑假做了两个月的Android逆向,记录一下自己学到的东西。对于app渗透有了一些思路。 这两个月主要做的是代码分析,对于分析完后的持久化等没有学习。主要是如何反编译源码,如何找到