自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(23)
  • 收藏
  • 关注

原创 [蓝桥杯 2021 省 AB2] 负载均衡

有台计算机,第台计算机的运算能力为vi​。有一系列的任务被指派到各个计算机上,第个任务在ai​时刻分配,指定计算机编号为bi​,耗时为ci​且算力消耗为di​。如果此任务成功分配,将立刻开始运行,期间持续占用bi​号计算机di​的算力,持续ci​秒。对于每次任务分配,如果计算机剩余的运算能力不足则输出,并取消这次分配,否则输出分配完这个任务后这台计算机的剩余运算能力。

2024-05-29 15:23:25 853

原创 [蓝桥杯 2020 省 AB2] 子串分值

对于一个字符串,我们定义的分值为中恰好出现一次的字符个数。例如。现在给定一个字符串(长度为),请你计算对于所有的非空子串的和是多少。

2024-05-20 21:42:55 723

原创 [蓝桥杯 2020 省 B1] 整数拼接

给定一个长度为的数组A1​A2​⋅⋅⋅An​。你可以从中选出两个数Ai​和Aj​不等于),然后将Ai​和Aj​一前一后拼成一个新的整数。例如和可以拼成或。注意交换Ai​和Aj​的顺序总是被视为种拼法,即便是Ai​Aj​时。请你计算有多少种拼法满足拼出的整数是的倍数。

2024-05-19 20:10:25 956

原创 [蓝桥杯 2020 省 A1] 超级胶水

小明有颗石子,按顺序摆成一排。他准备用胶水将这些石子粘在一起。每颗石子有自己的重量,如果将两颗石子粘在一起,将合并成一颗新的石子,重量是这两颗石子的重量之和。为了保证石子粘贴牢固,粘贴两颗石子所需要的胶水与两颗石子的重量乘积成正比,本题不考虑物理单位,认为所需要的胶水在数值上等于两颗石子重量的乘积。每次合并,小明只能合并位置相邻的两颗石子,并将合并出的新石子放在原来的位置。现在,小明想用最少的胶水将所有石子粘在一起,请帮助小明计算最少需要多少胶水。

2024-05-18 19:37:57 1633

原创 [蓝桥杯 2019 国 AC] 轨道炮

小明在玩一款战争游戏。地图上一共有个敌方单位,可以看作 2D 平面上的点。其中第个单位在时刻的位置是 (Xi​Yi​),方向是Di​(上下左右之一,用表示),速度是Vi​。小明的武器是轨道炮,只能使用一次,不过杀伤力巨大。小明可以选择在某个非负整数时刻释放轨道炮,轨道炮一次可以消灭在一条直线 (平行于坐标轴) 上的所有敌方单位。请你计算小明最多能消灭多少敌方单位。

2024-05-16 19:50:05 445

原创 [蓝桥杯 2019 省 A] 糖果

糖果店的老板一共有种口味的糖果出售。为了方便描述,我们将种口味编号。小明希望能品尝到所有口味的糖果。遗憾的是老板并不单独出售糖果,而是颗一包整包出售。幸好糖果包装上注明了其中颗糖果的口味,所以小明可以在买之前就知道每包内的糖果口味。给定包糖果,请你计算小明最少买几包,就可以品尝到所有口味的糖果。

2024-05-15 17:02:32 363

原创 [蓝桥杯 2019 省 A] 修改数组

给定一个长度为的数组AA​A2​⋅⋅⋅AN​,数组中有可能有重复出现的整数。现在小明要按以下方法将其修改为没有重复整数的数组。小明会依次修改A​A2​⋅⋅⋅AN​。当修改Ai​时,小明会检查Ai​是否在A1​∼Ai−1​中出现过。如果出现过,则小明会给Ai​加上;如果新的Ai​仍在之前出现过,小明会持续给Ai​加,直到Ai​没有在A1​∼Ai−1​中出现过。当AN​。

2024-05-13 17:41:58 731

原创 [蓝桥杯 2019 省 A] 外卖店优先级

