随笔分类 - 笔记
摘要:Day 1 #ifndef cJSON__h #define cJSON__h 避免头文件重复定义。首先检查是否已经包含了 cJSON__h 宏,如果没有包含则包含之并执行下面的代码;如果已经包含则跳过这段代码,避免了同一份文件的重复执行,导致同一个文件内类和结构体等被多次定义等问题(至少造成了编译
阅读全文
摘要:电场 一、公式 静电力计算:库伦定律 电场强度:\(\vec{E}=\dfrac{\vec{F}}{q_0}=\dfrac{q}{4\pi \epsilon_0 r^2}\vec{e_r
阅读全文
摘要:pbds 是 GNU 扩展库的一部分,在 g++ 环境下可以直接使用,clang 下不能使用。 #include <bits/extc++.h> // pbds万能头 using namespace __gnu_cxx; using namespace __gnu_pbds; 堆 #include
阅读全文
摘要:首先异或最长路不能用 Bellman-Ford,因为异或不满足加法传递性,局部最优可能推不出整体最优,而且可能出现类似“负环”的情况,走不出来。一般要用线性基解决这一类问题。 我们可以把路径拆成一条链(蓝色)和若干个环(灰色)。我们可以走一条红色的路径到达一个环,转一圈然后原路返回,这样红色的边两次
阅读全文
摘要:数据结构 并查集 vector<int> fa(n + 1); //扩展域并查集注意开n*3+1 iota(fa.begin(), fa.end(), 0); // 带权并查集则同时更新d[x],siz[x] function<int(int)> find = [&](int x) { return
阅读全文
摘要:线段树时间分治解决的问题是一类可离线的,要求支持先修改后撤销,查询某一时间点前修改的总贡献的问题。大致的思路是,在时间轴上建一棵线段树,把 时刻修改, 时刻撤销的操作,“区间加”到 区间上。然后遍历线段树所有节点(时间区间),
阅读全文
摘要:1. proxy wsl --install Ubuntu-24.04 安装好 wsl 之后,测试了一下 v2rayN 的代理能不能正常使用(用 vultr 服务器搭建的校园网 ipv6 免流),发现可以 curl www.google.com,但是 sudo apt-get update 报错 C
阅读全文
摘要:乘法逆元 给定 个正整数 ,求它们在模 意义下的乘法逆元。 逆元是模意义下的倒数,能够将模意义下无法直接计算的除法转化为乘法。先来总结一下常用的求单个逆元的方法: 扩展欧几里得 地求一个数的逆元,要求 互质即可(\(p
阅读全文
摘要:将数组以 的时间复杂度和 的空间复杂度构造为堆的 trick。 想象我们把数组随意地填充进一棵完全二叉树(尚不满足堆的性质),然后通过交换节点等操作把二叉树变成堆。因为完全二叉树的节点个数性质,我们直接从 到 倒序遍历
阅读全文
摘要:定义变量或函数:语法 (define <name> <value>); 定义宏:语法 (define-macro <name parameters> <body>)。不同于函数,宏不会计算值,而是实现代码的替换,可以实现很多奇妙的功能,例如实现 for 循环:(define-macro (list-
阅读全文
摘要:按照变量的定义位置分类,在函数外部定义的变量为 全局变量 或者 外部变量;在函数内部定义的变量为 局部变量。 在不加修饰的情况下,全局变量的作用域是定义以下的整个文件,局部变量的定义域是定义以下的所在函数体。在函数内访问变量时,优先查找局部变量,所以如果局部变量与全局变量同名,局部变量会“遮蔽”全局
阅读全文
摘要:1. Dijkstra 算法 Dijkstra 算法的原理是贪心,执行步骤如下: 令 ,其余为正无穷; 在未被标记过的点中,选择 最小的点 ,标记它; 枚举 的出边,更新 的 。 重复步骤 2,3 直到所有点被标记
阅读全文