自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Cauchy的博客

热爱技术,热爱生活,相信幸运!

  • 博客(140)
  • 收藏
  • 关注

原创 【DP 动态规划 | 精选推荐】持续更新

本文(DP 动态规划)章节,主要记录一些比较经典,或者说是容易理解的动态规划习题,难度一般都不会很大(≤Medium≤Medium)。

2022-10-11 08:00:00 710 7

原创 【MongoDB】Ubuntu22.04 下安装 MongoDB | 用户权限认证 | skynet.db.mongo 模块使用

Ubuntu 22.04 安装 MongoDB、MongoDB 用户权限认证、skynet.db.mongo 模块使用

2023-09-08 16:03:52 789

原创 【RPC 协议】序列化与反序列化 | lua-cjson | lua-protobuf

在分布式计算,远程过程调用(英语:Remote Procedure Call,缩写为 RPC)是一个计算机通信协议。该协议允许运行于一台计算机的程序调用另一个地址空间(通常为一个开放网络的一台计算机)的子程序,而程序员就像调用本地程序一样,无需额外地为这个交互作用编程(无需关注细节)。RPC 是一种服务器-客户端(Client/Server)模式,经典实现是一个通过发送请求-接受回应进行信息交互的系统。

2023-09-01 14:49:34 667

原创 【触动精灵】IDE 连接设备

蒲公英是一个广域网连接开发工具神器,此软件会在本地搭建一个虚拟局域网,实现电脑和手机在局域网内进行连接。注册默认的是免费套餐,免费版套餐排除电脑端占用一个名额外还可以连接两台设备,对于开发来说已经够用了。,可以在开发者平台的个人中心绑定触动安卓账号(绑定位置如下图)会自动赠送 VIP 授权,注意此账号与开发者平台账号不通用,需要在客户端单独注册或者在触动官网商城购买账号(购买账号无法在开发者平台绑定)。免费版本最多管理三个用户,一台电脑端,两台手机端。,供之后的触动精灵获取 root。

2023-08-30 22:09:40 133

原创 【openresty】利用 JWT 实现令牌校验 | 模拟注册登录流程 | RunnerGo 自动化测试

JWT(JSON Web Token)是一种基于 JSON 的开放标准(RFC 7519),它定义了一种简洁的、自包含的协议格式,用于在通信双方传递 json 对象,常用来实现分布式用户认证。它通常用于用户的登录鉴权,进行身份验证和信息交换。用户使用账号、密码登录,请求发送到 Authentication Server。Authentication Server 进行用户验证(查询数据库等),创建 JWT 字符串返回给客户端。客户端请求接口访问资源时,请求头携带 JWT。

2023-08-24 11:11:16 143

原创 【Mysql 连接报错】

【Client does not support authentication protocol requested by server】

2023-08-17 14:39:25 297

原创 【RedisInsight】连入Docker容器可视化redis服务

在后台运行 redis,接下来就可以通过 RedisInsight 可视化软件连接了。做完上述工作即可正常连接docker内的redis服务器了,通过。打开桌面上的快捷方式启动:RedisInsight-v2。主要填完上述前两个参数,然后就直接添加上即可。还需要注意的是:在添加服务器时填写的。重启 redis 服务,并通过。显示如上界面,即安装成功无误。端口需要放行,允许远程连接。,安装过程一路Next即可。端口映射到容器内部的。

2023-08-03 17:43:46 502

原创 ubuntu安装cmake简易教程

由于直接用apt指令安装cmake可能会导致版本过低,所以本教程用于安装较新的稳定版cmake。如果直接按上述一键安装也可以,但是版本会偏低。原因是软件包没有同步更新官网的较新版本,所以我们需要添加镜像源。通过该指令,可以查看当前环境中的cmake软件包的版本,如果可以接受,那么不需要看本文下述安装步骤,按上述三行执行即可。

2023-07-07 13:46:39 516

原创 【Docker】启动docker失败

【代码】【Docker】启动docker失败。

2023-06-18 09:20:48 66

原创 【Linux】timerfd——定时器

在 Linux 系统编程中,使用timerfd实现定时器功能是一种更加可靠、高效、灵活的方式。本文是对timerfd的简单使用,不涉及太过深入知识,熟练掌握几个常用 API,实现定时器功能。

2023-06-17 19:31:57 972

原创 【Vscode 远程连接 Docker 容器】

在 VSCode 中按下 F1 键,输入 “Remote-SSH: Connect to Host…”,选择 “Add New SSH Host…,注意文件名必须保持一致!(默认装了docker)生成如下信息:(C:/用户/.ssh/config)在弹出的对话框中填写以下信息:(括号内替换)ubuntu:22.04 镜像。在主机目录下创建一个。

2023-06-16 21:50:51 1964 2

