当前位置: 首页 > news >正文

学习笔记:操作分块 / 根号重构

感谢校内模拟赛给我强行灌输了这个东西。。。

概述

操作分块 / 根号重构,又名时间轴分块,可以解决需要多次修改和查询的问题,常常难以直接维护。

借鉴序列分块的思想,我们设定一个阈值 \(B\),将连续 \(B\) 次操作视为一块。考虑一次查询操作,将对它产生影响的修改分为两类:

  • 所在块之前的整块的修改;
  • 所在块中它之前的修改,仅有 \(\mathcal O(B)\) 次。

类似序列分块,整体维护一类修改的贡献,并暴力贡献二类修改。具体的,一个块的操作结束后,考虑暴力重构,将这一块算进整体贡献中,仅会重构 \(\mathcal O(\frac{q}{B})\) 次。

我们用几道例题来理解上述思想。

CF342E Xenia and Tree

题意: 给定一棵 \(n\) 个节点的树,初始时 \(1\) 号节点为红色,其余为蓝色。

\(q\) 次询问,两种操作:

  • 将一个节点变为红色;
  • 询问节点 \(u\) 到最近红色节点的距离。

\(1\le n, q \le 10^5\),5s

以阈值 \(B\) 操作分块,考虑一次查询 \(u\)

对于一个二类修改 \(v\),暴力贡献 \(dis(u, v)\),复杂度 \(\mathcal O(B)\)

对于整块的一类修改,我们需要在每个整块后进行重构。考虑以当前所有红点为起点集合进行多源 bfs,即可 \(\mathcal O(n)\) 求出每个节点 \(x\) 到最近红的的距离 \(f(x)\)\(\mathcal O(1)\) 贡献。

两部分贡献取 \(\min\) 即为答案。总复杂度 \(O(qB + q + n\cdot\frac{q}{B})\),视 \(n, q\) 同阶,取 \(B = n ^ {0.5}\),有最优复杂度 \(\mathcal O(n ^ {1.5})\),实际上取 \(B = 400\) 跑的并不快,开到 \(1000\) 就很好了。submission.

接下来看一道 DS。

[模拟赛] 浮夸(grandiloquence)

题意: 给定一棵初始 \(n\) 个节点的树,根节点为 \(1\)。再给定颜色数 \(k\),颜色的编号为 \([0, k)\),最开始所有点都没有被染色。

接下来进行以下三种操作共 \(m\)

  • 1 u c 对于 \(u\) 子树内的节点 \(v\),将 \(v\) 染色为 \((c + dis(u, v)) \bmod k\)
  • 2 u c 询问 \(u\) 子树内颜色为 \(c\) 的节点个数;
  • 3 u \(~~~\)插入一个编号为 \(\lvert V\rvert + 1\) 的节点,其父亲为 \(u\),没有被染色。其中 \(V\) 是当前点集。

\(1\le n, m \le 2\times10^5\)\(0\le c \lt k \le 10\),强制在线。

假设没有操作 \(3\),直接用 dfs 序拍平,转换成区间操作。颜色数很少,直接暴力维护。观察 \(1\) 操作,颜色可以拆成 \((c - dep_u + dep_v)\),考虑区间打 \((c - dep_u)\) 的标记,按 depcol 统计即可。线段树随便维护。

有操作 \(3\) 的话,考虑操作分块,每次操作 \(3\)\(B\) 个,就新开一块,对于 \(1,2\) 操作,分两类:

  • \(u\) 不是块内新增节点(即二类修改):算完前面的整块节点后,枚举所有块二类修改,若其在 \(u\) 子树内,则暴力计算贡献,\(\mathcal O(B)\),这是平凡的;
  • \(u\) 是块内新增节点:那么 \(u\) 子树内均为新增节点,于是 \(siz_u \lt B\),直接暴力 dfs 算答案,\(\mathcal O(B)\)

\(B\) 个后无重建线段树。话说为啥大家都写的分块啊。

再来一道?

[模拟赛] 序列查询(query)

题意: 给定一长为 \(n\) 的非负整数序列 \(a\),你需要支持以下两种操作共 \(q\) 次:

  • 区间翻转;
  • 区间询问 \(\text{mex}\)

\(1 \le n, q \le 2 \times 10 ^ 5\),4s

