CMake可以说已经是C/C++构建的事实标准了,目前绝大多数的C/C++项目都已经采用CMake进行构建,好处至少有两点:一个是跨平台,另一个是方便依赖库引入。不过笔者认为,像CMake这种工具其实也没必要特意学习,说到底它也不过是方便程序员使用的工具,没有它程序员也能进行C/C++程序的构建,只 ...
编辑距离 本题与力扣72.编辑距离题意一样,阅读完本文可以尝试leetcode72. 力扣题目链接 题目叙述 输入两个字符串a,b。输出从字符串a修改到字符串b时的编辑距离 输入 NOTV LOVER 输出 4 题目解释: 动态规划思路 这个问题显然是一个最优解问题,我们可以考虑动态规划的思路,那么 ...
目录基本概念关联式容器键值对树形结构的关联式容器set描述set的使用map描述map的使用multiset描述multiset简单使用multimap描述底层结构 基本概念 关联式容器 在初阶阶段,我们已经接触过STL中的部分容器,比如:vector、list、deque、 forward_lis ...
目录AVL树AVL树的概念AVL树节点的定义:AVL树的插入基本情况分析平衡因子对应的操作旋转操作分析需要旋转的情况结论4种旋转操方法与特征6种双旋平衡因子特征代码实现四种旋转实现插入操作实现树高度与是否平衡树判断实现其他实现插入验证BenchMark环境测试工具和方法测试结果: AVL树 AVL树 ...
讲解 P9640 [SNCPC2019] Digit Mode。
使用数位 dp 算法,通过枚举众数和众数出现次数,然后使用动态规划算法结合组合数学计算贡献。 ...
最长公共子序列 本文讲解的题与leetcode1143.最长公共子序列这题一样,阅读完可以挑战一下。 力扣题目链接 题目叙述: 给定两个字符串,输出其最长公共子序列,并输出它的长度 输入: ADABEC和DBDCA 输出: DBC 3 解释 最长公共子序列是DBC,其长度为3 动态规划思路: 我们这 ...
LeetCode300.最长递增子序列 力扣题目链接(opens new window) 给你一个整数数组 nums ,找到其中最长严格递增子序列的长度。 子序列是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。例如,[3,6,2,7] 是数组 [0,3,1,6,2,2,7 ...
效果图 在头文件类中声明变量 TCHAR m_dayStr[4]; // 日期 TCHAR m_weekStr[4]; // 星期 Gdiplus::Font* m_pFont; // 字体 Gdiplus::StringFormat m_strFormat; // 格式化字符串 Gdiplus:: ...
讲解 CF924D Contact ATC。
考虑转化为函数求零点问题,注意到单调性后转移为区间包含问题,树状数组维护即可。 ...
讲解 CF1264D1/2 Beautiful Bracket Sequence (easy/hard version)。
考虑用组合数算方案数,考虑范德蒙德卷积与组合意义优化计算过程。 ...
之前在客户那里调试设备,控制器上用的FTDI的USB转串口芯片。上位机需要和控制器进行指令交互,然后不同的指令的超时时间不同,因此需要在打开串口后修改超时时间。但是调试下来发现,串口通信变得很不稳定,非常容易收不到数据。 困扰了一段时间后,果断抓包看USB转串口的数据包,一看吓一跳setTimeou ...
1. 插件的用法 1.1. C/C++ 1.1.1. 插件介绍 1.1.2. 插件配置 1.2. Clang-Format 1.3. cpp-check-lint 1.3.1. cpplint 1.3.2. cppcheck 1.3.3. 插件的使用 1.4. C/C++ Advanced Lint ...
VSCode是笔者用过的最好用的开发工具,没有之一。笔者14年的码龄生涯中,先后用过Eclipse、 IntelliJ IDEA、 WebStorm、 PyCharm、 Visual Studio(2010/2013/2015)、 NetBeans、 Sublime Text等,但自从用VSCode ...
类中使用shared_ptr()的问题 当我们先定义一个指针,然后再用这个指针构造两个智能指针 int main() { int* pt = new int(); std::shared_ptr<int> p1(pt); std::shared_ptr<int> p2(pt); std::cout ...
1. make 和 Makefile 1.1. 什么是make? 1.2. 什么是Makefile? 1.3. make 与 Makefile的关系 2. Makefile的语法 2.1. 基本语法 2.2. 变量 2.3. 伪目标 2.4. 模式规则 2.5. 自动变量 2.6. 条件判断 3. ...
前 算是把之前的坑填一填吧。 这篇文章主要包含带修莫队,二维莫队等莫队算法的进阶应用,观看前请确保您已经熟练掌握了基本的莫队算法,不会的可以戳这里。 带修莫队 众所周知,普通莫队是不支持修改的,因为我们为了得到更优的时间复杂度,需要将每次询问离线下来,打乱顺序。 不过我们也可以通过加上一维时间维强行 ...
讲解 P4689 [Ynoi2016] 这是我自己的发明 与 P5268 [SNOI2017] 一个简单的询问。
先将树转化为 dfn 序,然后根据特殊性质得到区间,然后使用莫队算法, ...
思路: 首先随意钦定一个不是叶子节点的节点为根节点。 然后考虑对于一个不是根节点的点 \(u\),肯定需要至少一个叶子去与 \(u\) 子树之外的叶子节点配对。 考虑 \(u\) 到 \(fa_u\) 的这条边,首先至少有一个叶子节点穿过,然后设 \(p_u\) 表示 \(u\) 中的叶子节点个数: ...
使用 next_permutation 函数非常简单,以下是具体的步骤和注意事项: 步骤: 包含头文件:确保包含 <algorithm> 头文件,因为 next_permutation 函数位于这个头文件中。 #include <algorithm> 准备容器:next_permutation 可以 ...
1. 本网站的系统架构 2. (阿里云)域名解析配置 2.1. 快速配置 2.2. 自定义配置 2.2.1. 记录类型 2.2.2. 主机记录 2.2.3. 记录值 2.2.4. 解析请求来源 3. 域名解析原理 3.1. 什么是DNS 3.2. DNS的解析原理 3.2.1. 1.本地查询 3.2 ...