原创 【KD-Tree】基于k-d树的KNN算法实现

KD-Tree,又称(k-dimensional tree),是一种基于二叉树的数据结构。它可以用来高效地处理多维空间搜索问题,例如最近邻搜索(nearest neighbor search)和范围搜索(range search)等。

2023-05-18 08:00:00 374 2

原创 【LuaJIT & FFI】优雅的与C交互

LuaJIT和FFI是两个非常强大的工具,它们可以帮助开发人员在Lua中实现高性能的代码。

2023-05-16 11:00:00 471 1

原创 【C & Lua】C调用Lua | Lua调用C

Lua与C交互是一种非常常见的技术,它可以让我们在C语言中调用Lua脚本,也可以让我们在Lua脚本中调用C语言函数。这种交互方式可以使得我们在不同的编程语言之间实现混合编程,从而达到更高的灵活性和效率。Lua栈是Lua与C交互的核心数据结构,所有的数据交互都是通过Lua栈来完成的。无论是从Lua中调用C函数,还是从C中调用Lua函数,都需要使用Lua栈来传递参数和返回值。

2023-05-14 17:00:00 653

原创 Lua面向对象设计基类

面向对象在前文已经谈过,虽然Lua是一个脚本语言,本就不是为了面向对象而设计的。但是它的元方法可以非常优美的让我们设计出类之间的继承关系,单继承、多继承等。本文就是简单的剖析一下,云风大佬早在十多年前对于Lua面向对象的设计。

2023-05-12 13:00:00 550

原创 【华中农业大学2023年十二届程序设计竞赛(同步赛)】B. 写信

递推式:f[n]=(n−1)∗(f[n−1]+f[n−2])f[n]=(n-1)*(f[n-1]+f[n-2])f[n]=(n−1)∗(f[n−1]+f[n−2])

2023-04-28 22:50:24 843

原创 【矩阵快速幂 | 斐波那契数列 | 矩阵加速】

【代码】【矩阵快速幂 | 斐波那契数列 | 矩阵加速】

2023-04-28 22:31:45 669

原创 【模板】带权并查集

读者可能会思考:上述判断不成立只有在同属于一个集合的情况下才会去判断,那么不属于一个集合然后合并的时候会不会存在矛盾呢?那么在一个集合中,得到了每个节点和根节点的奇偶性关系,通过传递性,就可以知道该集合中的任意两个节点之间的关系了。这题还有扩展域做法,集合内属性维护的是条件,放在以后的并查集扩展域模板在做记录。以第一种举例,读者可带入【a,b】为奇,【b,c】为奇,那么【a,c】为偶。所以给定一个区间【a,b】的奇偶性,实际上可以。的个数的奇偶性,找出第一个不符合的答案的回答。区间的奇偶性也已知了。

2023-03-31 20:27:04 416 1

原创 【动态规划】整数划分及其变种

每个数任意选无限次,问恰好装满背包的。与上题不同的是,分的每份都不能为空,即。实际上,和第二题一致。份的方案数,换句话说就是用。,且有n个物品体积分别是。题意转为完全背包求解。

2023-03-28 20:00:00 507 1

原创 【网络分析】并查集/树上差分

最后对我们所构造出来的一堆树DP(只是遍历一下),把每个点的权值下放到子树中的所有节点中。我们所构造的图是若干棵树,编号为 1−n 的节点都是树的叶子节点。我们通过并查集合并连通块,保证同一个连通块内的点同属一个集合。这样进行 k 次有效合并操作后,就会产生 k 个新点。操作 2 :向某个点所在的连通块的所有点累加一个值。然后依次输出编号为 1−n 的节点的权值即可。操作 1 :把两个点所在的连通块合并起来。对于每一个合并操作,找到两个点所属的集合。个孤立点的图,每个点上的权值都是。

2023-03-27 16:56:43 278

原创 【LeetCode第 332 场周赛】

由于范围过大,且做差会造成负数,树状数组下标从1开始。所以换用map的树状数组,平且值向右平移到正数。映射数值对应的最小开始下标即可,数值在1e9,并且无前导 ‘0’,所以只需要 O(30n)。倒序遍历,动态查找后缀的在区间如上范围内的值的个数。那么考虑用树状数组获取区间内值的个数。

2023-02-12 15:34:43 504

原创 【Cocos2dx】Lua API

Cocos2dx Lua版API

2023-02-11 13:13:08 90

原创 openresty配置

ngx.log(ngx.INFO, “日志内容”) 级别有ngx.STDERR ngx.EMERG ngx.ALERT ngx.CRIT ngx.ERR ngx.WARN ngx.NOTICE ngx.INFO ngx.DEBUG。例如rewrite_by_lua中ngx.ctx.a=10, content_by_lua中能拿到ngx.ctx.a。ngx.time() ngx.utctime()ngx.now() ngx.today()…ngx.req.get_method() 返回大写的字符串GET。