以阈值 \(B\) 操作分块,单独考察每一块操作。

先对序列按受操作情况划分颜色段,每个颜色段受到的操作相同。操作均为区间操作,最多使其头、尾所在颜色段分裂,增加 \(\mathcal O(1)\) 个颜色段,于是颜色段仅有 \(\mathcal O(B)\) 个。ODT 维护,翻转可以考虑暴力在 ODT 上翻转并打上翻转标记,单次翻转复杂度 \(\mathcal O(B)\)

询问 \(\text{mex}\) 很不好维护,考虑离线下来枚举答案。具体的,维护出每个颜色段受到的询问的集合,离线下来遍历 ODT,算出包含 \(x\) 的询问的集合 \(S_x\)压位存储。再枚举 \(\text{mex}\),枚举到 \(i\) 时,还没确定答案且属于 \(S_i\) 的询问的答案即为 \(i\)

重构直接遍历 ODT 进行重构即可。实现上,为了让 ODT 支持翻转,直接用 std::vector 存储,定位时暴力往后找,复杂度即为颜色段个数 \(\mathcal O(B)\);对于插入,我们选择相信 insert 的超小常数(雾

复杂度分析非常困难,在以下条件下:

  • 压位写法,视位运算复杂度为 \(O(1)\)
  • \(n, q\) 同阶
  • insert 复杂度 \(\mathcal O(1)\)

,复杂度为 \(O(\frac{n ^ 2}{B})\),若使用 __uint128_t 进行压位,令 \(B = w = 128\),复杂度 \(O(\frac{n ^ 2}{w})\)

P5443 [APIO2019] 桥梁

题意: 给定一张 \(n\)\(m\) 边的无向图,第 \(i\) 条边带权 \(w_i\),有 \(q\) 次如下两种操作:

  • \(w_x \gets y\)
  • 查询从 \(x\) 开始,只通过 \(\ge y\) 的边,可达点数量。

\(1 \le n \le 5\times10^4\)\(0 \le m \le 10^5\)\(1 \le q \le 10^5\)\(w_i, y \le 10^9\).

若没有修改操作,可以使用 Kruskal 重构树,也可以离线,将询问按 \(y\) 从大到小排序,并查集维护即可。

有修改,不妨考虑操作分块,将 \(B\) 次操作划为一块。Kruskal 重构树的形态受修改操作影响,难以动态维护,于是我们考虑并查集,随之而来的问题是:我们怎么同时处理时间轴边权序

对于前面的块的修改,对每一条边维护出其最后一次修改,首先肯定是以边权序对询问排序,那么对块内无修改的边,它最后一次修改在当前块前,直接随边权序加入并查集即可。

再考虑块内有修改(二类修改)的边:仅有 \(B\) 条,考虑可撤销并查集,对于询问 \((t, x, y)\),加入满足以下条件的边 \((t_0, x_0, y_0)\)

  • \(y_0 \ge y\)
  • 是满足 \(t_0 \lt t\) 之前对 \(x_0\) 的最后一次修改。

,算出答案后再撤销即可,这部分单次询问是 \(\mathcal O(B)\) 的。

由于要支持撤销,并查集不能路径压缩,使用启发式合并,总复杂度 \(\mathcal O((m\log m + B\log B)\cdot\frac{q}{B} + qB\log n)\),视 \(n, m, q\) 同阶,取 \(B = q^{0.5}\) 时,有最优复杂度 \(\mathcal O(q\log n\sqrt{n})\),实测块长取 \(900\) 为最优,给出实现:

const int N = 1e5 + 5, B = 900;
int n, m, q, rk[N], vis[N], ans[N];
struct Edge{ int u, v, w, id; } E[N];
struct Query{ int t, x, y; };
vector<Query> M, Q, V;namespace DSU {int fa[N], siz[N], stk[N], tp, cur;void init(){ for(int i = 1; i <= n; i++) siz[fa[i] = i] = 1; tp = 0; }int find(int u){ return u == fa[u] ? u : find(fa[u]); }void merge(int u, int v){if((u = find(u)) != (v = find(v))){if(siz[u] > siz[v]) swap(u, v);fa[u] = v, siz[v] += siz[u], stk[++tp] = u;}}void rec(){ cur = tp; }void undo(){while(tp > cur){int u = stk[tp];siz[fa[u]] -= siz[u], fa[u] = u, tp--;}}
} using namespace DSU;void solve(){sort(E + 1, E + m + 1, [](Edge x, Edge y){ return x.w > y.w; });for(int i = 1; i <= m; i++) rk[E[i].id] = i;sort(all(Q), [](Query x, Query y){ return x.y > y.y; });for(int i = 1; i <= m; i++) vis[i] = -1; // 无修改for(auto [t, x, y] : M) vis[rk[x]] = 0; // 有修改V = M; for(auto [t, x, y] : M) V.eb((Query){0, x, E[rk[x]].w});sort(all(V), [](Query x, Query y){ return x.t < y.t; });init();int pos = 1;for(auto [t, x, y] : Q){while(pos <= m && E[pos].w >= y){ // 无修改无需考虑撤销if(!~vis[pos]) merge(E[pos].u, E[pos].v);pos++;}rec();for(auto [_t, _x, _y] : V){ // 算上次修改时间if(_t > t) break;vis[rk[_x]] = _t;}for(auto [_t, _x, _y] : V){if(_t > t) break;if(_t < vis[rk[_x]]) continue; // 不是最新修改if(_y >= y) merge(E[rk[_x]].u, E[rk[_x]].v);}ans[t] = siz[find(x)], undo();}for(auto [t, x, y] : V) E[rk[x]].w = y;
}int main() {ios::sync_with_stdio(false), cin.tie(0), cout.tie(0);for(int i = (cin >> n >> m, 1); i <= m; i++)cin >> E[i].u >> E[i].v >> E[i].w, E[i].id = i;for(int i = (cin >> q, 1), op, x, y; i <= q; i++){cin >> op >> x >> y, op == 1 ? M.eb((Query){i, x, y}) : Q.eb((Query){i, x, y});if(M.size() + Q.size() >= B) solve(), M.resize(0), Q.resize(0);} if(Q.size()) solve();for(int i = 1; i <= q; i++) if(ans[i]) cout << ans[i] << '\n';cout << flush;return 0;
}

发现这题与前面其他题有所不同,我们貌似没有很快速的处理出前面整块的贡献,而是跟着当前块的修改一起贡献。所以操作分块不一定都需要将前面整块的贡献插到一个全局的 DS 中,由此也可以看出操作分块有很强的扩展性。

完结撒花~ ★,°:.☆( ̄▽ ̄)/$:.°★

相关文章:

学习笔记:操作分块 / 根号重构

感谢校内模拟赛给我强行灌输了这个东西。。。 概述 操作分块 / 根号重构,又名时间轴分块,可以解决需要多次修改和查询的问题,常常难以直接维护。 借鉴序列分块的思想,我们设定一个阈值 \(B\),将连续 \(B\) 次操作视为一块。考虑一次查询操作,将对它产生影响的修改分为两类…...

url测试脚本3

#!/bin/sh . /etc/init.d/functions# 待检测的 URL 列表 array=("http://mail.163.com""http://mail.sina.com/" )# 等待效果,输出进度 wait_for_start() {echo -n "Start Curl_check"for n in 1 2 3; doecho -n " ."sleep 1doneecho…...

深入解析:linux基本知识

深入解析:linux基本知识pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", monospace !important; font-size:…...

解决方案架构师是做什么

解决方案架构师 面试题 客户是怎么管理的 渠道变革变换的是哪些内容。变的是什么? 分层分级是怎么设计,价格体系是怎么制定的 marking 是怎么做的? CAP模型,是怎么管理的, 营销活动和销售是如何结合的,IT解决方案是什么 职责 懂业务,梳理解决方案。 技术架构 1 号项目。…...

鸿蒙应用开发从入门到实战(九):ArkTS渲染控制

ArkTS拓展了TypeScript,可以结合ArkUI进行渲染控制,是的界面设计具有可编程性。本文简要描述鸿蒙应用开发中的条件渲染和循环渲染。大家好,我是潘Sir,持续分享IT技术,帮你少走弯路。《鸿蒙应用开发从入门到项目实战》系列文章持续更新中,陆续更新AI+编程、企业级项目实战…...

C# 2025年6-9月TIOBE排名增长及未来展望

根据 TIOBE 编程语言排行榜 2025 年 6 月至 9 月的公开数据,C# 的排名和市场份额变化如下(综合多个月份数据整理):一、 C# 在 2025 年 TIOBE 排行榜的连续增长趋势2025 年 6 月排名:第 5 位市场份额:4.69%2025 年 7 月排名:第 5 位市场份额:4.87%2025 年 8 月排名:第 …...

一个基于 .NET 开源、简易、轻量级的进销存管理系统

前言 最近有小伙伴在后台留言问:.NET 有值得推荐学习的进销存管理系统吗?今天大姚给大家推荐一个基于 .NET 开源、简易、轻量级的进销存管理系统:JxcLite。 项目介绍 JxcLite 是一个基于 Known 框架开发(基于 .NET Blazor 轻量级、跨平台、低代码、易扩展的插件开发框架)、…...

采用tree命令导出文件夹/文件的目录树(linux)

采用tree命令导出文件夹/文件的目录树(linux)pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", monospace !…...

The 2024 ICPC Asia East Continent Online Contest (I) 4/12 A/F/G/M

M. Find the Easiest Problem 签到题,直接模拟即可点击查看代码 #include<bits/stdc++.h> #define int long long using namespace std; using pii=pair<int,int>; using ll = long long; using ull = unsigned long long; const ll inf = 1e18; const int mod = …...

深入解析 JVM 类加载机制:从字节码到运行时对象

一、概述:为什么需要类加载? Java 语言的核心特性之一是"一次编写,到处运行",这背后的关键在于 Java 虚拟机(JVM)和其类加载机制。当我们编写好 Java 代码并将其编译为 .class 字节码文件后,这些静态的字节码需要被加载到 JVM 中才能变为可执行的动态对象。类…...

博弈论学习(第二天)

博弈的基本理性假设: 一般来说,对于研究博弈问题,需要假设参与者具有完美理性,这分三方面,第一个就是参与者的偏好要有一定性,比如对风险的偏好,不能说一个参与者做第一个决策时属于风险接受型,而做第二个决策时就属于风险规避型。第二个就是参与者对所参与决策的问题具…...

PHP 和 Elasticsearch:给你的应用加个强力搜索引擎

PHP 和 Elasticsearch:给你的应用加个强力搜索引擎 现在做 Web 应用,搜索功能基本是标配。不管你做电商、CMS 还是社交应用,用户都希望搜索又快又准。如果你用 PHP 开发,肯定遇到过数据库搜索的瓶颈——数据一多就慢得要死。这时候 Elasticsearch 就能帮大忙了。 这篇文章会…...

2025年- H146-Lc459. 重复的子字符串(字符串)--Java版 - 实践

2025年- H146-Lc459. 重复的子字符串(字符串)--Java版 - 实践pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New"…...

坚果云 坚果 jianguoyun 怎么收文件?

怎么收文件? 坚果云 坚果 jianguoyun 怎么收文件?注册、登录、免费的空间是 1GB。创建新的收集 https://www.jianguoyun.com/d/home#/ 查看收集结果:https://www.jianguoyun.com/#/...

mssql创建字段依赖

CREATE TABLE temp061_t ( ID INT IDENTITY(1,1) PRIMARY KEY, RoleType INT NOT NULL, isSior INT NULL ); ALTER TABLE temp061_t ADD CONSTRAINT chk_is_sior CHECK ( (RoleType = 1 AND isSior IS NULL) OR (RoleType = 2 AND isSior IN (0,1,2)) ); -- 合法插入 INSERT IN…...

AT_agc053_b [AGC053B] Taking the middle

考虑将先手最大转化为后手最小。 那么可以发现,第 \(i\) 次操作先手一定能让后手从 \([n - i + 1, n + i]\) 中选取最小的一个元素,一定可以。因为考虑先手拿的顺序不重要,一定存在构造方案,使得能让任意一个元素为中位数。...

一款多功能Linux服务器Web管理面板

为什么使用 Docker 部署 EasyNode? 正如您所说,Docker 部署具有显著优势: 环境隔离与一致性:所有依赖(Node.js, PM2等)都封装在容器内,与宿主机环境隔离,避免冲突。在任何支持 Docker 的 Linux 发行版上,体验完全一致。 简化安装:无需在主机上手动安装 Node.js、配置…...

2025.9.16 测试

2025.9.16 测试1. Problem A: 逆序对(reverse) 根据冒泡,只要逆序对个数够就有方案 经过思考,我们找到第一个操作个数大于的前缀,然后操作前一个前缀,这样前边变有序后,与当前数成逆序对一定是个后缀,然后根据需要选任意个即可 所以我们对任意方案构造出了 \(= 2\) 的解 …...

题解:P12558 [UOI 2024] Heroes and Monsters

题面: (这个没交洛谷,给学弟写的。) \(O(n^3)\) 考虑直接求出所有 \(ans_i\),前缀和回答询问。 \(a,b\) 先排序。由于我们只关心英雄的集合,所以怪兽我们贪心选择,如果我们选这个英雄那么选最前面的怪兽,否则选后面第一个能打死自己的怪兽。显然,合法方案怪兽的前缀会…...

数据分析与产品、运营、市场之间如何有效对齐 - 详解

数据分析与产品、运营、市场之间如何有效对齐 - 详解pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", monosp…...

(附源码)基于Java的学生托管系统的设计与实现 - 实践

(附源码)基于Java的学生托管系统的设计与实现 - 实践pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", mono…...

SVG动画优化全攻略:从设计到性能提升

本文详细介绍了如何通过清洁设计、路径简化、代码分层和元素复用等技术优化SVG动画,涵盖工具选择、结构设计到CSS动画实现的全流程,帮助开发者创建高性能的SVG动画效果。粉碎动画第四部分:优化SVG SVG动画让我回想起童年观看的汉纳-巴伯拉卡通片。像《Wacky Races》、《The …...

【GitHub每日速递 250919】MCP 生态新工具!Registry 服务器注册服务预览版,AI 开发者部署认证全流程揭秘

原文:https://mp.weixin.qq.com/s/vpm5exQj1imATtK6edQjZA gRPC-Go:高性能开源RPC框架,使用攻略及常见问题全解析 [grpc-go] 是一个基于 HTTP/2 的高性能远程过程调用(RPC)框架的 Go 语言实现。简单讲,它让不同服务能高效地通过网络互相调用函数。适用人群:Go 语言开发者…...

多元积性函数

定义:若函数 \(f(n,m)\) 满足 \(ab \perp xy \Rightarrow f(ax,by)=f(a,b)f(x,y)\),则称 \(f\) 为二元积性函数。 积性分解:将 \(x=\prod p_i^{\alpha _i},y=\prod p_i^{\beta _i}\),则有 \(f(x,y)=\prod f(p_i^{\alpha_i},p_i^{\beta_i})\)。 二元迪利克雷卷积:\((f*g)(n…...

MX 练石 2026 NOIP #7

好难好难好难好难,为数不多的罚坐了。MX 练石 2025 NOIP #6 链接:link 题解:link 时间:4h20min (2025.09.18 13:50~18:10) 题目数:4 难度:A B C D估分:50 + 10 + 10 + 10 = 80 得分:场祭 读题。 开 A,发现可以转化为 \(a_i - i \le a_j - j \land b_i - i \ge b_j - j…...

用Qt打造永远运行的程序/守护进程/程序启动器/实时监测程序运行/后台运行

一、前言说明 最近有个定制需求,希望程序能够一直运行,比如在windows上运行的程序,很可能无法保证不出故障崩溃,有时候可能是程序内部处理异常导致的崩溃,比如有些数据解析没有考虑到一些极端的情况,还有就是用户主动关闭了程序,可能是误关闭,而有些程序,又必须7*24小…...

传话游戏 题解

详细揭秘传话游戏 题解 题目描述 初始时你有一个长度为 \(m\) 的字符串 $ S_1 $ ,然后你可以进行 $ n-1 $ 次操作,每次操作修改当前字符串,形如删掉其中某些元素(可以全删,也可以都不删)。第 \(i\) 次操作得到的字符串记为 $ S_{i+1} $ ,这样得到了由 \(n\) 的字符串形成…...

智驾芯片三强对决:征程6P vs EyeQ Ultra vs Thor

微信视频号:sph0RgSyDYV47z6快手号:4874645212抖音号:dy0so323fq2w小红书号:95619019828B站1:UID:3546863642871878B站2:UID: 3546955410049087智能驾驶芯片是自动驾驶技术的「中枢神经」,其性能直接关乎车辆感知决策的精准度与响应速度。当前,全球智驾芯片市场呈现多元…...

0132_访问者模式(Visitor)

访问者模式(Visitor) 意图 表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作。 UML 图优点开闭原则:容易添加新的访问者操作,无需修改元素类 单一职责原则:将相关行为集中到一个访问者对象中 灵活性:可以在运行…...

国内AI云市场:挤不进前三,生存将成问题!

微信视频号:sph0RgSyDYV47z6快手号:4874645212抖音号:dy0so323fq2w小红书号:95619019828B站1:UID:3546863642871878B站2:UID: 3546955410049087中国AI云市场已形成“一大四强”的格局,阿里云以35.8%的份额独占鳌头,而第五名之后的厂商合计市场份额不足25%,在残酷的竞争…...

P14053 [SDCPC 2019] Median 题解

P14053 [SDCPC 2019] Median 题解P14053 [SDCPC 2019] Median 题解 一道水题。 观察题意,很快我们可以发现,对于元素 \(i\),其合不合法取决于一定大于 \(i\) 的数的个数与一定小于 \(i\) 的数的个数。 这时,我们只需要统计有多少数大于 \(i\),与多少数小于 \(i\) 即可。 只…...

lQueryDef查询Evaluate报该几何不包含M值问题。

地理数据库既包括空间,又包括属性,属性类似于SQL表,理论上支持标准SQL查询。lQueryDef接口提供了高效查询方法,适用于对属性表或要素类的属性进行筛选和检索。 问题描述 一个简单的面积求和示例如下:IQueryDefFactory queryDefFactory = (IQueryDefFactory)workspace; IQu…...

我的首个RCE漏洞发现之旅:Apache ActiveMQ远程代码执行实战

本文详细讲述了作者如何通过系统化的子域名枚举和端口扫描,发现Apache ActiveMQ的CVE-2023-46604远程代码执行漏洞的全过程,包含具体的工具使用方法和实战技巧。我的首个RCE漏洞发现经历 大家好!在这篇文章中,我将分享我的第一个远程代码执行(RCE)漏洞发现经历。这次漏洞…...

北京市社保费用差额补缴计算工具

北京市社保费用差额补缴计算工具9月18日北京市发布了社会保险缴费工资基数上下限调整的通告,自2025年7月起,社保基数下限由原来的 6821元提高到7162元。 这样一来,之前已经缴了7月份社保且社保基数不到7162元的就需要补缴了。 根据我缴社保时看到的数据,我写了一个北京市社…...

使用自签名SSL证书有什么风险?

自签名SSL证书,指的是由用户自行生成密钥对并予以签名的证书,无需经由第三方权威证书颁发机构(CA)审核。鉴于其具备零成本、生成便捷的特性,该证书常被应用于个人测试、内部临时服务等非生产场景。 然而,相较于权威CA颁发的IP SSL证书,自签名证书在信任机制、安全性、兼…...

CDN可以使用iTrustSSL通配符证书吗?

CDN,即内容分发网络,它是一种通过在多个地理位置分散部署服务器节点,将网站的内容缓存并分发到离用户最近的节点上,从而显著提高网站内容的访问速度、降低延迟,并减轻源服务器负载的技术架构。借助CDN,网站能够更快地响应用户的请求,为用户提供流畅的浏览体验。而SSL证书…...

OpenCvSharp基于颜色反差规避FBA面单贴标

01 规避原理 1.抠图,根据色差或者根据固定包裹位置以及包裹尺寸抠出纸箱图片 2.色差,获取纸箱上所有背景色的灰度值 3.采图,采集大量视野相同,光源相同面单的色差灰度值,整理区间 4.取反,所有非面单灰度值区间的,都认为是纸箱背景色 02根据DPI计算1mm对应像素点。获取吸…...

【API接口】最新可用手机号归属地查询接口

最新可用手机号归属地查询接口,查询手机号码归属地、所属号段、手机卡类型、运营商等信息 使用之前您需要先去注册下key 申请地址: https://www.52api.cn 接口地址:https://www.52api.cn/api/mobile_location 返回格式:application/json 请求方式:GET/POST 请求示例:htt…...

【API接口】最新可用IP地址查询接口

最新可用IP地址查询接口,精准定位IPV4地址的地理位置信息,包括国家、城市、地区、运营商等详细数据,内置双线路来确保数据可用性 使用之前您需要先去注册下key 申请地址: https://www.52api.cn 接口地址:https://www.52api.cn/api/ip_query 返回格式:application/json 请…...

UE5创建的对象无法用ai操控

UE5创建的对象无法用ai操控记得更改这个设置...

【API接口】最新可用喜马拉雅接口

最新可用番茄畅听接口,支持搜索、详情解析、音频链接解析功能,助您快速构建您的专属听书客户端 使用之前您需要先去注册下key 申请地址: https://www.52api.cn 接口地址:https://www.52api.cn/api/xmly 返回格式:application/json 请求方式:GET/POST 请求示例:https://…...

25/09/18 小结

第三期ccb CF519E 2100 虽然是一道2100的题,但还是比较好想的。在树上找到最短距离,明显需要用到公共祖先之类的算法,并且,还要明确的知道节点往上走几步会到哪个节点。因此,学习了dfn序求LCA的方法。 具体来说在dfs序中,两个节点之间的dfn一定会遍历到lca的儿子节点,而…...

【API接口】最新可用番茄畅听接口

最新可用番茄畅听接口,支持搜索、详情解析、音频链接解析功能,助您快速构建您的专属听书客户端 使用之前您需要先去注册下key 申请地址: https://www.52api.cn 接口地址:https://www.52api.cn/api/fanqie_ct 返回格式:application/json 请求方式:GET/POST 请求示例:htt…...

【API接口】最新可用七猫短剧接口

最新可用七猫短剧接口,支持短剧搜索、短剧详情解析、短剧播放链接解析功能,助您快速构建您的专属短剧客户端 使用之前您需要先去注册下key 申请地址: https://www.52api.cn 接口地址:https://www.52api.cn/api/qm_duanju 返回格式:application/json 请求方式:GET/POST 请…...

磁盘分析工具推荐(Wiztree)

前言 磁盘空间占满了真难受,但是又像仓鼠一样不愿意删除,怎么找到有效的办法呢? (买买买!只要磁盘够大,都不是问题!) 但是买买买也是有上限的(除非你一直用机械硬盘去备份保存,物理存储) 所以还是需要删除文件的 那么,问题来了,怎么删除更有效呢? 那当然是,删除…...

用FastAPI和Streamlit实现一个ChatBot

用FastAPI+Streamlit实现一个流式响应的ChatBot前言 本文使用FastAPI+Streamlit实现一个流式响应类ChatGPT的LLM应用,这里只是一个demo,后续会基于此实现一个完整的MCP Client + MCP Server的MCP应用。 Streamlit是专为机器学习和数据科学项目打造的开源Python库,它允许开发…...

搜索百科(2):Apache Solr — 企业级搜索的开源先锋

大家好,我是 INFINI Labs 的石阳。 欢迎回到 《搜索百科》 专栏!每天 5 分钟,带你速览一款搜索相关的技术或产品,同时还会带你探索它们背后的技术原理、发展故事及上手体验等。 上一篇我们认识了搜索技术的基石 Apache Lucene,今天我们将继续这个旅程,了解基于 Lucene 构…...

Markbook Day03

如何打开CMDWindows+系统+终端右键+在终端打开Windows+R,输入CMD打开某个盘,在地址前输入cmd空格,然后回车 选择以管理员方式运行常用DOS命令 盘符切换 查看当前目录下所有文件dir 切换目录cd change directory cd..回到上一个...

re分区为y盘,efi分区为z盘

re分区为y盘,efi分区为z盘...

数组,java学习第五天

数组 数组的定义 数组是相同类型数据的有序集合 数组描述的是相同类型的若干个数据,按照一定的先后次序排列组合而成 其中,每一个数据称作一个数组元素,每个数组元素可以通过一个下标来访问它们,数组的下标是从0开始的 数组声明创建、三种初始化及内存分析 首先必须声明数组…...