- 博客(1348)
- 收藏
- 关注
原创 思维|状压dp
队列维护翻转区间的左端点,遍历数组时判断当前位置是否需要翻转,能翻转则记录左端点并计数,无法翻转则返回-1,最终得到最小翻转次数。if((A[i]+q.size())%2==0){ //需要翻转。class Solution {//贪心地从左到右依次翻转。//维护与当前位置的距离<=K的翻转位置(左端点)
2026-01-17 15:39:34
35
原创 碳基服务器|脑机接口
当马斯克的Neuralink首位人类用户Noland Arbaugh宣布,他脑中的芯片能像特斯拉一样通过OTA无线升级时,我们终于意识到:赛博朋克的未来,已经从屏幕里走到了现实。与此同时,OpenAI等顶级资本也在押注脑机接口赛道,他们投资的Merge Labs正在探索下一代非侵入式脑机技术,试图用更安全的方式让更多人接入“人机共生”的未来。跨平台的脑机接口数据采集库,支持多种硬件设备,内置信号滤波和算法工具,是快速原型开发的利器。曾经,脑机接口的升级意味着再次开颅,而现在,Neuralink的。
2026-01-17 15:08:30
58
原创 mask|__builtin_popcount|gosper‘s hack
x &= mask;// 低于 i 的比特位置为 0。贪心+hash,从最高位到最低位逐位确定最大异或值。掩码保留高位,避免影响判位、异或配对验证。set筛集合 反复询问下一位是否可为1。// 这个比特位可以是 1 吗?// 这个比特位可以是 1。
2026-01-16 18:38:15
350
原创 二分+滑窗|hash
提示:"anagram" 和 "mangaar" 本身就是一组字母异位词。输出:s = "anagram", t = "mangaar"//hash多的不管 少的补。
2026-01-16 16:04:56
21
原创 回文串dp|预处理cost
/ dp[i] 代表[0, i] 这段最少分隔回文次数。// 求最小,初始化最大为字符串长度,一一切割。// dp[i] 代表[0, i] 这段最少分隔回文次数。// 求最小,初始化最大为字符串长度,一一切割。1.二维回文表 预处理填写。
2026-01-15 13:54:56
374
原创 dfs|bfs建图|hash贪心
class Solution { int ans = 0, start; int dfs(TreeNode* node) { if (node == nullptr) { return 0; } int l_len = dfs(node->left); int r_len = dfs(node->right); if (node->val == start) { //
2026-01-14 18:57:17
256
原创 扫描线|离散化|seg+二分|卡常
/ 线段树的叶子节点对应y[i]到y[i+1]的区间。// 相邻事件点的x差 × 当前有效长度 = 这一段的面积。// 区间的有效长度(被覆盖时的长度)// ========== 离散化代码 start。// 更新线段树:覆盖区间[l, r-1]// ========== 离散化代码 end。// 线段树:维护当前扫描线覆盖的y轴区间有效长度。// 边的事件结构体:存储扫描线的入边/出边信息。// 区间被覆盖的次数。// 去重:得到离散化后的唯一y坐标数量。// ========== 事件点排序。
2026-01-14 13:59:18
508
原创 hash|快慢指针|cut
找出所有满足条件的下标 i 和 j ,找出并返回 nums[i] + nums[j] 可以得到的 最大值。如果不存在这样的下标对,返回 -1。
2026-01-14 09:28:50
28
原创 内存碎片|c++内存池|lua gc
缺点是存在内部碎片,当分配的内存块大于实际需求时会造成内存浪费。避免频繁调用系统 malloc/free 的开销,适合游戏、服务器等对性能和内存碎片敏感的场景,但需要开发者。核心原理:按对象大小划分多个固定规格的内存块组(slab),同类大小的对象归入对应 slab 分配。核心原理:将内存划分为 2 的幂次大小的内存块,分配和回收时按照“伙伴”关系合并或拆分内存块。核心原理:主动移动已分配的内存块,将分散的空闲内存合并成连续的大块内存区域。优缺点:优点是大幅降低内存分配开销、有效减少内存碎片;
2026-01-12 21:16:31
251
原创 union|中序pre|浮点二分
在n个节点的带权无向图中,对每个查询的起点 s_i 和终点 t_i ,查询两点连通性并返回对应连通块的按位与值(不连通则返回-1)(无旅途则返回-1,旅途可重复走边/节点)(连通返回按位与值,不连通返回-1)DFS遍历图划分连通块,
2026-01-12 18:25:41
366
1
原创 [Tools] Open Broadcaster Software录屏工具
OBS(Open Broadcaster Software)是一款开源免费的直播推流和视频录制软件,支持Windows、Mac和Linux系统。文章从四个方面介绍了OBS:软件定义、使用场景(包括实时直播和无人直播)、详细使用教程(含下载安装、场景设置、视频源选择、推流参数配置等),以及常见问题解决方法(如画面异常、网速不足等)。特别针对无人直播场景,提供了素材获取和批量推流的实用建议,帮助用户快速掌握OBS的核心功能与应用技巧。
2026-01-12 06:32:57
1704
原创 逆向思维|memo
lc3609public:return 0;r/2:-100);if(p1!if(p2!c/2:-100);if(p1!if(p2!return -1;
2026-01-11 23:32:08
321
原创 出入度|bfs|状压dp
for (auto city : s) { // 交通枢纽: 入度为n-1, 出度为0的城市。// d[i][0]: i的入度, d[i][1]: i的出度。交通枢纽: 入度为n-1, 出度为0。
2026-01-11 18:46:14
167
原创 数论|欧拉定理
对数字字符串重复执行“相邻数字和模10替换原字符”的操作,直到只剩两个数字,判断这两个数字是否相同。// 欧拉定理求逆元。预处理阶乘、逆元及因子2和5的计数,用组合数计算字符串相邻字符差值的加权和。判断其模10是否为0,以此验证字符串是否符合特定数字特征。// 由于每项都 < 10,所以无需中途取模。// 计算 2 的幂次。// 计算 5 的幂次。
2026-01-11 15:57:45
370
原创 线段树二分
/ 返回区间 [0,R] 中 <= val 的最靠左的位置,不存在时返回 -1。// 整个区间的元素值都大于 val。// 水桶已经装了太多的水。if (r < 0) { // 没有这样的水桶。// [0,maxRow] 的接水量之和。// 找第一个能倒入 k 升水的水桶。// 把下标 i 上的元素值增加 val。// 从第一个没有装满的水桶开始。// 返回区间 [L,R] 内的元素和。
2026-01-10 22:52:13
232
原创 01bfs|前缀和的前缀和
喵喵dj版(遇到0就addFirst,优先走短路,0-1BFS通过可插双端队列的队首省了优先队列的排序log,极大地优化了时间复杂度。最后根据位置是否为障碍,将节点分别插入双端队列的队首(空地)或队尾(障碍),以此实现0-1 BFS的核心逻辑。无障碍(代价0)节点入队首、有障碍(代价1)节点入队尾。0-1 BFS,双端队列处理网格移动代价。求解从网格起点到终点的最小障碍移除数量。计算新路径的障碍代价,
2026-01-10 15:41:21
586
原创 几何|阻碍链
if (in_circle(x, y, r, 0, 0) || // 圆 i 包含矩形左下角。in_circle(x, y, r, X, Y) || // 圆 i 包含矩形右上角。若圆包含矩形顶点或形成左/上边界到右/下边界的阻碍链则返回false,否则返回true。// 在两圆相交相切的前提下,点 A 是否严格在矩形内。// 圆 i 是否与矩形上边界/左边界相交相切。// 圆 i 是否与矩形右边界/下边界相交相切。// 判断点 (x,y) 是否在圆 (ox,oy,r) 内。
2026-01-10 13:05:23
413
原创 逆向处理|并查集
/ 注意避免重复统计,例如上图中的 0 有两条不同路径可以遇到 1。if (node_id >= 0) { // 只找到一个在 initial 中的节点。统计仅受单个初始感染节点影响的区域大小,找到删除后能最大程度减少感染的初始节点,无则返回初始节点中的最小值。// 删除节点 node_id 可以让 size 个点不被感染。// 按照 924 题的状态机更新 node_id。DFS遍历未感染节点连通域。
2026-01-09 20:35:42
379
原创 贡献法|并查集|打砖块
/ 注意上面有减法,ans 可能为负数。// 预处理 2 的幂次。太妙了==最开始陷在计算每一对pair的贡献,一直跳不出On2的陷阱qwq。计算每个元素作为子序列最大/最小值的贡献差之和。// 在题目的数据范围下,这不会溢出。最终取模得到所有子序列宽度的总和。sort,预处理2的幂次。
2026-01-09 13:24:20
140
原创 二分+并查集|dfs设计
并查集管理数组索引,merge(j, j + 1);,可扩散到 find自然等。,到同一集合,查询时判断。,返回各查询的连通性结果。
2026-01-09 10:59:44
272
原创 pair<int, TreeNode*> dfs
BFS遍历农田矩阵,找到每块连续农田的左上角起点后,扩展找到其右下角终点,收集所有农田的起点-终点坐标组返回。
2026-01-08 21:45:58
377
原创 贪心|建图dfs
4. 状态枚举与递归:先处理“跳过当前位”的情况(未构成合法数字时),再确定当前位可填数字上限,从有效起始数字(避免前导零)枚举所有未使用过的数字,递归计算下一位结果并累加;if ((mask >> d & 1) == 0) { // d 不在 mask 中,说明之前没有填过 d。// 如果前面填的数字都和 n 的一样,那么这一位至多填数字 s[i](否则就超过 n 啦)// 枚举要填入的数字 d。
2026-01-08 12:54:39
340
原创 预存子序列|数位dp
字符串的得分为 right - left + 1。遍历合并两侧匹配长度,取t未被匹配的最短长度即答案。令 right 为删除字符中的最大下标。前缀数组记录s前i位能匹配t的最长前缀。后缀数组记录s后i位能匹配t的最长后缀。令 left 为删除字符中的最小下标。尽可能长的 连续保留拼接 t左右。前后缀分解+预存最长子序列。
2026-01-08 10:40:21
266
原创 二分猜答案
1. 前提:输入数组是从小到大排序的素数,要找的是“两个素数相除(分子在前、分母在后,分子<分母)”中第k小的那个分数(比如数组[2,3,5],分数有2/3、2/5、3/5,第2小是2/5)- 固定分母 j ,找最大的分子 i 使得 arr[i]/arr[j] ≤ mid (因为数组有序, i 越大,分数越大);- 同时记录这些分数中最大的那个(因为统计数==k时,这个最大分数就是第k小的目标)。二分查找分数值范围,统计小于等于中间值的分数个数,定位第k小的素数分数并返回。
2026-01-07 21:43:58
429
原创 sl|deque实现|缓存命中率
deque底层实现与二分查找接口分块+中控数组在C++容器中, deque (双端队列)的底层设计和二分查找接口的支持性,结合分块思想与二分逻辑,可清晰梳理其设计原理与应用合理性。一、deque的底层实现核心1. 分块存储机制deque 并非连续线性存储,而是采用分块+中控数组的设计:数据被拆分到多个固定大小的内存块中,2. O(1)插入特性在 deque 首尾插入元素时,若对应块未存满,可直接放入实现O(1)时间复杂度;
2026-01-06 10:32:33
693
原创 [AI OS] 重新定义人机交互未来
我们正站在操作系统演进的第三次革命浪潮上。如果说第一次是从命令行到图形界面,第二次是从PC到移动端,那么第三次就是从传统OS到AI OS——一个以大语言模型为内核、以智能代理为应用的全新计算范式。
2025-12-31 17:52:11
1723
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