自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 题解:AT_abc441_e [ABC441E] A > B substring

本文提出了一种高效计算满足条件的区间数量的方法。通过将问题转化为前缀和比较,定义S_i表示前i个字符中A与B的数量差。利用树状数组动态维护S值,当右端点移动时快速查询满足S_r > S_{l-1}的左端点数量。算法采用从右向左处理的方式,通过树状数组高效统计符合条件的区间数,时间复杂度为O(n log n)。代码实现中巧妙处理了负数下标问题,确保了算法的正确性和高效性。

2026-03-07 10:49:08 344

原创 题解:AT_abc441_d [ABC441D] Paid Walk

摘要:本文提出了一种解决路径搜索问题的方法,针对有向图中从固定起点出发、经过L个点的路径,要求路径边权和在[S,T]区间内。由于每个点的出度不超过4,路径总数最多为4^L。算法采用DFS暴力枚举所有可能路径,记录当前边权和与剩余点数,在路径终点时检查边权和是否满足条件。该方法时间复杂度为O(N+M+4^L),适用于L较小的情况。代码实现展示了如何通过邻接表存储图结构,并用DFS遍历所有可能路径。

2026-03-07 10:48:28 180

原创 题解:AT_abc441_c [ABC441C] Sake or Water

摘要:该问题要求在最坏情况下确保能喝到指定量的酒。通过贪心策略,将酒量排序后,从大到小枚举可能喝到的酒瓶数p,并计算对应的最小总酒量。若某次计算满足要求则输出结果,否则无解。时间复杂度优化为O(N log N)。代码实现了这一思路,通过排序和前缀和快速判断解的存在性。

2026-03-07 10:47:38 441

原创 如何卡常 1

摘要:代码优化技巧指南 本文介绍了几种有效的代码优化方法。输入输出方面,通过逐步改进快读函数(从getchar到fread缓冲区再到mmap映射),显著提升了读取速度。对于编译器优化,提出了四种策略:1)调整数组访问顺序以提高cache命中率;2)循环展开减少开销;3)将循环内不变的条件判断外提;4)使用likely/unlikely标记优化分支预测。这些技巧在保持算法正确性的同时,能有效提升程序运行效率,特别适合对性能要求高的竞赛编程场景。

2026-03-07 10:44:41 641

原创 题解:AT_abc447_f [ABC447F] Centipede Graph

本文提出了一种基于点分治的算法来求解树结构中的特殊链("毛毛虫")问题。该算法通过定义"躯干"节点(度数>1)及其长度特性,分析了端点度数≥3、中间点度数≥4的链结构性质。文章详细讨论了点分治的实现细节,包括度数限制处理、子树独立性判断以及避免容斥统计的二叉合并策略。作者还提供了代码实现,并自嘲了算法实现过程中的一些错误和笑点。最终算法能有效求解树中最长符合要求的链长度,若不存在则返回1。

2026-03-07 10:39:22 473

原创 An abstract way to solve Luogu P1001

本文探讨了使用多层感知器(MLP)解决A+B问题的可行性。作者构建了一个无隐层的MLP模型,采用MSE损失函数和线性激活函数,通过30个批次(每批1000个数据)训练10次,学习率设为0.01。输入数据归一化到[-1,1]范围,输出结果通过缩放和四舍五入处理。该模型在洛谷P1001题目上获得AC,耗时6.57秒,占用1.03MB内存,证明了神经网络解决简单算术问题的可能性。虽然时间复杂度为O(abc),但展示了MLP的通用计算能力。

2026-01-01 19:55:14 852

原创 浅谈并查集

本文介绍了并查集这一高效处理集合合并与查询的数据结构。首先阐述了朴素实现方法,包括父节点存储、Find和Union操作,时间复杂度为O(n)。接着提出路径压缩优化,通过查找时直接指向根节点来降低复杂度至O(logn)。进一步介绍了按秩合并/按大小合并优化,将小树合并到大树以减少树高。综合使用两种优化后,时间复杂度可达近线性O(nα(n))。最后举例说明了并查集在图论、布尔变量关系等场景的应用,包括种类并查集等扩展用法。

2025-10-30 18:33:34 958 1