饱了么”外卖系统中维护着家外卖店,编号。每家外卖店都有一个优先级,初始时 (时刻) 优先级都为。每经过个时间单位,如果外卖店没有订单,则优先级会减少,最低减到;而如果外卖店有订单,则优先级不减反加,每有一单优先级加。如果某家外卖店某时刻优先级大于,则会被系统加入优先缓存中;如果优先级小于等于,则会被清除出优先缓存。

2024-05-12 22:15:00 369

原创 [蓝桥杯 2019 省 B] 后缀表达式

给定个加号、M 个减号以及个整数,小明想知道在所有由这个加号、个减号以及个整数凑出的合法的后缀表达式中,结果最大的是哪一个?请你输出这个最大的结果。例如使用,则这个后缀表达式结果是,是最大的。

2024-05-11 21:12:11 318 1

原创 UE4 运行流程源码浅析(3——从Start到BeginPlay)

本文章只是我个人在学习虚幻引擎过程中的一些理解,不一定正确,若有说的不对的地方,欢迎指正。前面我们介绍了引擎的执行流程和各个阶段(预初始化、初始化、循环、退出)函数调用的情况,但我们好像还没看见我们熟悉的是在哪里被调用的。其实所有的源头就是我们上一篇没有进一步介绍的函数,本篇会从Start函数出发详细介绍这其中的调用过程。

2024-02-19 23:05:22 1963 1

原创 UE4 运行流程源码浅析(2)

本文章只是我个人在学习虚幻引擎过程中的一些理解,不一定正确,若有说的不对的地方,欢迎指正。在《》中我们简略讲了一下虚幻引擎运行流程,相信大家已经对整体框架有了初步的了解。本篇我们来讲一下之前没讲的,在虚幻引擎预初始化()、初始化()、循环()等阶段中调用的一些比较重要的函数。

2024-02-11 22:51:51 2225 2

原创 UE4 运行流程源码浅析(1)

本文章只是我个人在学习虚幻引擎过程中的一些理解,不一定正确,若有说的不对的地方,欢迎指正。在之前的文章中我们接收过虚幻引擎的智能指针,介绍过代理也介绍过虚幻多线程。但这些都是在引擎运转过程中起作用的模块。本人认为想要学好虚幻引擎,我们需要知道点燃它的第一把火,即虚幻引擎是如何启动的。本章会来讲讲启动的时候它做了哪些准备工作,浅析一下引擎启动的源码。这篇文章会从虚幻程序的入口、虚幻引擎运行流程结构、虚幻引擎的初始化和虚幻引擎主循环四个部分来展开来说。

2024-01-31 23:15:42 971

原创 UE4 多线程源码浅析(3——TaskGraph)

本文章只是我个人在学习虚幻引擎过程中的一些理解,不一定正确,若有说的不对的地方,欢迎指正。前两篇我们分别讲了虚幻多线程的基础线程系统()和异步任务系统(),本篇我们来讲讲虚幻多线程的最后一员大将——。字面意思是任务图,可以把它看成是超进化版的线程池,相对的它的源码也变得更加复杂。实现了任务之间额等待机制,因此它和前两种多线程系统最大的区别在于它可以表示出任务与任务之间相互依赖的关系。

2024-01-12 20:22:27 1047 1

原创 UE4 多线程源码浅析(2——AsyncTask)

本文章只是我个人在学习虚幻引擎过程中的一些理解,不一定正确,若有说的不对的地方,欢迎指正。上篇我们讲解了一下的源码,了解了一下它的基本架构和一些实现。本篇我们将介绍接下来的异步任务系统(),在《UE4 多线程的使用》中我们了解了异步任务系统的使用方法,似乎没看到任何有关的字眼,那么它和有关吗?事实上,有的,不过这需要我们进入到它的底层去看才能找到。在正式介绍之前,我们需要先介绍虚幻线程池(),因为异步任务系统是基于虚幻线程池搭建的。

2023-12-21 20:15:52 1589

原创 UE4 多线程源码浅析(1——FRunnable)