2023-02-10 14:45:50 730

原创 【Quick-Cocos2dx-Commucity】Windows平台发布游戏

本示例使用Quick-Cocos2dx-Commucity开发,用VS2019打包发布游戏。演示简易的打包Win平台下的游戏.exe。

2023-02-07 00:14:17 299

原创 有向图、无向图找环

无向图:并查集、DFS有向图:拓扑排序、DFS。

2023-02-06 00:40:27 344

原创 【Codeforces Round #849 (Div. 4)】A~G题解

显然需要动态维护一串字符串的不同字符数,那么用 map 维护,当字符数变0需要erase掉当前的键,而 map.size() 就是当前该字符串的不同字符数,即是不同的键的数量。给定01串,每次可以删除两侧各一个字符,但是这两个同时删除的字符必需不同,即(01,10)。问最后能剩下的字符串最小值。可以发现的性质是,一段区间内的修改实际上等价于区间两侧的修改,即任意位置的一对可以同时变为其相反数。给定一串字符串,形如“LUDR”,问能否按字符串走法从(0,0)途经(1,1)。贪心,能删则删,维护删除的次数。

2023-02-04 21:17:02 724

原创 Qt调用主界面ui

A文件,B文件相互引用,实际上就是两个.h文件,不能同时存在include对方,一者换为声明。为了在其他类中调用主界面MainWindow的ui。

2023-02-03 19:18:59 967

原创 【动态规划 & 树形DP】树的换根DP(换根DP模板)

树形 DP 中的换根 DP 问题又被称为二次扫描,通常不会指定根结点,并且根结点的变化会对一些值,例如子结点深度和、点权和等产生影响。所谓换根DP,就是基于原有的状态,通过相邻节点进行转换后,现有的状态仅仅只需要进行微小的变动即可达到完美相邻状态间的切换。通常需要两次 DFS,第一次 DFS 预处理诸如深度,点权和之类的信息,在第二次 DFS 开始运行换根动态规划。那么考虑完了两个根节点之间状态的转变,根相邻节点的状态应该如何变化?的相邻节点,这些点的树高状态并不会改变,读者可以自己思考。

2023-01-15 14:46:16 584 2

原创 Qt导入opencv库

【用于记录大佬教我正确导入opencv库的简略步骤,不作为正确引导,用于自己记录的】【其实就是用mingw重新编译opencv库,然后lib,dll都配置好即可】成功编译后,将bin下.dll动态链接库,放置主程的debug下。勾选BUILD_opencv_world。

2023-01-04 01:34:40 1439

原创 【Codeforces Round #835 (Div. 4)】A——G题解