原创 二叉搜索树学习笔记

本文介绍了二叉搜索树(BST)的基本概念和核心操作。BST是一种有根二叉树,满足中序遍历为有序序列的性质。文章详细讲解了BST的各类操作: 旋转操作(左旋/右旋):改变树结构而不破坏BST性质 元素操作:插入、搜索、删除(包括两种删除方法) 查询操作:最大/最小元素、前驱/后继节点 排名相关:查询元素排名和根据排名查询元素 文中指出BST操作的时间复杂度与树高度h相关,最坏情况下可能退化为O(n),因此需要平衡树机制来优化。最后提供了一个BST的实现代码示例,并提到其在洛谷题目中的测试表现。

2025-10-30 18:30:29 770

原创 浅谈 ST 表(RMQ 问题)

本文介绍了四种计算⌊log₂x⌋的方法:打表法、GCC内部函数法、C++20的bit_width函数法以及倍增法,并比较了它们的效率。接着详细讲解了ST表(稀疏表)数据结构,包括其预处理过程(递推式和时间复杂度)和查询方法(利用可重复贡献特性),并通过代码实现展示了ST表在解决静态RMQ问题中的应用。最终测试结果表明,GCC内部函数法效率最高。

2025-10-30 18:27:16 911

原创 浅谈 BSGS(Baby-Step Giant-Step 大步小步)算法

摘要: BSGS算法用于在$\mathcal O(\sqrt p)$时间内求解离散对数问题$b^l\equiv n\pmod p$。其核心思想是分块处理:先预处理$l\le \sqrt p$时的所有余数,再通过幂运算性质$b^{l+k\sqrt p}\equiv n$转化为查表问题。扩展BSGS可处理非质数模数。本文还讨论了暴力递推优化与光速幂预处理,并给出了具体代码实现,通过逆元与哈希表快速定位解。最终算法在$\sqrt p$级别时间复杂度内高效求解离散对数。

2025-10-30 18:25:00 956

原创 题解:P12603 RuShiA(特殊情况下的 RSA 爆破)

本文介绍了9种不同的RSA加密破解方法,涵盖了从暴力破解到数学技巧的各种解法。主要内容包括:Pollard-rho算法破解简单RSA、利用质数相近特性枚举、通过GCD求公约数解密、三次方根直接求明文、利用指数互质特性辗转相除,以及通过代数关系推导私钥等方法。每种方法都配有对应的解密结果和实现思路,展示了RSA加密在不同参数设置下的脆弱性。最终提供的AC记录验证了这些方法的有效性。

2025-10-30 18:22:25 917

原创 题解:B4353 [信息与未来 2025] 程序套娃(暂无 SPJ)(Quine 和朴素程序嵌套)

洛谷 B4353 题解。

2025-10-30 18:16:57 892

原创 题解:P13976 数列分块入门 1(分块入门)

本文介绍了分块算法解决区间操作问题。将数列分成若干块,对于块内操作直接暴力修改,块间操作则处理不完整块并通过打标记优化。时间复杂度为O(n√n)。文中给出了C++实现代码,并讨论了数值溢出问题处理。最后提到进一步分块可优化为van Emde Boas树,实现更高效操作。

2025-10-30 18:15:33 670

原创 浅谈如何卡常

本文介绍了多种代码优化技巧(俗称"卡常"),重点分析了输入输出优化的不同实现方法。文章首先展示了基础快读的不足,逐步优化到使用fread缓冲区、mmap内存映射等底层方法,最终实现1.01s的极速读取。此外还介绍了循环展开、分支预测、内联优化等编译器可能自动完成的优化技术,强调编译器通常比人工更擅长这些优化。作者幽默地指出,与其过度优化,不如"v我50攒rp"(即靠运气),因为这些优化容易被评测机波动影响。全文通过具体代码示例展示了从基础到高级的优化技巧,为需要极致性能的场景提供了实用参考。

2025-10-30 18:14:04 1368