本文章只是我个人在学习虚幻引擎过程中的一些理解,不一定正确,若有说的不对的地方,欢迎指正。在**《UE4 多线程的使用》**中我们了解到虚幻引擎为我们提供了三种使用多线程()的方法,这篇文章我们来了解一下这三个工具的源码。首先当然是最简单的,使用它需要两部分,一是逻辑的载体(),二是真正的线程(

2023-12-05 13:09:48 199

原创 UE4 多线程的使用

在现代操作系统中,多线程是一项极其重要的特性。因此基于多线程平台开发出来的程序应该要好好的利用这种特性。虚幻引擎作为跨平台的、大型游戏引擎,也提供了一套自己的使用平台多线程的解决方案,首先来了解一下虚幻多线程的基本概念。虚幻多线程分为专用线程和线程池线程,专用线程——游戏线程(GameThread)、渲染指令生成线程()、渲染指令执行线程(RHIThread)、音视频处理线程()等;

2023-11-14 20:42:42 451

原创 UE4 代理(Delegate)源码浅析(3)

这一篇是代理的最后一篇了,写代理的使用和源码前前后后也写了有一个多月。有小伙伴会发现我越写到后面省略越多东西,主要是代理之间有许多相似的地方,都写出来的话感觉太冗余了。虚幻引擎的几种代理的架构都差不多,有些除了可接受的参数数量不同外几乎一模一样,知道了几个代表,再看其他的其实很简单。

2023-10-31 20:43:27 182 1

原创 UE4 代理(Delegate)源码浅析(2)

本文章只是我个人在学习虚幻引擎过程中的理解,不一定正确,若有说的不对的地方,欢迎指正。以下引用的源码在Engine\Source\Runtime\Core\Public\Delegates\文件夹下的文件内均可找到在《UE4 代理(Delegate)源码浅析(1)》中我们浅析了一下静态单播代理的源码,这次我们继续讲讲剩下的代理。

2023-10-21 20:50:05 116 1

原创 UE4 代理(Delegate)源码浅析(1)

本文章只是我个人在学习虚幻引擎过程中的理解,不一定正确,若有说的不对的地方,欢迎指正。以下引用的源码在Engine\Source\Runtime\Core\Public\Delegates\文件夹下的文件内均可找到。

2023-10-09 20:17:30 113 1

原创 UE4 代理(Delegate)的使用(2)

写到这里,虚幻引擎代理者这部分差不多写完了,不敢说写出来代理的所有用法,但也基本覆盖了最常用的。这两篇文章也算是这的时间学习虚幻引擎代理的总结吧。

2023-10-01 21:02:31 78

原创 UE4 代理(Delegate)的使用(1)

本文章只是我个人在学习虚幻智能指针过程中的理解,不一定正确,若有说的不对的地方,欢迎指正。在学生时代,我们写程序的时,想要在一个A类中调用B类的方法函数的时候,我们一般会A类内保存一个B类的引用。但这样做会造成A类与B类的(A类要知道B类的类型才能获得引用),造成某些不好的影响。而在虚幻引擎里写复杂代码的过程中为了减少类似的情况发生,也为了代码便于后期维护,引擎提供了。那么什么是代理?代理就是夹在A类和B类中间的类型,A类需要调用B类的某个函数,它可以通过保存在类内的代理对象来调用这个函数。

2023-09-24 21:43:40 121

原创 UE4 共享指针源码浅析

本文章只是我个人在学习虚幻智能指针过程中的理解,不一定正确,若有说的不对的地方,欢迎指正。根据源码里面的注释可以看出,UE4智能指针借鉴了C++自带的 std:shared_ptr,但由于一些平台并不支持C++的智能指针,因此,虚幻官方开发者重新写了一套智能指针,它基本支持市面上所有你能看到的平台,而且还与UE自身提供的容器无缝衔接,熟练使用它能避免出现使用普通指针会出现的一些问题。

2023-09-18 21:09:05 123

原创 UE4 共享指针的使用

本文章只是我个人在学习虚幻智能指针过程中的理解,不一定正确,若有说的不对的地方,欢迎指正。在虚幻引擎中继承自UObject类的子类自然会拥有垃圾回收机制(GC),自然不需要开发者担心内存泄露的问题,但是开发过程中对于不继承自UObject的类该怎么办呢?这时候智能指针的作用就凸显出来了。智能指针能保存一个引用计数,引用计数就是代码中引用原始对象的数量,当引用计数变成0时,智能指针会自动失效,以防止开发者错误使用野指针。

2023-09-12 19:57:28 117 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除