本文已在博客园同步发布。 注意此为个人题解,并非转载于洛谷。 [PA 2012 Finals] Tax 题目大意 给定一个 \(n\) 个点 \(m\) 条边的无向图,定义路径的代价如下: 经过一个中间点时,代价为 \(max(\) 进入该点的边权, 离开该点的边权 \()\)。 起点 \(1\) ...
前言 C++ 和其他语言的差别好大。 面向对象开发 宏定义 #ifndef xxx #define xxx ... #endif 为了防止重复 include,可以写:如果没有 define xxx,那么就 define,然后 include。这样在下次碰到的时候因为已经 define 过了,所以不 ...
[ABC470E]Concentration 毫无疑问,这是一道期望dp。 这道题很朴素,只需要设计状态,之后记忆化搜索或递推,于是就做完了。 不过理解题意还是需要时间的,简而言之, 有 \(N\) 对( \(2N\) 张)牌,一次选 \(2\) 张: 若是同一对则将这一对的权值加入得分,并移除这两 ...
可能更好的阅读体验 巴巴博弈 本文将竭尽所能带您一步步了解博弈论,如有错误,请各位大手子在评论区慷慨指出,谢谢! 正文 博弈论是个本质困难非常有趣的学科。 无特殊说明,本文均假设博弈者聪明绝顶。 1.博弈基础 在竞赛中,我们一般面对的都是组合博弈: 两名玩家,轮流操作 信息对双方公开,无隐藏信息(如 ...
状压dp 将一个集合状态按位压缩为一个整数,在集合状态间的动态规划。 经常用来处理状态数为 $ 2^n$ 级别的题目,一般 \(n\leq23\)。特点就是 \(n\) 极小。 有时会结合容斥原理排除不可能的情况。 有时会用根号分治缩小 \(n\) 的范围 状态操作 对于压缩后的状态,在转移的过程中 ...
题目 第一问比较简单。因为一次交换只能交换走 \(1\) 个不是最小生成树的原树边,所以答案就是原树里不属于最小生成树的边数。 第二问相比第一问就要保证每一次交换都要是生成树。我们考虑先将边分类: \(-1\):代表这条边属于最小生成树但不在当前树。 \(1\):代表这条边不属于最小生成树但在当前树 ...
template<typename T> class ReflectProperty { public: ReflectProperty() : m_value{} {} ReflectProperty(const T& v) : m_value(v) {} ReflectProperty& ope ...
前置芝士 未定义行为(Undefined Behavior,UB)是计算机程序设计中,执行结果未被语言标准明确定义的行为,可能引发程序崩溃、数据损坏或安全漏洞等不可预测后果。 副作用(Side Effect)是指表达式或函数执行后,对程序状态(内存、文件系统、硬件等)产生的持久性改变。 As-If ...
大家好,我是C++初学者。花了大概几周时间,做了一个大学生校园管理系统。这个项目是从零开始写的,用C++和SQLite数据库,实现了管理员、教师、学生三个角色的完整功能。下面分享我的学习心得和项目经验,希望能给同样在学C++的朋友一些参考。 ...
ntsync是Linux内核在6.14引入的新功能,它可以在Linux模拟Windows的可等待对象操作。 这个功能主要由wine团队开发和维护,借此可以在Linux上提供性能更高的Windows接口模拟。 这次我们来简单了解一下ntsync,并编写几个简单的示例。 启用ntsync ntsync被 ...
网络流 一个网络指一个有向图 \(G = (V, E)\),有两种特殊的节点: 源点 \(S\) 和汇点 \(T\)。 每条有向边 \((u, v) \in E\) 都有一个权值 \(c(u, v)\),被称为边的容量;显然当 \((u, v) \notin E\) 时,则 \(c(u, v) = ...
题目传送门 前置知识:数位DP、同余 题目大意: 在l到r中统计能被其所有非零数字整除的数的个数,多组询问,\(t \leq 10\),\(1 \leq l \leq r \leq 9 \times 10^{18}\) 题目分析 注意力以及数学归纳发现没有规律可找 题目涉及对数字每一位的设计,查询为 ...
FHQ-Treap 是一种不带旋的平衡树,和带旋版本一样都是用随机优先级完成平衡。不同的是,FHQ-Treap 是通过分裂和合并来插入和删除,也可以用于文艺平衡树。 ...
AC 自动机(ACAM)是一种实现多模匹配的自动机(Automaton),将 KMP 思想和 Trie 融合起来,时空复杂度优秀。 ...
一、概述 在 C++ 开发场景中,程序化生成与写入 Excel 文档是企业级应用常见需求,涵盖报表导出、数据归档、自动化报告生成等领域。相较于依赖 Microsoft Office 自动化组件的方案,专用 Excel 处理库具备部署独立、性能稳定、无需安装 Office 环境等优势。 本文基于 Sp ...
TitanEngine是Windows平台下轻量化高性能开源调试引擎,由ReversingLabs团队开发,于2012年HITB阿姆斯特丹黑客大会正式开源发布,也是主流逆向调试工具x64dbg的核心底层引擎。该引擎深度封装优化了Windows原生调试API,支持32/64位程序调试、硬件断点、异常捕... ...
一、CMake概述 CMake(Cross-Platform Make)是一个跨平台的构建系统生成器,它生成平台的原生构建工具(如Makefile、Visual Studio工程、NinJa文件等),并支持复杂项目、多平台和多编译环境。 核心功能 1、跨平台支持 2、管理复杂项目结构(子模块、依赖) ...
GNU GCC 为编写跨平台代码提供了多种支持,今天要讲的就是其中一种叫“多版本函数”的技术。 什么是多版本函数 多版本函数指的是可以为同一个函数在不同的处理器平台或者指令集下编写不同的实现,程序在运行时会自动选择一个最合适的实现作为这个函数真正运行的实体。 文字解释可能比较抽象,我们拿具体的cpp ...
M3提供thinking和non-thinking双模式。thinking模式让模型"先想后答",在复杂Bug修复场景下效果显著。本文用3个真实案例展示thinking模式的威力。 thinking vs non-thinking 模式 思考过程 延迟 适用场景 thinking 有(类似CoT) ...
分布式系统最怕两件事:数据不一致和并发写冲突。分布式锁就是解决后者的银弹——前提是你用对了。 为什么需要分布式锁? 场景1:库存超卖 # ❌ 没有锁:两个请求同时扣库存,结果变负数 async def deduct_inventory(sku: str, qty: int): stock = awa ...