原创 纸上谈兵(LibreOJ #5 猜数字 1 题解)

通过几乎是纯数学方法(Task 2 不是,但是通过数学方法节约了大量枚举时间)解决了 LibreOJ #5 猜数字 1。

2025-06-10 16:49:50 1369 2

原创 浅谈二叉堆实现的优先队列

本文介绍了优先队列及实现方法之一——二叉堆的思想、原理以及代码实现。

2025-06-09 13:33:02 968

原创 浅谈 ST 表(Sparse Table,稀疏表)

本文介绍 ST 表(稀疏表)解决 RMQ 问题的方式。

2025-06-09 13:06:48 1145

原创 题解:洛谷 P10473 表达式计算4

本文介绍两种具有可扩展性的对中缀表达式进行求值的方法,同时作为洛谷 P10473 的置顶题解。

2025-06-09 13:00:12 783

原创 浅谈中国剩余定理(Chinese Remainder Theorem,CRT)

本文主要介绍中国剩余定理以及扩展中国剩余定理的思想、原理及实现。

2025-06-09 12:47:12 1114 2

原创 浅谈裴蜀定理

本文介绍裴蜀定理以及在 OI 中的用处。

2025-06-09 12:46:02 976 1

原创 电路/nandgame 相关

本章使用继电器造了 nand 门,然后使用 nand 门造了各种算术原件。

2025-02-11 16:10:23 1387

原创 浅谈线段树

蒟蒻终于学会线段树(指【模板】线段树111)啦!

2025-02-03 16:49:41 823

原创 Deepseek R1 的大模拟考试

前情提要:联网,R1。一共六道题,全部选自洛谷。

2025-01-28 15:02:57 1554

原创 复数入门

这是数轴(的一部分):这也是数轴的一部分:可见,数轴是无限长的,你可以在上面找到所有的实数,比如 114514,1919810,114514.1919810114514,1919810,114514.1919810114514,1919810,114514.1919810(114514.1919810114514.1919810114514.1919810 在 114514114514114514 和 114515114515114515 之间,靠近 114514114514114514)。等等,小学不

2024-09-29 17:04:29 1349

原创 微积分入门(真的很入门)

我们要求x→1lim​x−1x2−1​。右边我们都知道是什么意思,那左边是什么呢?意思就是,当x无限接近1时,右边的那一坨东西是什么。x无限接近1是什么意思?管他呢,我们先直接代入x1求一下呗,然后求出来一个非常谔谔的00​。然而当我们画出这个函数的图像后:这不就是一个x1吗?太 easy 了,通过直觉可知,答案是2。有个东东叫做:验算。阿哲,难道答案就是“未定义”吗?当你重新回去审视题面,你发现了被你直接遗忘掉的x→1lim​。

2024-09-29 17:00:56 4724 3

原创 鸡兔同笼,但是线性代数

fkx⃗kfx⃗fx⃗y⃗fx⃗fy⃗fkxfxy​​kfxfxfy​​这个fff就是一个线性映射,通常记为AAA。向量是什么:一个vector,还不懂吗。哦读者可能不是 C艹 党,所以说一下:向量就是一系列数,类似我们幼儿园就学过的数对。向量也可以用来表示一个点,学习时通常是222维或333和是坐标轴,是xxx轴,H是yyy轴,每条小线段长度为111我们要表示图中的O点,就可以用数对,注意到O点在第3。

2024-09-27 22:26:36 2679 2

原创 NtDLL.dll Nt开头函数大全 - NtPowerInformation

个参数目前必须填这几个(别说 PlatformInfomation 未定义,在 Windows.h 里),后两个参数分别填 PlatformInfo(用于接收返回值)的地址和大小。,代表的是 Windows 是否支持你的设备的电源(电池)……,否则你的程序怎么可能被运行呢(人择原理!这个函数是用来获得电源信息的,但是呢……看起来很厉害,实际上目前。类型目前只有一个布尔值。

2024-08-25 13:02:23 632

原创 哈夫曼编码(哈夫曼树)

哈夫曼编码(Huffman Coding),又称霍夫曼编码,是一种编码方式,哈夫曼编码是可变字长编码(VLC)的一种。Huffman于1952年提出一种编码方法,该方法完全依据字符出现概率来构造异字头的平均长度最短的码字,有时称之为最佳编码,一般就叫做Huffman编码(有时也称为霍夫曼编码)。——百度百科看得懂吗?反正我看不懂。到底什么是哈夫曼编码?是f2f_2f2​。为什么?哈夫曼编码,其实就是在没有二义性的情况下的最短编码方法。f2f_2f2​。

2024-06-20 21:03:24 1286

原创 分治乘法详细讲解

看得懂吧?比如X123456Y987654,则n3A123B456C987D654。前置知识:整数末尾添0方法(不可能不会吧),就是乘10,当然添n个零就是乘10n2n​个就是乘102n​。

2024-06-09 16:06:30 813

原创 分数裂项方法及技巧

裂差知识点 111b−aab=1a−1b \frac{b-a}{ab} = \frac{1}{a} - \frac{1}{b} abb−a​=a1​−b1​证明:b−aab=bab−aab=1a−1b \begin{align*} \\&\frac{b-a}{ab} \\= &\frac{b}{ab} - \frac{a}{ab} \\= &\frac{1}{a} - \frac{1}{b} \\\end{align*} ==​abb−a​abb​−aba​a1​−b

2024-05-26 22:50:28 3047 2

原创 走迷宫(游戏)

先放几个截图:(开局,走了几步)(地图有两部分,这里位于交界口)(困难部分)

2024-05-25 19:50:18 1365

原创 2048小游戏(2.0)

1.0在。感觉1.0没啥好玩的,是吧?玩了一会儿就玩腻了。所以要开发2.0!

2024-02-19 16:57:44 963 1

原创 Python 自动打字,速度随便(目前只支持英文)

小猴编程-打字练习不错吧?不过注意速度不能超过500Mbps(500字/分,typewrite第二个参数约0.12)

2024-02-08 19:04:46 1339

原创 nginx日记 - Day2 修改nginx.conf,图片,页中页

当你想要更改index.html路径或者给index.html改名(更利于项目开发)的时候,就需要更改。

2024-01-24 21:02:04 601

原创 nginx日记-Day1 下载安装,Hello World

nginx日记,没错。

2024-01-24 19:13:20 454

原创 跑酷小游戏

这个跑酷小游戏不是真正意义上的那种,是一个人一直往前跑,按空格键改变方向(上/下),碰到齿轮失败,和poki里的差不多(在poki里的名字忘了)。

2024-01-10 13:28:32 589

原创 高精度C++

高精

2024-01-05 20:11:27 706

原创 扫雷小游戏

做了2048,开始做扫雷。

2024-01-05 19:47:41 504

原创 2048小游戏制作

好无聊啊,做个2048小游戏玩玩吧。

2024-01-05 18:51:59 659

原创 shutdown用法(可以用来坑人~~)

猜猜我参考了谁的

2023-09-24 19:14:48 662

高精度类(无压位),C++,基本可以像基本类型一样使用

支持的各种函数: 构造函数,类型支持void(无参数),const IAKIOI &,const string &,const long long &,const vector<int> & size():获取位数 reverse():反转 operator string():转化为string operator vector<int>():转化为vector<int> operator[]:获取某一位上的值 operator=:赋值,支持的类型和构造函数一样(除去void) operator+、-、*、/、%:五则运算 operator+=、-=、*=、/=:五则运算加上赋值 operator>>:输入,用于cin >> xxx operator<<:输出,cout << xxx operator==,!=,>,<,>=,<=:比较大小,第二个操作数(运算符后面那个)支持IAKIOI,int 时间复杂度,n表示第一个操作数,m表示第二个操作数: 加法:O(max(n, m)) 减法:O(max(n, m)) 乘法:O(nm),抱歉我不会 FFT。 除法:O(nm) 取模:O(nm)

2024-08-13

PsTools,含PsExec,还有我自制的一个bat文件

"use System user and run program" 程序名 可以让这个程序以System用户执行。 但是有些杀毒软件会报毒,要放行。 例: "use System user and run program" C:\Programs\hello.exe 就会让C:\Programs\hello.exe以System用户执行,但是不是永久,退出就没了。

2023-06-23

Winhex,查看/编辑PE文件

Winhex,查看/编辑PE文件

2023-06-23

PE explorer:查看PE文件

PE explorer:查看PE文件

2023-06-23

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

TA关注的人

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