找到最大字符,对应如下输出:‘a’ -> 1;,那么说明至多一次跳跃,可以让跳跃前异或值等于跳跃后异或值,走完到。一次,反转一个字符(0-1,1-0),使得逆序对最大,输出最大个数。并且,可以允许在路途中进行一次跳跃,即直接跳到任意除。双指针,左端点固定,去移动右端点,直到这一段相等结束(为根节点,计算所有点到根节点的一个前缀异或值,记。的子树下,仅能使用一次跳跃过去,而不能走过去。统计这三种的个数,看是否最终为 1 即可。数组,遍历所有点,判断如果当前点不是。有点烂,不想改了,思路够清晰。

2022-11-22 15:09:49 943 4

原创 【AtCoder】离线询问+树状数组

如本文标题,我们需要对询问离线处理,这样对于区间询问,我们就可以进行排序,并使得左端点单调增,以便处理后续问题。考虑用树状数组维护区间右端点,所以可以先将所有的区间的右端点加入树状数组中。的树状数组中右端点的值。然后直接进行查询当前右端点小于等于。个询问,每个询问输入两个数表示闭区间。的值的个数,即位该询问的结果。时,删掉所有区间左端点小于。内的完整闭区间个数。

2022-11-21 19:52:57 360

原创 【cocos2d-x】基本概念

下面是一个简单的游戏界面:让我们再来看一下,分解这个游戏界面的组件构成。一个菜单(Menu),几个精灵(Sprite),和几个标签(Label)。

2022-10-24 23:22:03 266

原创 【cocos2d-x】引擎简介

Cocos2d-x 是一套成熟的开源跨平台游戏开发框架。引擎提供了图形渲染、GUI、音频、网络、物理、用户输入等丰富的功能, 被广泛应用于游戏开发及交互式应用的构建。其核心采用 C++ 编写,支持使用 C++、Lua 或 JavaScript 进行开发。

2022-10-24 23:16:49 528 2

原创 【区间相同数的最小间隔 | 线段树】D. Closest Equals

那么在询问完当前区间,在询问下一个区间时,两次询问的左端点之间的数,是不会在有询问的,所以其对后续的询问点的影响需要清空掉。考虑到当前修改的点,可能对后续的询问产生影响,那么我们还需要在修改回来。那么考虑完上面的情况,我们发现如果是这样执行,每次对一个询问区间,我们需要遍历一次区间,把不应该产生贡献的值都给修改掉,数组,用于存储每个点它的对应的值的下一位在哪个位置。考虑到这个点对后续的影响是,在询问区间中的点,也就是下一位。,用来存储不同位置下,和前一位值相同的数的间距。中相同的数的间隔的最小值。

2022-10-09 08:00:00 202 1

原创 【经典线性 DP】数组最小间隔为k的和值最大 | 河北省赛 7-8 H-信号传输

二分答案 + 线性dp

2022-10-08 16:45:10 289

原创 区间交集最值

按区间左端点从小到大排序,用优先队列(小顶堆)维护k个右端点,保证每次选的都是最小的右端点r,用r减去这k个区间的最大l(排序后当前就是最大的l),此时求得即为被覆盖k次的区间的长度。不断进行,更新长度最大值。题意:给出n个区间,求m个区间的最大覆盖,并输出覆盖的区间编号。

2022-10-07 17:45:39 313

原创 事件驱动模型

事件驱动是指在持续事务管理过程中,进行决策的一种策略,即跟随当前时间点上出现的事件,调动可用资源,执行相关任务,使不断出现的问题得以解决,防止事务堆积。事件驱动的核心自然是事件,从事件角度说,事件驱动程序的基本结构是由一个事件收集器、一个事件发送器和一个事件处理器组成。比如你现在的鼠标点击,按下鼠标就会产生一个onClick()事件,因为平台有注册相应的回调事件,每当点击就会触发该事件,然后交给对应的事件处理器进行处理。可以忽略一些打印信息的代码,方便之后的输出信息查看,理解运行的逻辑。

2022-09-28 08:00:00 412 1

原创 Lua Table实现经典数据结构 (链表 | 栈 | 双端队列)

【代码】Lua Table实现经典数据结构 (链表 | 栈 | 双端队列)

2022-09-27 08:00:00 300

原创 Lua 也可以用来写算法?

Lua 本是一个脚本语言,并不是用于算法竞赛,很多平台并不支持 lua语言。但是如果想用lua练一练语法,我在这里可以推荐一个网站,有兴趣可以在这进行练习。不过最头疼的是这个网站上编码,调试lua代码非常不人性,所以推荐可以使用本地的环境,或者是在线的lua编译器,那么下面就浅浅刷几道题吧。

2022-09-26 11:05:07 429

原创 Lua 协程 + 过滤器实现生产者和消费者

Lua还在精进中,期待您的关注~~

2022-09-21 10:41:58 285

基于skynet的多人在线聊天服务器

资源地址:[https://gitee.com/Cauchy_AQ/chat](https://gitee.com/Cauchy_AQ/chat) 介绍:基于Skynet通用的登录服务器模版,实现玩家登录认证。玩法是玩家能切换进入不同房间,房间内的玩家能够涨经验值,并且能在房间中进行发言。每个房间经验值最高的即为管理,管理可以踢出玩家。房间内的玩家之间可以转让经验值等。 特性: 1. 基于 skynet 的登录服务器模板,有网关、看门狗、登录服务 2. 客户端和服务端通信,采用 sproto 协议 3. 消息封包解包协议,采用二字节头部指定长度的字符串 4. 采用 openresty 进行用户登录鉴权,模拟第三方 sdk 根据用户信息及 token 值等返回 uid 5. 看门狗维护 agent 池,定时检测用户状态,定时补充代理,并会回收代理。 6. mysql 用于用户登录时加载数据,以及对用户定期存档,离线自动保存数据 7. redis 用于存储服务运行时的相关日志消息(待做持久化处理)

2023-08-29

Sunnet系统(仿Skynet轻量级游戏服务器开发框架)

Sunnet系统(C++并发编程,Actor模型,Reactor模型,Lua脚本嵌入) 项目文件: |-- CMakeLists.txt |-- README.md |-- include | |-- Conn.h | |-- ConnWriter.h | |-- LuaAPI.h | |-- Msg.h | |-- Service.h | |-- SocketWorker.h | |-- Sunnet.h | `-- Worker.h |-- main.sh |-- service | |-- chat | | `-- init.lua | |-- main | | `-- init.lua | `-- ping | `-- init.lua |-- src | |-- ConnWriter.cpp | |-- LuaAPI.cpp | |-- Service.cpp | |-- SocketWorker.cpp | |-- Sunnet.cpp | |-- Worker.cpp

2023-08-12

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

TA关注的人

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