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

相关文章

消除安卓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渗透有了一些思路。 这两个月主要做的是代码分析,对于分析完后的持久化等没有学习。主要是如何反编译源码,如何找到

【反射知识点详解】

Java中的反射(Reflection)是一个非常强大的机制,它允许程序在运行时检查或修改类的行为。这种能力主要通过java.lang.reflect包中的类和接口来实现。 通过反射,Java程序可以动态地创建对象、调用方法、访问字段,以及获取类的各种信息(如构造器、方法、字段等)。 反射的用途 反射主要用于以下几种情况: 动态创建对象:通过类的Class对象动态地创建其实例。访问类的字段

Go 在orm中使用反射

作为静态语言,golang 稍显笨拙,还好 go 的标准包reflect(反射)包弥补了这点不足,它提供了一系列强大的 API,能够根据执行过程中对象的类型来改变程序控制流。本文将通过设计并实现一个简易的 mysql orm 来学习它,要求读者了解mysql基本知识,并且跟我一样至少已经接触 golang 两到三个月。 orm 这个概念相信同学们都非常熟悉,尤其是写过rails的同学,对acti

类型信息:反射-Class

在说反射前提一个概念:RTTI(在运行时,识别一个对象的类型) public class Shapes {public static void main(String[] args) {List<Shape> shapes = Arrays.asList(new Circle(), new Square(), new Triangle());for (Shape shape : shapes

单例模式以及反射对单例模式的破坏及防御

单例模式(Singleton Pattern)是一种确保类在应用程序生命周期内只存在一个实例的设计模式。它不仅提供了全局访问点,还能节省内存、控制实例的生命周期。但常见的单例模式实现方式如饿汉式、懒汉式、双重校验锁、静态内部类等,虽然设计良好,但都容易被 Java 的反射机制所破坏。本文将介绍这些单例实现方式的优缺点、反射如何破坏它们的唯一性,以及如何防御这种破坏。 1. 单例模式的常见实现

servlet用反射代替if..else

String methodName = request.getParameter("method"); Method method = this.getClass().getDeclaredMethod(methodName,HttpServletRequest.class, HttpServletResponse.class); method.invoke(this, request, re

Redis缓存 自定义注解+aspect+反射技术实现

最近再给云随笔后台增加redis模块,突然发现spring-boot-starter-data-redis模块很不人性化,实现不了通用的方式,(当然,你也可以自己写个通用的CacheUtil来实现通用的方式),但由于本人非常的爱装逼,就在这里不讲解那种傻瓜式操作了,这里只讲干货,干到你不可置信的干货). 例如:这里我使用了它其中的RedisTemplate ,发现存到redis中后,数据

828华为云征文|基于Flexus云服务器X实例的应用场景-拥有一款自己的ssl监控工具

先看这里 写在前面效果图华为云Flexus云服务器X实例介绍特点可选配置购买 连接服务器Uptime-kuma简介开源信息部署准备工作:docker部署命令访问uptime-kuma 基本配置总结 写在前面 作为一个个人开发者,相信你手里肯定也有不少自己的服务,有的服务呢也是https的。 以前ssl各厂都是可以免费申请一年的,我们更换的频率还好,比较小;但是最近,各厂都

TLS和SSL的区别比较

1、定义和组成       SSL:(Secure Socket Layer,安全套接字层),位于可靠的面向连接的网络层协议和应用层协议之间的一种协议层。SSL通过互相认证、使用数字签名确保完整性、使用加密确保私密性,以实现客户端和服务器之间的安全通讯。该协议由两层组成:SSL记录协议和SSL握手协议。   TLS:(Transport