<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh-Hans-CN">
	<id>https://www.33dai.wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=33DAI</id>
	<title>三三百科 - 用户贡献 [zh-cn]</title>
	<link rel="self" type="application/atom+xml" href="https://www.33dai.wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=33DAI"/>
	<link rel="alternate" type="text/html" href="https://www.33dai.wiki/w/%E7%89%B9%E6%AE%8A:%E7%94%A8%E6%88%B7%E8%B4%A1%E7%8C%AE/33DAI"/>
	<updated>2026-05-04T01:52:23Z</updated>
	<subtitle>用户贡献</subtitle>
	<generator>MediaWiki 1.45.1</generator>
	<entry>
		<id>https://www.33dai.wiki/index.php?title=%E5%9F%BA%E7%A1%80%E8%AF%AD%E6%B3%95%E5%A4%A7%E7%BA%B2&amp;diff=176</id>
		<title>基础语法大纲</title>
		<link rel="alternate" type="text/html" href="https://www.33dai.wiki/index.php?title=%E5%9F%BA%E7%A1%80%E8%AF%AD%E6%B3%95%E5%A4%A7%E7%BA%B2&amp;diff=176"/>
		<updated>2026-04-03T11:51:13Z</updated>

		<summary type="html">&lt;p&gt;33DAI：​&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==简易大纲==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ 基础语法大纲&lt;br /&gt;
|-&lt;br /&gt;
! 课程编号 !! 课程标题 !! 课程内容&lt;br /&gt;
|-&lt;br /&gt;
| C01-1 || 高级计算器 || 输入输出语句、int 变量&lt;br /&gt;
|-&lt;br /&gt;
| C01-2 || 如果那么 || 不带 else 的 if 语句&lt;br /&gt;
|-&lt;br /&gt;
| C01-3 || 在范围内吗 || 带 else 的 if 语句&lt;br /&gt;
|-&lt;br /&gt;
| C01-4 || 一直做下去 || while 语句&lt;br /&gt;
|-&lt;br /&gt;
| C01-5 || 想做几次做几次 || for 语句&lt;br /&gt;
|-&lt;br /&gt;
| C01-6 || 循环套循环 || 循环嵌套&lt;br /&gt;
|-&lt;br /&gt;
| C01-7 || 先存起来 || 一维数组&lt;br /&gt;
|-&lt;br /&gt;
| C01-8 || 数组妙用 || 权值数组、无返回值无参数的函数&lt;br /&gt;
|-&lt;br /&gt;
| C01-9 || 功能打包 || 有参数有返回值函数&lt;br /&gt;
|-&lt;br /&gt;
| E01-1 || int存不下了 || long long 类型、数据范围、整数编码&lt;br /&gt;
|-&lt;br /&gt;
| E01-2 || 小数怎么办 || double 类型、类型转换&lt;br /&gt;
|-&lt;br /&gt;
| E01-3 || 文字与符号 || char 类型、字符数字转换&lt;br /&gt;
|-&lt;br /&gt;
| E01-4 || 花式输入输出 || 读入到文件末尾、保留 x 位小数&lt;br /&gt;
|-&lt;br /&gt;
| E01-5 || 更多运算符 || 位运算、三目运算符&lt;br /&gt;
|-&lt;br /&gt;
| E01-6 || 高级控制 || break、continue 与 exit(0)&lt;br /&gt;
|-&lt;br /&gt;
| E01-7 || 一串字符 || 字符串&lt;br /&gt;
|-&lt;br /&gt;
| E01-8 || 高维结构 || 多维数组与结构体&lt;br /&gt;
|-&lt;br /&gt;
| E01-9 || 自己调用自己 || 简单递归、参数传引用&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==依赖关系==&lt;br /&gt;
&lt;br /&gt;
# C01-1 高级计算器：输出语句、int 变量、输入语句、加法、减法、乘法、小括号&lt;br /&gt;
#* E01-1 int存不下了：long long 类型、数据范围、整数编码&lt;br /&gt;
#* E01-2 小数怎么办：double 类型、类型转换&lt;br /&gt;
# C01-2 如果那么：不带 else 的 if 语句、除法、取余、相等、不等&lt;br /&gt;
# C01-3 在范围内吗：带 else 的 if 语句、大于、小于、并且&lt;br /&gt;
#* E01-3 文字与符号：char 类型、字符数字转换&lt;br /&gt;
# C01-4 一直做下去：while 语句、或者、反转&lt;br /&gt;
#* E01-4 花式输入输出：读入到文件末尾、保留 x 位小数&lt;br /&gt;
# C01-5 想做几次做几次：for 语句&lt;br /&gt;
# C01-6 循环套循环：循环嵌套&lt;br /&gt;
#* E01-5 更多运算符：位运算、三目运算符&lt;br /&gt;
#* E01-6 高级控制：break、continue 与 exit(0)&lt;br /&gt;
# C01-7 先存起来：一维数组&lt;br /&gt;
#* E01-7 一串字符：字符串&lt;br /&gt;
#* E01-8 高维结构：多维数组与结构体&lt;br /&gt;
# C01-8 数组妙用：权值数组、无返回值无参数的函数&lt;br /&gt;
# C01-9 功能打包：有参数有返回值函数&lt;br /&gt;
#* E01-9 自己调用自己：简单递归、参数传引用&lt;br /&gt;
&lt;br /&gt;
==核心序列（Core）==&lt;br /&gt;
&lt;br /&gt;
===C01-1 高级计算器===&lt;br /&gt;
&lt;br /&gt;
* 内容&lt;br /&gt;
** 输出语句、字符串字面量&lt;br /&gt;
** int 变量、赋值语句&lt;br /&gt;
** 输入语句&lt;br /&gt;
** 加法、减法、乘法、小括号 &lt;br /&gt;
* 约定&lt;br /&gt;
** 不讲基础框架的细节，只说执行的内容写在花括号里&lt;br /&gt;
** 不讲 endl，使用 \n 换行，转义符也只讲 \n，其他转义符留到 E01-3&lt;br /&gt;
** 数据类型只讲 int&lt;br /&gt;
** 为了极致的简单，不写 return 0;，等到 E01-9 之后再说只有主函数能省略 return 0;。&lt;br /&gt;
&lt;br /&gt;
===C01-2 如果那么===&lt;br /&gt;
&lt;br /&gt;
* 内容&lt;br /&gt;
** 【承接上一课】深刻理解赋值语句、交换两个变量&lt;br /&gt;
** 除法、取余&lt;br /&gt;
** 简单分离数位&lt;br /&gt;
** 不带 else 的 if 语句&lt;br /&gt;
** 相等、不等&lt;br /&gt;
** 奇数偶数判断、负数取相反数&lt;br /&gt;
* 约定&lt;br /&gt;
** else、大于、小于、并且、或者、反转都丢到之后讲&lt;br /&gt;
** 讲除法时不讲小数，小数留给 E01-2&lt;br /&gt;
** if 语句不讲省略大括号，后面学完循环再讲&lt;br /&gt;
** 简单带过一下成立是 1、不成立是 0、非 0 是真、0 是假&lt;br /&gt;
&lt;br /&gt;
===C01-3 在范围内吗===&lt;br /&gt;
&lt;br /&gt;
* 内容&lt;br /&gt;
** 大于、小于&lt;br /&gt;
** 带 else 的 if 语句&lt;br /&gt;
** 并且&lt;br /&gt;
** else if&lt;br /&gt;
** 在某个范围内&lt;br /&gt;
** 深化成立是 1、不成立是 0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===C01-4 一直做下去===&lt;br /&gt;
&lt;br /&gt;
* while 语句&lt;br /&gt;
* 或者、反转&lt;br /&gt;
&lt;br /&gt;
===C01-5 想做几次做几次===&lt;br /&gt;
&lt;br /&gt;
* for 语句&lt;br /&gt;
&lt;br /&gt;
===C01-6 循环套循环===&lt;br /&gt;
&lt;br /&gt;
* 循环嵌套&lt;br /&gt;
&lt;br /&gt;
===C01-7 先存起来===&lt;br /&gt;
&lt;br /&gt;
* 一维数组&lt;br /&gt;
&lt;br /&gt;
===C01-8 数组妙用===&lt;br /&gt;
&lt;br /&gt;
* 权值数组、无返回值无参数的函数&lt;br /&gt;
&lt;br /&gt;
===C01-9 功能打包===&lt;br /&gt;
&lt;br /&gt;
* 有参数有返回值函数&lt;br /&gt;
&lt;br /&gt;
==扩展维度（Extend）==&lt;br /&gt;
&lt;br /&gt;
===E01-1 int存不下了===&lt;br /&gt;
&lt;br /&gt;
* long long 类型&lt;br /&gt;
* 数据范围&lt;br /&gt;
* 整数编码&lt;br /&gt;
&lt;br /&gt;
===E01-2 小数怎么办===&lt;br /&gt;
&lt;br /&gt;
* double 类型&lt;br /&gt;
* 类型转换&lt;br /&gt;
&lt;br /&gt;
===E01-3 文字与符号===&lt;br /&gt;
&lt;br /&gt;
* char 类型&lt;br /&gt;
* 字符数字转换&lt;br /&gt;
&lt;br /&gt;
===E01-4 花式输入输出===&lt;br /&gt;
&lt;br /&gt;
* 读入到文件末尾&lt;br /&gt;
* 保留 x 位小数&lt;br /&gt;
&lt;br /&gt;
===E01-5 更多运算符===&lt;br /&gt;
&lt;br /&gt;
* 位运算&lt;br /&gt;
* 三元运算符&lt;br /&gt;
&lt;br /&gt;
===E01-6 高级控制===&lt;br /&gt;
&lt;br /&gt;
* break、continue&lt;br /&gt;
* exit(0)&lt;br /&gt;
&lt;br /&gt;
===E01-7 一串字符===&lt;br /&gt;
&lt;br /&gt;
* 字符串&lt;br /&gt;
&lt;br /&gt;
===E01-8 高维结构===&lt;br /&gt;
&lt;br /&gt;
* 多维数组&lt;br /&gt;
* 结构体&lt;br /&gt;
&lt;br /&gt;
===E01-9 自己调用自己===&lt;br /&gt;
&lt;br /&gt;
* 简单递归&lt;br /&gt;
* 参数传引用&lt;/div&gt;</summary>
		<author><name>33DAI</name></author>
	</entry>
	<entry>
		<id>https://www.33dai.wiki/index.php?title=%E5%9F%BA%E7%A1%80%E8%AF%AD%E6%B3%95%E5%A4%A7%E7%BA%B2&amp;diff=175</id>
		<title>基础语法大纲</title>
		<link rel="alternate" type="text/html" href="https://www.33dai.wiki/index.php?title=%E5%9F%BA%E7%A1%80%E8%AF%AD%E6%B3%95%E5%A4%A7%E7%BA%B2&amp;diff=175"/>
		<updated>2026-03-27T06:40:31Z</updated>

		<summary type="html">&lt;p&gt;33DAI：​/* C01-2 如果那么 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==简易大纲==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ 基础语法大纲&lt;br /&gt;
|-&lt;br /&gt;
! 课程编号 !! 课程标题 !! 课程内容&lt;br /&gt;
|-&lt;br /&gt;
| C01-1 || 高级计算器 || 输入输出语句、int 变量&lt;br /&gt;
|-&lt;br /&gt;
| C01-2 || 如果那么 || 不带 else 的 if 语句&lt;br /&gt;
|-&lt;br /&gt;
| C01-3 || 相差多少 || 带 else 的 if 语句&lt;br /&gt;
|-&lt;br /&gt;
| C01-4 || 一直做下去 || while 语句&lt;br /&gt;
|-&lt;br /&gt;
| C01-5 || 想做几次做几次 || for 语句&lt;br /&gt;
|-&lt;br /&gt;
| C01-6 || 循环套循环 || 循环嵌套&lt;br /&gt;
|-&lt;br /&gt;
| C01-7 || 先存起来 || 一维数组&lt;br /&gt;
|-&lt;br /&gt;
| C01-8 || 数组妙用 || 权值数组、无返回值无参数的函数&lt;br /&gt;
|-&lt;br /&gt;
| C01-9 || 功能打包 || 有参数有返回值函数&lt;br /&gt;
|-&lt;br /&gt;
| E01-1 || int存不下了 || long long 类型、数据范围、整数编码&lt;br /&gt;
|-&lt;br /&gt;
| E01-2 || 小数怎么办 || double 类型、类型转换&lt;br /&gt;
|-&lt;br /&gt;
| E01-3 || 文字与符号 || char 类型、字符数字转换&lt;br /&gt;
|-&lt;br /&gt;
| E01-4 || 花式输入输出 || 读入到文件末尾、保留 x 位小数&lt;br /&gt;
|-&lt;br /&gt;
| E01-5 || 更多运算符 || 位运算、三目运算符&lt;br /&gt;
|-&lt;br /&gt;
| E01-6 || 高级控制 || break、continue 与 exit(0)&lt;br /&gt;
|-&lt;br /&gt;
| E01-7 || 一串字符 || 字符串&lt;br /&gt;
|-&lt;br /&gt;
| E01-8 || 高维结构 || 多维数组与结构体&lt;br /&gt;
|-&lt;br /&gt;
| E01-9 || 自己调用自己 || 简单递归、参数传引用&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==依赖关系==&lt;br /&gt;
&lt;br /&gt;
# C01-1 高级计算器：输出语句、int 变量、输入语句、加法、减法、乘法、小括号&lt;br /&gt;
#* E01-1 int存不下了：long long 类型、数据范围、整数编码&lt;br /&gt;
#* E01-2 小数怎么办：double 类型、类型转换&lt;br /&gt;
# C01-2 如果那么：不带 else 的 if 语句、除法、取余、相等、不等&lt;br /&gt;
# C01-3 相差多少：带 else 的 if 语句、大于、小于、并且&lt;br /&gt;
#* E01-3 文字与符号：char 类型、字符数字转换&lt;br /&gt;
# C01-4 一直做下去：while 语句、或者、反转&lt;br /&gt;
#* E01-4 花式输入输出：读入到文件末尾、保留 x 位小数&lt;br /&gt;
# C01-5 想做几次做几次：for 语句&lt;br /&gt;
# C01-6 循环套循环：循环嵌套&lt;br /&gt;
#* E01-5 更多运算符：位运算、三目运算符&lt;br /&gt;
#* E01-6 高级控制：break、continue 与 exit(0)&lt;br /&gt;
# C01-7 先存起来：一维数组&lt;br /&gt;
#* E01-7 一串字符：字符串&lt;br /&gt;
#* E01-8 高维结构：多维数组与结构体&lt;br /&gt;
# C01-8 数组妙用：权值数组、无返回值无参数的函数&lt;br /&gt;
# C01-9 功能打包：有参数有返回值函数&lt;br /&gt;
#* E01-9 自己调用自己：简单递归、参数传引用&lt;br /&gt;
&lt;br /&gt;
==核心序列（Core）==&lt;br /&gt;
&lt;br /&gt;
===C01-1 高级计算器===&lt;br /&gt;
&lt;br /&gt;
* 内容&lt;br /&gt;
** 输出语句、字符串字面量&lt;br /&gt;
** int 变量、赋值语句&lt;br /&gt;
** 输入语句&lt;br /&gt;
** 加法、减法、乘法、小括号 &lt;br /&gt;
* 约定&lt;br /&gt;
** 不讲基础框架的细节，只说执行的内容写在花括号里&lt;br /&gt;
** 不讲 endl，使用 \n 换行，转义符也只讲 \n，其他转义符留到 E01-3&lt;br /&gt;
** 数据类型只讲 int&lt;br /&gt;
** 为了极致的简单，不写 return 0;，等到 E01-9 之后再说只有主函数能省略 return 0;。&lt;br /&gt;
&lt;br /&gt;
===C01-2 如果那么===&lt;br /&gt;
&lt;br /&gt;
* 内容&lt;br /&gt;
** 【承接上一课】深刻理解赋值语句、交换两个变量&lt;br /&gt;
** 除法、取余&lt;br /&gt;
** 简单分离数位&lt;br /&gt;
** 不带 else 的 if 语句&lt;br /&gt;
** 相等、不等&lt;br /&gt;
** 奇数偶数判断、负数取相反数&lt;br /&gt;
* 约定&lt;br /&gt;
** else、大于、小于、并且、或者、反转都丢到之后讲&lt;br /&gt;
** 讲除法时不讲小数，小数留给 E01-2&lt;br /&gt;
** if 语句不讲省略大括号，后面学完循环再讲&lt;br /&gt;
** 简单带过一下成立是 1、不成立是 0、非 0 是真、0 是假&lt;br /&gt;
&lt;br /&gt;
===C01-3 相差多少===&lt;br /&gt;
&lt;br /&gt;
* 带 else 的 if 语句&lt;br /&gt;
* 大于、小于&lt;br /&gt;
* 并且&lt;br /&gt;
&lt;br /&gt;
===C01-4 一直做下去===&lt;br /&gt;
&lt;br /&gt;
* while 语句&lt;br /&gt;
* 或者、反转&lt;br /&gt;
&lt;br /&gt;
===C01-5 想做几次做几次===&lt;br /&gt;
&lt;br /&gt;
* for 语句&lt;br /&gt;
&lt;br /&gt;
===C01-6 循环套循环===&lt;br /&gt;
&lt;br /&gt;
* 循环嵌套&lt;br /&gt;
&lt;br /&gt;
===C01-7 先存起来===&lt;br /&gt;
&lt;br /&gt;
* 一维数组&lt;br /&gt;
&lt;br /&gt;
===C01-8 数组妙用===&lt;br /&gt;
&lt;br /&gt;
* 权值数组、无返回值无参数的函数&lt;br /&gt;
&lt;br /&gt;
===C01-9 功能打包===&lt;br /&gt;
&lt;br /&gt;
* 有参数有返回值函数&lt;br /&gt;
&lt;br /&gt;
==扩展维度（Extend）==&lt;br /&gt;
&lt;br /&gt;
===E01-1 int存不下了===&lt;br /&gt;
&lt;br /&gt;
* long long 类型&lt;br /&gt;
* 数据范围&lt;br /&gt;
* 整数编码&lt;br /&gt;
&lt;br /&gt;
===E01-2 小数怎么办===&lt;br /&gt;
&lt;br /&gt;
* double 类型&lt;br /&gt;
* 类型转换&lt;br /&gt;
&lt;br /&gt;
===E01-3 文字与符号===&lt;br /&gt;
&lt;br /&gt;
* char 类型&lt;br /&gt;
* 字符数字转换&lt;br /&gt;
&lt;br /&gt;
===E01-4 花式输入输出===&lt;br /&gt;
&lt;br /&gt;
* 读入到文件末尾&lt;br /&gt;
* 保留 x 位小数&lt;br /&gt;
&lt;br /&gt;
===E01-5 更多运算符===&lt;br /&gt;
&lt;br /&gt;
* 位运算&lt;br /&gt;
* 三元运算符&lt;br /&gt;
&lt;br /&gt;
===E01-6 高级控制===&lt;br /&gt;
&lt;br /&gt;
* break、continue&lt;br /&gt;
* exit(0)&lt;br /&gt;
&lt;br /&gt;
===E01-7 一串字符===&lt;br /&gt;
&lt;br /&gt;
* 字符串&lt;br /&gt;
&lt;br /&gt;
===E01-8 高维结构===&lt;br /&gt;
&lt;br /&gt;
* 多维数组&lt;br /&gt;
* 结构体&lt;br /&gt;
&lt;br /&gt;
===E01-9 自己调用自己===&lt;br /&gt;
&lt;br /&gt;
* 简单递归&lt;br /&gt;
* 参数传引用&lt;/div&gt;</summary>
		<author><name>33DAI</name></author>
	</entry>
	<entry>
		<id>https://www.33dai.wiki/index.php?title=%E5%9F%BA%E7%A1%80%E8%AF%AD%E6%B3%95%E5%A4%A7%E7%BA%B2&amp;diff=174</id>
		<title>基础语法大纲</title>
		<link rel="alternate" type="text/html" href="https://www.33dai.wiki/index.php?title=%E5%9F%BA%E7%A1%80%E8%AF%AD%E6%B3%95%E5%A4%A7%E7%BA%B2&amp;diff=174"/>
		<updated>2026-03-27T06:26:04Z</updated>

		<summary type="html">&lt;p&gt;33DAI：​/* C01-2 如果那么 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==简易大纲==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ 基础语法大纲&lt;br /&gt;
|-&lt;br /&gt;
! 课程编号 !! 课程标题 !! 课程内容&lt;br /&gt;
|-&lt;br /&gt;
| C01-1 || 高级计算器 || 输入输出语句、int 变量&lt;br /&gt;
|-&lt;br /&gt;
| C01-2 || 如果那么 || 不带 else 的 if 语句&lt;br /&gt;
|-&lt;br /&gt;
| C01-3 || 相差多少 || 带 else 的 if 语句&lt;br /&gt;
|-&lt;br /&gt;
| C01-4 || 一直做下去 || while 语句&lt;br /&gt;
|-&lt;br /&gt;
| C01-5 || 想做几次做几次 || for 语句&lt;br /&gt;
|-&lt;br /&gt;
| C01-6 || 循环套循环 || 循环嵌套&lt;br /&gt;
|-&lt;br /&gt;
| C01-7 || 先存起来 || 一维数组&lt;br /&gt;
|-&lt;br /&gt;
| C01-8 || 数组妙用 || 权值数组、无返回值无参数的函数&lt;br /&gt;
|-&lt;br /&gt;
| C01-9 || 功能打包 || 有参数有返回值函数&lt;br /&gt;
|-&lt;br /&gt;
| E01-1 || int存不下了 || long long 类型、数据范围、整数编码&lt;br /&gt;
|-&lt;br /&gt;
| E01-2 || 小数怎么办 || double 类型、类型转换&lt;br /&gt;
|-&lt;br /&gt;
| E01-3 || 文字与符号 || char 类型、字符数字转换&lt;br /&gt;
|-&lt;br /&gt;
| E01-4 || 花式输入输出 || 读入到文件末尾、保留 x 位小数&lt;br /&gt;
|-&lt;br /&gt;
| E01-5 || 更多运算符 || 位运算、三目运算符&lt;br /&gt;
|-&lt;br /&gt;
| E01-6 || 高级控制 || break、continue 与 exit(0)&lt;br /&gt;
|-&lt;br /&gt;
| E01-7 || 一串字符 || 字符串&lt;br /&gt;
|-&lt;br /&gt;
| E01-8 || 高维结构 || 多维数组与结构体&lt;br /&gt;
|-&lt;br /&gt;
| E01-9 || 自己调用自己 || 简单递归、参数传引用&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==依赖关系==&lt;br /&gt;
&lt;br /&gt;
# C01-1 高级计算器：输出语句、int 变量、输入语句、加法、减法、乘法、小括号&lt;br /&gt;
#* E01-1 int存不下了：long long 类型、数据范围、整数编码&lt;br /&gt;
#* E01-2 小数怎么办：double 类型、类型转换&lt;br /&gt;
# C01-2 如果那么：不带 else 的 if 语句、除法、取余、相等、不等&lt;br /&gt;
# C01-3 相差多少：带 else 的 if 语句、大于、小于、并且&lt;br /&gt;
#* E01-3 文字与符号：char 类型、字符数字转换&lt;br /&gt;
# C01-4 一直做下去：while 语句、或者、反转&lt;br /&gt;
#* E01-4 花式输入输出：读入到文件末尾、保留 x 位小数&lt;br /&gt;
# C01-5 想做几次做几次：for 语句&lt;br /&gt;
# C01-6 循环套循环：循环嵌套&lt;br /&gt;
#* E01-5 更多运算符：位运算、三目运算符&lt;br /&gt;
#* E01-6 高级控制：break、continue 与 exit(0)&lt;br /&gt;
# C01-7 先存起来：一维数组&lt;br /&gt;
#* E01-7 一串字符：字符串&lt;br /&gt;
#* E01-8 高维结构：多维数组与结构体&lt;br /&gt;
# C01-8 数组妙用：权值数组、无返回值无参数的函数&lt;br /&gt;
# C01-9 功能打包：有参数有返回值函数&lt;br /&gt;
#* E01-9 自己调用自己：简单递归、参数传引用&lt;br /&gt;
&lt;br /&gt;
==核心序列（Core）==&lt;br /&gt;
&lt;br /&gt;
===C01-1 高级计算器===&lt;br /&gt;
&lt;br /&gt;
* 内容&lt;br /&gt;
** 输出语句、字符串字面量&lt;br /&gt;
** int 变量、赋值语句&lt;br /&gt;
** 输入语句&lt;br /&gt;
** 加法、减法、乘法、小括号 &lt;br /&gt;
* 约定&lt;br /&gt;
** 不讲基础框架的细节，只说执行的内容写在花括号里&lt;br /&gt;
** 不讲 endl，使用 \n 换行，转义符也只讲 \n，其他转义符留到 E01-3&lt;br /&gt;
** 数据类型只讲 int&lt;br /&gt;
** 为了极致的简单，不写 return 0;，等到 E01-9 之后再说只有主函数能省略 return 0;。&lt;br /&gt;
&lt;br /&gt;
===C01-2 如果那么===&lt;br /&gt;
&lt;br /&gt;
* 内容&lt;br /&gt;
** 【承接上一课】深刻理解赋值语句、交换两个变量&lt;br /&gt;
** 除法、取余&lt;br /&gt;
** 简单分离数位&lt;br /&gt;
** 不带 else 的 if 语句&lt;br /&gt;
** 相等、不等&lt;br /&gt;
** 奇数偶数判断、负数取相反数&lt;br /&gt;
* 约定&lt;br /&gt;
** else、大于、小于、并且、或者、反转都丢到之后讲&lt;br /&gt;
** 讲除法时不讲小数，小数留给 E01-2&lt;br /&gt;
** if 语句不讲省略大括号，后面学完循环再讲&lt;br /&gt;
&lt;br /&gt;
===C01-3 相差多少===&lt;br /&gt;
&lt;br /&gt;
* 带 else 的 if 语句&lt;br /&gt;
* 大于、小于&lt;br /&gt;
* 并且&lt;br /&gt;
&lt;br /&gt;
===C01-4 一直做下去===&lt;br /&gt;
&lt;br /&gt;
* while 语句&lt;br /&gt;
* 或者、反转&lt;br /&gt;
&lt;br /&gt;
===C01-5 想做几次做几次===&lt;br /&gt;
&lt;br /&gt;
* for 语句&lt;br /&gt;
&lt;br /&gt;
===C01-6 循环套循环===&lt;br /&gt;
&lt;br /&gt;
* 循环嵌套&lt;br /&gt;
&lt;br /&gt;
===C01-7 先存起来===&lt;br /&gt;
&lt;br /&gt;
* 一维数组&lt;br /&gt;
&lt;br /&gt;
===C01-8 数组妙用===&lt;br /&gt;
&lt;br /&gt;
* 权值数组、无返回值无参数的函数&lt;br /&gt;
&lt;br /&gt;
===C01-9 功能打包===&lt;br /&gt;
&lt;br /&gt;
* 有参数有返回值函数&lt;br /&gt;
&lt;br /&gt;
==扩展维度（Extend）==&lt;br /&gt;
&lt;br /&gt;
===E01-1 int存不下了===&lt;br /&gt;
&lt;br /&gt;
* long long 类型&lt;br /&gt;
* 数据范围&lt;br /&gt;
* 整数编码&lt;br /&gt;
&lt;br /&gt;
===E01-2 小数怎么办===&lt;br /&gt;
&lt;br /&gt;
* double 类型&lt;br /&gt;
* 类型转换&lt;br /&gt;
&lt;br /&gt;
===E01-3 文字与符号===&lt;br /&gt;
&lt;br /&gt;
* char 类型&lt;br /&gt;
* 字符数字转换&lt;br /&gt;
&lt;br /&gt;
===E01-4 花式输入输出===&lt;br /&gt;
&lt;br /&gt;
* 读入到文件末尾&lt;br /&gt;
* 保留 x 位小数&lt;br /&gt;
&lt;br /&gt;
===E01-5 更多运算符===&lt;br /&gt;
&lt;br /&gt;
* 位运算&lt;br /&gt;
* 三元运算符&lt;br /&gt;
&lt;br /&gt;
===E01-6 高级控制===&lt;br /&gt;
&lt;br /&gt;
* break、continue&lt;br /&gt;
* exit(0)&lt;br /&gt;
&lt;br /&gt;
===E01-7 一串字符===&lt;br /&gt;
&lt;br /&gt;
* 字符串&lt;br /&gt;
&lt;br /&gt;
===E01-8 高维结构===&lt;br /&gt;
&lt;br /&gt;
* 多维数组&lt;br /&gt;
* 结构体&lt;br /&gt;
&lt;br /&gt;
===E01-9 自己调用自己===&lt;br /&gt;
&lt;br /&gt;
* 简单递归&lt;br /&gt;
* 参数传引用&lt;/div&gt;</summary>
		<author><name>33DAI</name></author>
	</entry>
	<entry>
		<id>https://www.33dai.wiki/index.php?title=%E5%9F%BA%E7%A1%80%E8%AF%AD%E6%B3%95%E5%A4%A7%E7%BA%B2&amp;diff=173</id>
		<title>基础语法大纲</title>
		<link rel="alternate" type="text/html" href="https://www.33dai.wiki/index.php?title=%E5%9F%BA%E7%A1%80%E8%AF%AD%E6%B3%95%E5%A4%A7%E7%BA%B2&amp;diff=173"/>
		<updated>2026-03-27T02:47:25Z</updated>

		<summary type="html">&lt;p&gt;33DAI：​/* C01-2 如果那么 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==简易大纲==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ 基础语法大纲&lt;br /&gt;
|-&lt;br /&gt;
! 课程编号 !! 课程标题 !! 课程内容&lt;br /&gt;
|-&lt;br /&gt;
| C01-1 || 高级计算器 || 输入输出语句、int 变量&lt;br /&gt;
|-&lt;br /&gt;
| C01-2 || 如果那么 || 不带 else 的 if 语句&lt;br /&gt;
|-&lt;br /&gt;
| C01-3 || 相差多少 || 带 else 的 if 语句&lt;br /&gt;
|-&lt;br /&gt;
| C01-4 || 一直做下去 || while 语句&lt;br /&gt;
|-&lt;br /&gt;
| C01-5 || 想做几次做几次 || for 语句&lt;br /&gt;
|-&lt;br /&gt;
| C01-6 || 循环套循环 || 循环嵌套&lt;br /&gt;
|-&lt;br /&gt;
| C01-7 || 先存起来 || 一维数组&lt;br /&gt;
|-&lt;br /&gt;
| C01-8 || 数组妙用 || 权值数组、无返回值无参数的函数&lt;br /&gt;
|-&lt;br /&gt;
| C01-9 || 功能打包 || 有参数有返回值函数&lt;br /&gt;
|-&lt;br /&gt;
| E01-1 || int存不下了 || long long 类型、数据范围、整数编码&lt;br /&gt;
|-&lt;br /&gt;
| E01-2 || 小数怎么办 || double 类型、类型转换&lt;br /&gt;
|-&lt;br /&gt;
| E01-3 || 文字与符号 || char 类型、字符数字转换&lt;br /&gt;
|-&lt;br /&gt;
| E01-4 || 花式输入输出 || 读入到文件末尾、保留 x 位小数&lt;br /&gt;
|-&lt;br /&gt;
| E01-5 || 更多运算符 || 位运算、三目运算符&lt;br /&gt;
|-&lt;br /&gt;
| E01-6 || 高级控制 || break、continue 与 exit(0)&lt;br /&gt;
|-&lt;br /&gt;
| E01-7 || 一串字符 || 字符串&lt;br /&gt;
|-&lt;br /&gt;
| E01-8 || 高维结构 || 多维数组与结构体&lt;br /&gt;
|-&lt;br /&gt;
| E01-9 || 自己调用自己 || 简单递归、参数传引用&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==依赖关系==&lt;br /&gt;
&lt;br /&gt;
# C01-1 高级计算器：输出语句、int 变量、输入语句、加法、减法、乘法、小括号&lt;br /&gt;
#* E01-1 int存不下了：long long 类型、数据范围、整数编码&lt;br /&gt;
#* E01-2 小数怎么办：double 类型、类型转换&lt;br /&gt;
# C01-2 如果那么：不带 else 的 if 语句、除法、取余、相等、不等&lt;br /&gt;
# C01-3 相差多少：带 else 的 if 语句、大于、小于、并且&lt;br /&gt;
#* E01-3 文字与符号：char 类型、字符数字转换&lt;br /&gt;
# C01-4 一直做下去：while 语句、或者、反转&lt;br /&gt;
#* E01-4 花式输入输出：读入到文件末尾、保留 x 位小数&lt;br /&gt;
# C01-5 想做几次做几次：for 语句&lt;br /&gt;
# C01-6 循环套循环：循环嵌套&lt;br /&gt;
#* E01-5 更多运算符：位运算、三目运算符&lt;br /&gt;
#* E01-6 高级控制：break、continue 与 exit(0)&lt;br /&gt;
# C01-7 先存起来：一维数组&lt;br /&gt;
#* E01-7 一串字符：字符串&lt;br /&gt;
#* E01-8 高维结构：多维数组与结构体&lt;br /&gt;
# C01-8 数组妙用：权值数组、无返回值无参数的函数&lt;br /&gt;
# C01-9 功能打包：有参数有返回值函数&lt;br /&gt;
#* E01-9 自己调用自己：简单递归、参数传引用&lt;br /&gt;
&lt;br /&gt;
==核心序列（Core）==&lt;br /&gt;
&lt;br /&gt;
===C01-1 高级计算器===&lt;br /&gt;
&lt;br /&gt;
* 内容&lt;br /&gt;
** 输出语句、字符串字面量&lt;br /&gt;
** int 变量、赋值语句&lt;br /&gt;
** 输入语句&lt;br /&gt;
** 加法、减法、乘法、小括号 &lt;br /&gt;
* 约定&lt;br /&gt;
** 不讲基础框架的细节，只说执行的内容写在花括号里&lt;br /&gt;
** 不讲 endl，使用 \n 换行，转义符也只讲 \n，其他转义符留到 E01-3&lt;br /&gt;
** 数据类型只讲 int&lt;br /&gt;
** 为了极致的简单，不写 return 0;，等到 E01-9 之后再说只有主函数能省略 return 0;。&lt;br /&gt;
&lt;br /&gt;
===C01-2 如果那么===&lt;br /&gt;
&lt;br /&gt;
* 内容&lt;br /&gt;
** 【承接上一课】深刻理解赋值语句、交换两个变量&lt;br /&gt;
** 除法、取余&lt;br /&gt;
** 简单分离数位&lt;br /&gt;
** 不带 else 的 if 语句&lt;br /&gt;
** 相等、不等&lt;br /&gt;
** 奇数偶数判断、负数取相反数&lt;br /&gt;
* 约定&lt;br /&gt;
** else、大于、小于、并且、或者、反转都丢到之后讲&lt;br /&gt;
** 讲除法时不讲小数，小数留给 E01-2&lt;br /&gt;
&lt;br /&gt;
===C01-3 相差多少===&lt;br /&gt;
&lt;br /&gt;
* 带 else 的 if 语句&lt;br /&gt;
* 大于、小于&lt;br /&gt;
* 并且&lt;br /&gt;
&lt;br /&gt;
===C01-4 一直做下去===&lt;br /&gt;
&lt;br /&gt;
* while 语句&lt;br /&gt;
* 或者、反转&lt;br /&gt;
&lt;br /&gt;
===C01-5 想做几次做几次===&lt;br /&gt;
&lt;br /&gt;
* for 语句&lt;br /&gt;
&lt;br /&gt;
===C01-6 循环套循环===&lt;br /&gt;
&lt;br /&gt;
* 循环嵌套&lt;br /&gt;
&lt;br /&gt;
===C01-7 先存起来===&lt;br /&gt;
&lt;br /&gt;
* 一维数组&lt;br /&gt;
&lt;br /&gt;
===C01-8 数组妙用===&lt;br /&gt;
&lt;br /&gt;
* 权值数组、无返回值无参数的函数&lt;br /&gt;
&lt;br /&gt;
===C01-9 功能打包===&lt;br /&gt;
&lt;br /&gt;
* 有参数有返回值函数&lt;br /&gt;
&lt;br /&gt;
==扩展维度（Extend）==&lt;br /&gt;
&lt;br /&gt;
===E01-1 int存不下了===&lt;br /&gt;
&lt;br /&gt;
* long long 类型&lt;br /&gt;
* 数据范围&lt;br /&gt;
* 整数编码&lt;br /&gt;
&lt;br /&gt;
===E01-2 小数怎么办===&lt;br /&gt;
&lt;br /&gt;
* double 类型&lt;br /&gt;
* 类型转换&lt;br /&gt;
&lt;br /&gt;
===E01-3 文字与符号===&lt;br /&gt;
&lt;br /&gt;
* char 类型&lt;br /&gt;
* 字符数字转换&lt;br /&gt;
&lt;br /&gt;
===E01-4 花式输入输出===&lt;br /&gt;
&lt;br /&gt;
* 读入到文件末尾&lt;br /&gt;
* 保留 x 位小数&lt;br /&gt;
&lt;br /&gt;
===E01-5 更多运算符===&lt;br /&gt;
&lt;br /&gt;
* 位运算&lt;br /&gt;
* 三元运算符&lt;br /&gt;
&lt;br /&gt;
===E01-6 高级控制===&lt;br /&gt;
&lt;br /&gt;
* break、continue&lt;br /&gt;
* exit(0)&lt;br /&gt;
&lt;br /&gt;
===E01-7 一串字符===&lt;br /&gt;
&lt;br /&gt;
* 字符串&lt;br /&gt;
&lt;br /&gt;
===E01-8 高维结构===&lt;br /&gt;
&lt;br /&gt;
* 多维数组&lt;br /&gt;
* 结构体&lt;br /&gt;
&lt;br /&gt;
===E01-9 自己调用自己===&lt;br /&gt;
&lt;br /&gt;
* 简单递归&lt;br /&gt;
* 参数传引用&lt;/div&gt;</summary>
		<author><name>33DAI</name></author>
	</entry>
	<entry>
		<id>https://www.33dai.wiki/index.php?title=%E5%9F%BA%E7%A1%80%E8%AF%AD%E6%B3%95%E5%A4%A7%E7%BA%B2&amp;diff=172</id>
		<title>基础语法大纲</title>
		<link rel="alternate" type="text/html" href="https://www.33dai.wiki/index.php?title=%E5%9F%BA%E7%A1%80%E8%AF%AD%E6%B3%95%E5%A4%A7%E7%BA%B2&amp;diff=172"/>
		<updated>2026-03-27T02:41:14Z</updated>

		<summary type="html">&lt;p&gt;33DAI：​/* C01-2 如果那么 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==简易大纲==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ 基础语法大纲&lt;br /&gt;
|-&lt;br /&gt;
! 课程编号 !! 课程标题 !! 课程内容&lt;br /&gt;
|-&lt;br /&gt;
| C01-1 || 高级计算器 || 输入输出语句、int 变量&lt;br /&gt;
|-&lt;br /&gt;
| C01-2 || 如果那么 || 不带 else 的 if 语句&lt;br /&gt;
|-&lt;br /&gt;
| C01-3 || 相差多少 || 带 else 的 if 语句&lt;br /&gt;
|-&lt;br /&gt;
| C01-4 || 一直做下去 || while 语句&lt;br /&gt;
|-&lt;br /&gt;
| C01-5 || 想做几次做几次 || for 语句&lt;br /&gt;
|-&lt;br /&gt;
| C01-6 || 循环套循环 || 循环嵌套&lt;br /&gt;
|-&lt;br /&gt;
| C01-7 || 先存起来 || 一维数组&lt;br /&gt;
|-&lt;br /&gt;
| C01-8 || 数组妙用 || 权值数组、无返回值无参数的函数&lt;br /&gt;
|-&lt;br /&gt;
| C01-9 || 功能打包 || 有参数有返回值函数&lt;br /&gt;
|-&lt;br /&gt;
| E01-1 || int存不下了 || long long 类型、数据范围、整数编码&lt;br /&gt;
|-&lt;br /&gt;
| E01-2 || 小数怎么办 || double 类型、类型转换&lt;br /&gt;
|-&lt;br /&gt;
| E01-3 || 文字与符号 || char 类型、字符数字转换&lt;br /&gt;
|-&lt;br /&gt;
| E01-4 || 花式输入输出 || 读入到文件末尾、保留 x 位小数&lt;br /&gt;
|-&lt;br /&gt;
| E01-5 || 更多运算符 || 位运算、三目运算符&lt;br /&gt;
|-&lt;br /&gt;
| E01-6 || 高级控制 || break、continue 与 exit(0)&lt;br /&gt;
|-&lt;br /&gt;
| E01-7 || 一串字符 || 字符串&lt;br /&gt;
|-&lt;br /&gt;
| E01-8 || 高维结构 || 多维数组与结构体&lt;br /&gt;
|-&lt;br /&gt;
| E01-9 || 自己调用自己 || 简单递归、参数传引用&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==依赖关系==&lt;br /&gt;
&lt;br /&gt;
# C01-1 高级计算器：输出语句、int 变量、输入语句、加法、减法、乘法、小括号&lt;br /&gt;
#* E01-1 int存不下了：long long 类型、数据范围、整数编码&lt;br /&gt;
#* E01-2 小数怎么办：double 类型、类型转换&lt;br /&gt;
# C01-2 如果那么：不带 else 的 if 语句、除法、取余、相等、不等&lt;br /&gt;
# C01-3 相差多少：带 else 的 if 语句、大于、小于、并且&lt;br /&gt;
#* E01-3 文字与符号：char 类型、字符数字转换&lt;br /&gt;
# C01-4 一直做下去：while 语句、或者、反转&lt;br /&gt;
#* E01-4 花式输入输出：读入到文件末尾、保留 x 位小数&lt;br /&gt;
# C01-5 想做几次做几次：for 语句&lt;br /&gt;
# C01-6 循环套循环：循环嵌套&lt;br /&gt;
#* E01-5 更多运算符：位运算、三目运算符&lt;br /&gt;
#* E01-6 高级控制：break、continue 与 exit(0)&lt;br /&gt;
# C01-7 先存起来：一维数组&lt;br /&gt;
#* E01-7 一串字符：字符串&lt;br /&gt;
#* E01-8 高维结构：多维数组与结构体&lt;br /&gt;
# C01-8 数组妙用：权值数组、无返回值无参数的函数&lt;br /&gt;
# C01-9 功能打包：有参数有返回值函数&lt;br /&gt;
#* E01-9 自己调用自己：简单递归、参数传引用&lt;br /&gt;
&lt;br /&gt;
==核心序列（Core）==&lt;br /&gt;
&lt;br /&gt;
===C01-1 高级计算器===&lt;br /&gt;
&lt;br /&gt;
* 内容&lt;br /&gt;
** 输出语句、字符串字面量&lt;br /&gt;
** int 变量、赋值语句&lt;br /&gt;
** 输入语句&lt;br /&gt;
** 加法、减法、乘法、小括号 &lt;br /&gt;
* 约定&lt;br /&gt;
** 不讲基础框架的细节，只说执行的内容写在花括号里&lt;br /&gt;
** 不讲 endl，使用 \n 换行，转义符也只讲 \n，其他转义符留到 E01-3&lt;br /&gt;
** 数据类型只讲 int&lt;br /&gt;
** 为了极致的简单，不写 return 0;，等到 E01-9 之后再说只有主函数能省略 return 0;。&lt;br /&gt;
&lt;br /&gt;
===C01-2 如果那么===&lt;br /&gt;
&lt;br /&gt;
* 内容&lt;br /&gt;
** 除法、取余&lt;br /&gt;
** 简单分离数位&lt;br /&gt;
** 不带 else 的 if 语句&lt;br /&gt;
** 相等、不等&lt;br /&gt;
** 奇数偶数判断、负数取相反数&lt;br /&gt;
* 约定&lt;br /&gt;
** else、大于、小于、并且、或者、反转都丢到之后讲&lt;br /&gt;
** 讲除法时不讲小数，小数留给 E01-2&lt;br /&gt;
&lt;br /&gt;
===C01-3 相差多少===&lt;br /&gt;
&lt;br /&gt;
* 带 else 的 if 语句&lt;br /&gt;
* 大于、小于&lt;br /&gt;
* 并且&lt;br /&gt;
&lt;br /&gt;
===C01-4 一直做下去===&lt;br /&gt;
&lt;br /&gt;
* while 语句&lt;br /&gt;
* 或者、反转&lt;br /&gt;
&lt;br /&gt;
===C01-5 想做几次做几次===&lt;br /&gt;
&lt;br /&gt;
* for 语句&lt;br /&gt;
&lt;br /&gt;
===C01-6 循环套循环===&lt;br /&gt;
&lt;br /&gt;
* 循环嵌套&lt;br /&gt;
&lt;br /&gt;
===C01-7 先存起来===&lt;br /&gt;
&lt;br /&gt;
* 一维数组&lt;br /&gt;
&lt;br /&gt;
===C01-8 数组妙用===&lt;br /&gt;
&lt;br /&gt;
* 权值数组、无返回值无参数的函数&lt;br /&gt;
&lt;br /&gt;
===C01-9 功能打包===&lt;br /&gt;
&lt;br /&gt;
* 有参数有返回值函数&lt;br /&gt;
&lt;br /&gt;
==扩展维度（Extend）==&lt;br /&gt;
&lt;br /&gt;
===E01-1 int存不下了===&lt;br /&gt;
&lt;br /&gt;
* long long 类型&lt;br /&gt;
* 数据范围&lt;br /&gt;
* 整数编码&lt;br /&gt;
&lt;br /&gt;
===E01-2 小数怎么办===&lt;br /&gt;
&lt;br /&gt;
* double 类型&lt;br /&gt;
* 类型转换&lt;br /&gt;
&lt;br /&gt;
===E01-3 文字与符号===&lt;br /&gt;
&lt;br /&gt;
* char 类型&lt;br /&gt;
* 字符数字转换&lt;br /&gt;
&lt;br /&gt;
===E01-4 花式输入输出===&lt;br /&gt;
&lt;br /&gt;
* 读入到文件末尾&lt;br /&gt;
* 保留 x 位小数&lt;br /&gt;
&lt;br /&gt;
===E01-5 更多运算符===&lt;br /&gt;
&lt;br /&gt;
* 位运算&lt;br /&gt;
* 三元运算符&lt;br /&gt;
&lt;br /&gt;
===E01-6 高级控制===&lt;br /&gt;
&lt;br /&gt;
* break、continue&lt;br /&gt;
* exit(0)&lt;br /&gt;
&lt;br /&gt;
===E01-7 一串字符===&lt;br /&gt;
&lt;br /&gt;
* 字符串&lt;br /&gt;
&lt;br /&gt;
===E01-8 高维结构===&lt;br /&gt;
&lt;br /&gt;
* 多维数组&lt;br /&gt;
* 结构体&lt;br /&gt;
&lt;br /&gt;
===E01-9 自己调用自己===&lt;br /&gt;
&lt;br /&gt;
* 简单递归&lt;br /&gt;
* 参数传引用&lt;/div&gt;</summary>
		<author><name>33DAI</name></author>
	</entry>
	<entry>
		<id>https://www.33dai.wiki/index.php?title=%E5%9F%BA%E7%A1%80%E8%AF%AD%E6%B3%95%E5%A4%A7%E7%BA%B2&amp;diff=171</id>
		<title>基础语法大纲</title>
		<link rel="alternate" type="text/html" href="https://www.33dai.wiki/index.php?title=%E5%9F%BA%E7%A1%80%E8%AF%AD%E6%B3%95%E5%A4%A7%E7%BA%B2&amp;diff=171"/>
		<updated>2026-03-27T02:38:45Z</updated>

		<summary type="html">&lt;p&gt;33DAI：​/* C01-2 如果那么 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==简易大纲==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ 基础语法大纲&lt;br /&gt;
|-&lt;br /&gt;
! 课程编号 !! 课程标题 !! 课程内容&lt;br /&gt;
|-&lt;br /&gt;
| C01-1 || 高级计算器 || 输入输出语句、int 变量&lt;br /&gt;
|-&lt;br /&gt;
| C01-2 || 如果那么 || 不带 else 的 if 语句&lt;br /&gt;
|-&lt;br /&gt;
| C01-3 || 相差多少 || 带 else 的 if 语句&lt;br /&gt;
|-&lt;br /&gt;
| C01-4 || 一直做下去 || while 语句&lt;br /&gt;
|-&lt;br /&gt;
| C01-5 || 想做几次做几次 || for 语句&lt;br /&gt;
|-&lt;br /&gt;
| C01-6 || 循环套循环 || 循环嵌套&lt;br /&gt;
|-&lt;br /&gt;
| C01-7 || 先存起来 || 一维数组&lt;br /&gt;
|-&lt;br /&gt;
| C01-8 || 数组妙用 || 权值数组、无返回值无参数的函数&lt;br /&gt;
|-&lt;br /&gt;
| C01-9 || 功能打包 || 有参数有返回值函数&lt;br /&gt;
|-&lt;br /&gt;
| E01-1 || int存不下了 || long long 类型、数据范围、整数编码&lt;br /&gt;
|-&lt;br /&gt;
| E01-2 || 小数怎么办 || double 类型、类型转换&lt;br /&gt;
|-&lt;br /&gt;
| E01-3 || 文字与符号 || char 类型、字符数字转换&lt;br /&gt;
|-&lt;br /&gt;
| E01-4 || 花式输入输出 || 读入到文件末尾、保留 x 位小数&lt;br /&gt;
|-&lt;br /&gt;
| E01-5 || 更多运算符 || 位运算、三目运算符&lt;br /&gt;
|-&lt;br /&gt;
| E01-6 || 高级控制 || break、continue 与 exit(0)&lt;br /&gt;
|-&lt;br /&gt;
| E01-7 || 一串字符 || 字符串&lt;br /&gt;
|-&lt;br /&gt;
| E01-8 || 高维结构 || 多维数组与结构体&lt;br /&gt;
|-&lt;br /&gt;
| E01-9 || 自己调用自己 || 简单递归、参数传引用&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==依赖关系==&lt;br /&gt;
&lt;br /&gt;
# C01-1 高级计算器：输出语句、int 变量、输入语句、加法、减法、乘法、小括号&lt;br /&gt;
#* E01-1 int存不下了：long long 类型、数据范围、整数编码&lt;br /&gt;
#* E01-2 小数怎么办：double 类型、类型转换&lt;br /&gt;
# C01-2 如果那么：不带 else 的 if 语句、除法、取余、相等、不等&lt;br /&gt;
# C01-3 相差多少：带 else 的 if 语句、大于、小于、并且&lt;br /&gt;
#* E01-3 文字与符号：char 类型、字符数字转换&lt;br /&gt;
# C01-4 一直做下去：while 语句、或者、反转&lt;br /&gt;
#* E01-4 花式输入输出：读入到文件末尾、保留 x 位小数&lt;br /&gt;
# C01-5 想做几次做几次：for 语句&lt;br /&gt;
# C01-6 循环套循环：循环嵌套&lt;br /&gt;
#* E01-5 更多运算符：位运算、三目运算符&lt;br /&gt;
#* E01-6 高级控制：break、continue 与 exit(0)&lt;br /&gt;
# C01-7 先存起来：一维数组&lt;br /&gt;
#* E01-7 一串字符：字符串&lt;br /&gt;
#* E01-8 高维结构：多维数组与结构体&lt;br /&gt;
# C01-8 数组妙用：权值数组、无返回值无参数的函数&lt;br /&gt;
# C01-9 功能打包：有参数有返回值函数&lt;br /&gt;
#* E01-9 自己调用自己：简单递归、参数传引用&lt;br /&gt;
&lt;br /&gt;
==核心序列（Core）==&lt;br /&gt;
&lt;br /&gt;
===C01-1 高级计算器===&lt;br /&gt;
&lt;br /&gt;
* 内容&lt;br /&gt;
** 输出语句、字符串字面量&lt;br /&gt;
** int 变量、赋值语句&lt;br /&gt;
** 输入语句&lt;br /&gt;
** 加法、减法、乘法、小括号 &lt;br /&gt;
* 约定&lt;br /&gt;
** 不讲基础框架的细节，只说执行的内容写在花括号里&lt;br /&gt;
** 不讲 endl，使用 \n 换行，转义符也只讲 \n，其他转义符留到 E01-3&lt;br /&gt;
** 数据类型只讲 int&lt;br /&gt;
** 为了极致的简单，不写 return 0;，等到 E01-9 之后再说只有主函数能省略 return 0;。&lt;br /&gt;
&lt;br /&gt;
===C01-2 如果那么===&lt;br /&gt;
&lt;br /&gt;
* 内容&lt;br /&gt;
** 除法、取余&lt;br /&gt;
** 简单分离数位&lt;br /&gt;
** 不带 else 的 if 语句&lt;br /&gt;
** 相等、不等&lt;br /&gt;
** 奇数偶数判断、负数取相反数&lt;br /&gt;
* 约定&lt;br /&gt;
** else、大于、小于、并且、或者、反转都丢到之后讲&lt;br /&gt;
&lt;br /&gt;
===C01-3 相差多少===&lt;br /&gt;
&lt;br /&gt;
* 带 else 的 if 语句&lt;br /&gt;
* 大于、小于&lt;br /&gt;
* 并且&lt;br /&gt;
&lt;br /&gt;
===C01-4 一直做下去===&lt;br /&gt;
&lt;br /&gt;
* while 语句&lt;br /&gt;
* 或者、反转&lt;br /&gt;
&lt;br /&gt;
===C01-5 想做几次做几次===&lt;br /&gt;
&lt;br /&gt;
* for 语句&lt;br /&gt;
&lt;br /&gt;
===C01-6 循环套循环===&lt;br /&gt;
&lt;br /&gt;
* 循环嵌套&lt;br /&gt;
&lt;br /&gt;
===C01-7 先存起来===&lt;br /&gt;
&lt;br /&gt;
* 一维数组&lt;br /&gt;
&lt;br /&gt;
===C01-8 数组妙用===&lt;br /&gt;
&lt;br /&gt;
* 权值数组、无返回值无参数的函数&lt;br /&gt;
&lt;br /&gt;
===C01-9 功能打包===&lt;br /&gt;
&lt;br /&gt;
* 有参数有返回值函数&lt;br /&gt;
&lt;br /&gt;
==扩展维度（Extend）==&lt;br /&gt;
&lt;br /&gt;
===E01-1 int存不下了===&lt;br /&gt;
&lt;br /&gt;
* long long 类型&lt;br /&gt;
* 数据范围&lt;br /&gt;
* 整数编码&lt;br /&gt;
&lt;br /&gt;
===E01-2 小数怎么办===&lt;br /&gt;
&lt;br /&gt;
* double 类型&lt;br /&gt;
* 类型转换&lt;br /&gt;
&lt;br /&gt;
===E01-3 文字与符号===&lt;br /&gt;
&lt;br /&gt;
* char 类型&lt;br /&gt;
* 字符数字转换&lt;br /&gt;
&lt;br /&gt;
===E01-4 花式输入输出===&lt;br /&gt;
&lt;br /&gt;
* 读入到文件末尾&lt;br /&gt;
* 保留 x 位小数&lt;br /&gt;
&lt;br /&gt;
===E01-5 更多运算符===&lt;br /&gt;
&lt;br /&gt;
* 位运算&lt;br /&gt;
* 三元运算符&lt;br /&gt;
&lt;br /&gt;
===E01-6 高级控制===&lt;br /&gt;
&lt;br /&gt;
* break、continue&lt;br /&gt;
* exit(0)&lt;br /&gt;
&lt;br /&gt;
===E01-7 一串字符===&lt;br /&gt;
&lt;br /&gt;
* 字符串&lt;br /&gt;
&lt;br /&gt;
===E01-8 高维结构===&lt;br /&gt;
&lt;br /&gt;
* 多维数组&lt;br /&gt;
* 结构体&lt;br /&gt;
&lt;br /&gt;
===E01-9 自己调用自己===&lt;br /&gt;
&lt;br /&gt;
* 简单递归&lt;br /&gt;
* 参数传引用&lt;/div&gt;</summary>
		<author><name>33DAI</name></author>
	</entry>
	<entry>
		<id>https://www.33dai.wiki/index.php?title=%E9%A6%96%E9%A1%B5&amp;diff=170</id>
		<title>首页</title>
		<link rel="alternate" type="text/html" href="https://www.33dai.wiki/index.php?title=%E9%A6%96%E9%A1%B5&amp;diff=170"/>
		<updated>2026-03-21T10:32:32Z</updated>

		<summary type="html">&lt;p&gt;33DAI：​&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;main-page-welcome&amp;quot; style=&amp;quot;padding: 20px; background: #f8f9fa; border-radius: 8px; margin-bottom: 20px;&amp;quot;&amp;gt;&lt;br /&gt;
欢迎来到 &#039;&#039;&#039;三三百科&#039;&#039;&#039;！这里汇集了信奥常用小知识、比赛题解、以及常用工具导航。&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;main-page-grid&amp;quot;&amp;gt;&lt;br /&gt;
{{NavBox&lt;br /&gt;
| title = Wiki 数学&lt;br /&gt;
| color = #ab5a6b&lt;br /&gt;
| icon = ✨&lt;br /&gt;
| content =&lt;br /&gt;
* [[乘法逆元]]&lt;br /&gt;
* [[质数判断]]&lt;br /&gt;
* [[欧拉函数]]&lt;br /&gt;
* [[计算几何]]&lt;br /&gt;
* [[高精度模板]]&lt;br /&gt;
* [[线段树模板]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{NavBox&lt;br /&gt;
| title = Wiki 页面&lt;br /&gt;
| color = #ab5a6b&lt;br /&gt;
| icon = ✨&lt;br /&gt;
| content =&lt;br /&gt;
* [[基础语法大纲]]&lt;br /&gt;
* [[初学者常用内容]]&lt;br /&gt;
* [[STL容器库常用内容]]&lt;br /&gt;
* [[STL例子]]&lt;br /&gt;
* [[33OJ评测机]]&lt;br /&gt;
* [[33OJ题面规范]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{NavBox&lt;br /&gt;
| title = 常用 OJ 平台&lt;br /&gt;
| color = #27ae60&lt;br /&gt;
| icon = 🚀&lt;br /&gt;
| content =&lt;br /&gt;
* [https://oj.33dai.cn 33OJ]&lt;br /&gt;
* [https://luogu.com.cn 洛谷]&lt;br /&gt;
* [https://codeforces.com CodeForces]&lt;br /&gt;
* [https://atcoder.jp AtCoder]&lt;br /&gt;
* [https://htoj.hetao101.com/cpp/ 核桃周赛]&lt;br /&gt;
* [https://bs.daimayuan.top/ 代码源挑战赛]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{NavBox&lt;br /&gt;
| title = 信息查询&lt;br /&gt;
| color = #e67e22&lt;br /&gt;
| icon = 📚&lt;br /&gt;
| content =&lt;br /&gt;
* [https://www.noi.cn NOI 官网]&lt;br /&gt;
* [https://ioinformatics.org/ IOI官网]&lt;br /&gt;
* [http://board.xcpcio.com/ XCPC榜单]&lt;br /&gt;
* [https://oier.baoshuo.dev/ OIerDB]&lt;br /&gt;
* [http://oiwiki.org/ OI Wiki]&lt;br /&gt;
* [https://oeis.org/ OEIS]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{NavBox&lt;br /&gt;
| title = 常用工具&lt;br /&gt;
| color = #8e44ad&lt;br /&gt;
| icon = 🛠️&lt;br /&gt;
| content =&lt;br /&gt;
* [https://cpp.33dai.wiki C++ 参考手册]&lt;br /&gt;
* [https://py.33dai.wiki Python 文档]&lt;br /&gt;
* [https://visualgo.net/zh/ VISUALGO]&lt;br /&gt;
* [https://csacademy.com/app/graph_editor/ Graph Editor] &lt;br /&gt;
* [https://www.geogebra.org/graphing GeoGebra]&lt;br /&gt;
* [https://github.com/open33oj/wiki33 原&amp;quot;三三文档&amp;quot;内容]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;([\s\S\n\r]*?)&amp;amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot; line&amp;gt;$1&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>33DAI</name></author>
	</entry>
	<entry>
		<id>https://www.33dai.wiki/index.php?title=%E5%9F%BA%E7%A1%80%E8%AF%AD%E6%B3%95%E5%A4%A7%E7%BA%B2&amp;diff=168</id>
		<title>基础语法大纲</title>
		<link rel="alternate" type="text/html" href="https://www.33dai.wiki/index.php?title=%E5%9F%BA%E7%A1%80%E8%AF%AD%E6%B3%95%E5%A4%A7%E7%BA%B2&amp;diff=168"/>
		<updated>2026-03-18T11:07:54Z</updated>

		<summary type="html">&lt;p&gt;33DAI：​/* 简易大纲 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==简易大纲==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ 基础语法大纲&lt;br /&gt;
|-&lt;br /&gt;
! 课程编号 !! 课程标题 !! 课程内容&lt;br /&gt;
|-&lt;br /&gt;
| C01-1 || 高级计算器 || 输出语句、int 变量、输入语句、加法、减法、乘法、小括号&lt;br /&gt;
|-&lt;br /&gt;
| C01-2 || 如果那么 || 不带 else 的 if 语句、除法、取余、相等、不等&lt;br /&gt;
|-&lt;br /&gt;
| C01-3 || 相差多少 || 带 else 的 if 语句、大于、小于、并且&lt;br /&gt;
|-&lt;br /&gt;
| C01-4 || 一直做下去 || while 语句、或者、反转&lt;br /&gt;
|-&lt;br /&gt;
| C01-5 || 想做几次做几次 || for 语句&lt;br /&gt;
|-&lt;br /&gt;
| C01-6 || 循环套循环 || 循环嵌套&lt;br /&gt;
|-&lt;br /&gt;
| C01-7 || 先存起来 || 一维数组&lt;br /&gt;
|-&lt;br /&gt;
| C01-8 || 数组妙用 || 权值数组、无返回值无参数的函数&lt;br /&gt;
|-&lt;br /&gt;
| C01-9 || 功能打包 || 有参数有返回值函数&lt;br /&gt;
|-&lt;br /&gt;
| E01-1 || int存不下了 || long long 类型、数据范围、整数编码&lt;br /&gt;
|-&lt;br /&gt;
| E01-2 || 小数怎么办 || double 类型、类型转换&lt;br /&gt;
|-&lt;br /&gt;
| E01-3 || 文字与符号 || char 类型、字符数字转换&lt;br /&gt;
|-&lt;br /&gt;
| E01-4 || 花式输入输出 || 读入到文件末尾、保留 x 位小数&lt;br /&gt;
|-&lt;br /&gt;
| E01-5 || 更多运算符 || 位运算、三目运算符&lt;br /&gt;
|-&lt;br /&gt;
| E01-6 || 高级控制 || break、continue 与 exit(0)&lt;br /&gt;
|-&lt;br /&gt;
| E01-7 || 一串字符 || 字符串&lt;br /&gt;
|-&lt;br /&gt;
| E01-8 || 高维结构 || 多维数组与结构体&lt;br /&gt;
|-&lt;br /&gt;
| E01-9 || 自己调用自己 || 简单递归、参数传引用&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==依赖关系==&lt;br /&gt;
&lt;br /&gt;
# C01-1 高级计算器：输出语句、int 变量、输入语句、加法、减法、乘法、小括号&lt;br /&gt;
#* E01-1 int存不下了：long long 类型、数据范围、整数编码&lt;br /&gt;
#* E01-2 小数怎么办：double 类型、类型转换&lt;br /&gt;
# C01-2 如果那么：不带 else 的 if 语句、除法、取余、相等、不等&lt;br /&gt;
# C01-3 相差多少：带 else 的 if 语句、大于、小于、并且&lt;br /&gt;
#* E01-3 文字与符号：char 类型、字符数字转换&lt;br /&gt;
# C01-4 一直做下去：while 语句、或者、反转&lt;br /&gt;
#* E01-4 花式输入输出：读入到文件末尾、保留 x 位小数&lt;br /&gt;
# C01-5 想做几次做几次：for 语句&lt;br /&gt;
# C01-6 循环套循环：循环嵌套&lt;br /&gt;
#* E01-5 更多运算符：位运算、三目运算符&lt;br /&gt;
#* E01-6 高级控制：break、continue 与 exit(0)&lt;br /&gt;
# C01-7 先存起来：一维数组&lt;br /&gt;
#* E01-7 一串字符：字符串&lt;br /&gt;
#* E01-8 高维结构：多维数组与结构体&lt;br /&gt;
# C01-8 数组妙用：权值数组、无返回值无参数的函数&lt;br /&gt;
# C01-9 功能打包：有参数有返回值函数&lt;br /&gt;
#* E01-9 自己调用自己：简单递归、参数传引用&lt;br /&gt;
&lt;br /&gt;
==核心序列（Core）==&lt;br /&gt;
&lt;br /&gt;
===C01-1 高级计算器===&lt;br /&gt;
&lt;br /&gt;
* 内容&lt;br /&gt;
** 输出语句、字符串字面量&lt;br /&gt;
** int 变量、赋值语句&lt;br /&gt;
** 输入语句&lt;br /&gt;
** 加法、减法、乘法、小括号 &lt;br /&gt;
* 约定&lt;br /&gt;
** 不讲基础框架的细节，只说执行的内容写在花括号里&lt;br /&gt;
** 不讲 endl，使用 \n 换行，转义符也只讲 \n，其他转义符留到 E01-3&lt;br /&gt;
** 数据类型只讲 int&lt;br /&gt;
** 为了极致的简单，不写 return 0;，等到 E01-9 之后再说只有主函数能省略 return 0;。&lt;br /&gt;
&lt;br /&gt;
===C01-2 如果那么===&lt;br /&gt;
&lt;br /&gt;
* 不带 else 的 if 语句&lt;br /&gt;
* 除法、取余&lt;br /&gt;
* 相等、不等&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===C01-3 相差多少===&lt;br /&gt;
&lt;br /&gt;
* 带 else 的 if 语句&lt;br /&gt;
* 大于、小于&lt;br /&gt;
* 并且&lt;br /&gt;
&lt;br /&gt;
===C01-4 一直做下去===&lt;br /&gt;
&lt;br /&gt;
* while 语句&lt;br /&gt;
* 或者、反转&lt;br /&gt;
&lt;br /&gt;
===C01-5 想做几次做几次===&lt;br /&gt;
&lt;br /&gt;
* for 语句&lt;br /&gt;
&lt;br /&gt;
===C01-6 循环套循环===&lt;br /&gt;
&lt;br /&gt;
* 循环嵌套&lt;br /&gt;
&lt;br /&gt;
===C01-7 先存起来===&lt;br /&gt;
&lt;br /&gt;
* 一维数组&lt;br /&gt;
&lt;br /&gt;
===C01-8 数组妙用===&lt;br /&gt;
&lt;br /&gt;
* 权值数组、无返回值无参数的函数&lt;br /&gt;
&lt;br /&gt;
===C01-9 功能打包===&lt;br /&gt;
&lt;br /&gt;
* 有参数有返回值函数&lt;br /&gt;
&lt;br /&gt;
==扩展维度（Extend）==&lt;br /&gt;
&lt;br /&gt;
===E01-1 int存不下了===&lt;br /&gt;
&lt;br /&gt;
* long long 类型&lt;br /&gt;
* 数据范围&lt;br /&gt;
* 整数编码&lt;br /&gt;
&lt;br /&gt;
===E01-2 小数怎么办===&lt;br /&gt;
&lt;br /&gt;
* double 类型&lt;br /&gt;
* 类型转换&lt;br /&gt;
&lt;br /&gt;
===E01-3 文字与符号===&lt;br /&gt;
&lt;br /&gt;
* char 类型&lt;br /&gt;
* 字符数字转换&lt;br /&gt;
&lt;br /&gt;
===E01-4 花式输入输出===&lt;br /&gt;
&lt;br /&gt;
* 读入到文件末尾&lt;br /&gt;
* 保留 x 位小数&lt;br /&gt;
&lt;br /&gt;
===E01-5 更多运算符===&lt;br /&gt;
&lt;br /&gt;
* 位运算&lt;br /&gt;
* 三元运算符&lt;br /&gt;
&lt;br /&gt;
===E01-6 高级控制===&lt;br /&gt;
&lt;br /&gt;
* break、continue&lt;br /&gt;
* exit(0)&lt;br /&gt;
&lt;br /&gt;
===E01-7 一串字符===&lt;br /&gt;
&lt;br /&gt;
* 字符串&lt;br /&gt;
&lt;br /&gt;
===E01-8 高维结构===&lt;br /&gt;
&lt;br /&gt;
* 多维数组&lt;br /&gt;
* 结构体&lt;br /&gt;
&lt;br /&gt;
===E01-9 自己调用自己===&lt;br /&gt;
&lt;br /&gt;
* 简单递归&lt;br /&gt;
* 参数传引用&lt;/div&gt;</summary>
		<author><name>33DAI</name></author>
	</entry>
	<entry>
		<id>https://www.33dai.wiki/index.php?title=%E5%9F%BA%E7%A1%80%E8%AF%AD%E6%B3%95%E5%A4%A7%E7%BA%B2&amp;diff=167</id>
		<title>基础语法大纲</title>
		<link rel="alternate" type="text/html" href="https://www.33dai.wiki/index.php?title=%E5%9F%BA%E7%A1%80%E8%AF%AD%E6%B3%95%E5%A4%A7%E7%BA%B2&amp;diff=167"/>
		<updated>2026-03-18T11:05:56Z</updated>

		<summary type="html">&lt;p&gt;33DAI：​&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==简易大纲==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ 标题文本&lt;br /&gt;
|-&lt;br /&gt;
! 课程编号 !! 课程标题 !! 课程内容&lt;br /&gt;
|-&lt;br /&gt;
| C01-1 || 高级计算器 || 输出语句、int 变量、输入语句、加法、减法、乘法、小括号&lt;br /&gt;
|-&lt;br /&gt;
| C01-2 || 如果那么 || 不带 else 的 if 语句、除法、取余、相等、不等&lt;br /&gt;
|-&lt;br /&gt;
| C01-3 || 相差多少 || 带 else 的 if 语句、大于、小于、并且&lt;br /&gt;
|-&lt;br /&gt;
| C01-4 || 一直做下去 || while 语句、或者、反转&lt;br /&gt;
|-&lt;br /&gt;
| C01-5 || 想做几次做几次 || for 语句&lt;br /&gt;
|-&lt;br /&gt;
| C01-6 || 循环套循环 || 循环嵌套&lt;br /&gt;
|-&lt;br /&gt;
| C01-7 || 先存起来 || 一维数组&lt;br /&gt;
|-&lt;br /&gt;
| C01-8 || 数组妙用 || 权值数组、无返回值无参数的函数&lt;br /&gt;
|-&lt;br /&gt;
| C01-9 || 功能打包 || 有参数有返回值函数&lt;br /&gt;
|-&lt;br /&gt;
| E01-1 || int存不下了 || long long 类型、数据范围、整数编码&lt;br /&gt;
|-&lt;br /&gt;
| E01-2 || 小数怎么办 || double 类型、类型转换&lt;br /&gt;
|-&lt;br /&gt;
| E01-3 || 文字与符号 || char 类型、字符数字转换&lt;br /&gt;
|-&lt;br /&gt;
| E01-4 || 花式输入输出 || 读入到文件末尾、保留 x 位小数&lt;br /&gt;
|-&lt;br /&gt;
| E01-5 || 更多运算符 || 位运算、三目运算符&lt;br /&gt;
|-&lt;br /&gt;
| E01-6 || 高级控制 || break、continue 与 exit(0)&lt;br /&gt;
|-&lt;br /&gt;
| E01-7 || 一串字符 || 字符串&lt;br /&gt;
|-&lt;br /&gt;
| E01-8 || 高维结构 || 多维数组与结构体&lt;br /&gt;
|-&lt;br /&gt;
| E01-9 || 自己调用自己 || 简单递归、参数传引用&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==依赖关系==&lt;br /&gt;
&lt;br /&gt;
# C01-1 高级计算器：输出语句、int 变量、输入语句、加法、减法、乘法、小括号&lt;br /&gt;
#* E01-1 int存不下了：long long 类型、数据范围、整数编码&lt;br /&gt;
#* E01-2 小数怎么办：double 类型、类型转换&lt;br /&gt;
# C01-2 如果那么：不带 else 的 if 语句、除法、取余、相等、不等&lt;br /&gt;
# C01-3 相差多少：带 else 的 if 语句、大于、小于、并且&lt;br /&gt;
#* E01-3 文字与符号：char 类型、字符数字转换&lt;br /&gt;
# C01-4 一直做下去：while 语句、或者、反转&lt;br /&gt;
#* E01-4 花式输入输出：读入到文件末尾、保留 x 位小数&lt;br /&gt;
# C01-5 想做几次做几次：for 语句&lt;br /&gt;
# C01-6 循环套循环：循环嵌套&lt;br /&gt;
#* E01-5 更多运算符：位运算、三目运算符&lt;br /&gt;
#* E01-6 高级控制：break、continue 与 exit(0)&lt;br /&gt;
# C01-7 先存起来：一维数组&lt;br /&gt;
#* E01-7 一串字符：字符串&lt;br /&gt;
#* E01-8 高维结构：多维数组与结构体&lt;br /&gt;
# C01-8 数组妙用：权值数组、无返回值无参数的函数&lt;br /&gt;
# C01-9 功能打包：有参数有返回值函数&lt;br /&gt;
#* E01-9 自己调用自己：简单递归、参数传引用&lt;br /&gt;
&lt;br /&gt;
==核心序列（Core）==&lt;br /&gt;
&lt;br /&gt;
===C01-1 高级计算器===&lt;br /&gt;
&lt;br /&gt;
* 内容&lt;br /&gt;
** 输出语句、字符串字面量&lt;br /&gt;
** int 变量、赋值语句&lt;br /&gt;
** 输入语句&lt;br /&gt;
** 加法、减法、乘法、小括号 &lt;br /&gt;
* 约定&lt;br /&gt;
** 不讲基础框架的细节，只说执行的内容写在花括号里&lt;br /&gt;
** 不讲 endl，使用 \n 换行，转义符也只讲 \n，其他转义符留到 E01-3&lt;br /&gt;
** 数据类型只讲 int&lt;br /&gt;
** 为了极致的简单，不写 return 0;，等到 E01-9 之后再说只有主函数能省略 return 0;。&lt;br /&gt;
&lt;br /&gt;
===C01-2 如果那么===&lt;br /&gt;
&lt;br /&gt;
* 不带 else 的 if 语句&lt;br /&gt;
* 除法、取余&lt;br /&gt;
* 相等、不等&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===C01-3 相差多少===&lt;br /&gt;
&lt;br /&gt;
* 带 else 的 if 语句&lt;br /&gt;
* 大于、小于&lt;br /&gt;
* 并且&lt;br /&gt;
&lt;br /&gt;
===C01-4 一直做下去===&lt;br /&gt;
&lt;br /&gt;
* while 语句&lt;br /&gt;
* 或者、反转&lt;br /&gt;
&lt;br /&gt;
===C01-5 想做几次做几次===&lt;br /&gt;
&lt;br /&gt;
* for 语句&lt;br /&gt;
&lt;br /&gt;
===C01-6 循环套循环===&lt;br /&gt;
&lt;br /&gt;
* 循环嵌套&lt;br /&gt;
&lt;br /&gt;
===C01-7 先存起来===&lt;br /&gt;
&lt;br /&gt;
* 一维数组&lt;br /&gt;
&lt;br /&gt;
===C01-8 数组妙用===&lt;br /&gt;
&lt;br /&gt;
* 权值数组、无返回值无参数的函数&lt;br /&gt;
&lt;br /&gt;
===C01-9 功能打包===&lt;br /&gt;
&lt;br /&gt;
* 有参数有返回值函数&lt;br /&gt;
&lt;br /&gt;
==扩展维度（Extend）==&lt;br /&gt;
&lt;br /&gt;
===E01-1 int存不下了===&lt;br /&gt;
&lt;br /&gt;
* long long 类型&lt;br /&gt;
* 数据范围&lt;br /&gt;
* 整数编码&lt;br /&gt;
&lt;br /&gt;
===E01-2 小数怎么办===&lt;br /&gt;
&lt;br /&gt;
* double 类型&lt;br /&gt;
* 类型转换&lt;br /&gt;
&lt;br /&gt;
===E01-3 文字与符号===&lt;br /&gt;
&lt;br /&gt;
* char 类型&lt;br /&gt;
* 字符数字转换&lt;br /&gt;
&lt;br /&gt;
===E01-4 花式输入输出===&lt;br /&gt;
&lt;br /&gt;
* 读入到文件末尾&lt;br /&gt;
* 保留 x 位小数&lt;br /&gt;
&lt;br /&gt;
===E01-5 更多运算符===&lt;br /&gt;
&lt;br /&gt;
* 位运算&lt;br /&gt;
* 三元运算符&lt;br /&gt;
&lt;br /&gt;
===E01-6 高级控制===&lt;br /&gt;
&lt;br /&gt;
* break、continue&lt;br /&gt;
* exit(0)&lt;br /&gt;
&lt;br /&gt;
===E01-7 一串字符===&lt;br /&gt;
&lt;br /&gt;
* 字符串&lt;br /&gt;
&lt;br /&gt;
===E01-8 高维结构===&lt;br /&gt;
&lt;br /&gt;
* 多维数组&lt;br /&gt;
* 结构体&lt;br /&gt;
&lt;br /&gt;
===E01-9 自己调用自己===&lt;br /&gt;
&lt;br /&gt;
* 简单递归&lt;br /&gt;
* 参数传引用&lt;/div&gt;</summary>
		<author><name>33DAI</name></author>
	</entry>
	<entry>
		<id>https://www.33dai.wiki/index.php?title=%E5%9F%BA%E7%A1%80%E8%AF%AD%E6%B3%95%E5%A4%A7%E7%BA%B2&amp;diff=166</id>
		<title>基础语法大纲</title>
		<link rel="alternate" type="text/html" href="https://www.33dai.wiki/index.php?title=%E5%9F%BA%E7%A1%80%E8%AF%AD%E6%B3%95%E5%A4%A7%E7%BA%B2&amp;diff=166"/>
		<updated>2026-03-17T13:51:33Z</updated>

		<summary type="html">&lt;p&gt;33DAI：​&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==简易大纲==&lt;br /&gt;
# C01-1 高级计算器：输出语句、int 变量、输入语句、加法、减法、乘法、小括号&lt;br /&gt;
# C01-2 如果那么：不带 else 的 if 语句、除法、取余、相等、不等&lt;br /&gt;
# C01-3 相差多少：带 else 的 if 语句、大于、小于、并且&lt;br /&gt;
# C01-4 一直做下去：while 语句、或者、反转&lt;br /&gt;
# C01-5 想做几次做几次：for 语句&lt;br /&gt;
# C01-6 循环套循环：循环嵌套&lt;br /&gt;
# C01-7 先存起来：一维数组&lt;br /&gt;
# C01-8 数组妙用：权值数组、无返回值无参数的函数&lt;br /&gt;
# C01-9 功能打包：有参数有返回值函数&lt;br /&gt;
# E01-1 int存不下了：long long 类型、数据范围、整数编码&lt;br /&gt;
# E01-2 小数怎么办：double 类型、类型转换&lt;br /&gt;
# E01-3 文字与符号：char 类型、字符数字转换&lt;br /&gt;
# E01-4 花式输入输出：读入到文件末尾、保留 x 位小数&lt;br /&gt;
# E01-5 更多运算符：位运算、三目运算符&lt;br /&gt;
# E01-6 高级控制：break、continue 与 exit(0)&lt;br /&gt;
# E01-7 一串字符：字符串&lt;br /&gt;
# E01-8 高维结构：多维数组与结构体&lt;br /&gt;
# E01-9 自己调用自己：简单递归、参数传引用&lt;br /&gt;
&lt;br /&gt;
==依赖关系==&lt;br /&gt;
&lt;br /&gt;
# C01-1 高级计算器：输出语句、int 变量、输入语句、加法、减法、乘法、小括号&lt;br /&gt;
#* E01-1 int存不下了：long long 类型、数据范围、整数编码&lt;br /&gt;
#* E01-2 小数怎么办：double 类型、类型转换&lt;br /&gt;
# C01-2 如果那么：不带 else 的 if 语句、除法、取余、相等、不等&lt;br /&gt;
# C01-3 相差多少：带 else 的 if 语句、大于、小于、并且&lt;br /&gt;
#* E01-3 文字与符号：char 类型、字符数字转换&lt;br /&gt;
# C01-4 一直做下去：while 语句、或者、反转&lt;br /&gt;
#* E01-4 花式输入输出：读入到文件末尾、保留 x 位小数&lt;br /&gt;
# C01-5 想做几次做几次：for 语句&lt;br /&gt;
# C01-6 循环套循环：循环嵌套&lt;br /&gt;
#* E01-5 更多运算符：位运算、三目运算符&lt;br /&gt;
#* E01-6 高级控制：break、continue 与 exit(0)&lt;br /&gt;
# C01-7 先存起来：一维数组&lt;br /&gt;
#* E01-7 一串字符：字符串&lt;br /&gt;
#* E01-8 高维结构：多维数组与结构体&lt;br /&gt;
# C01-8 数组妙用：权值数组、无返回值无参数的函数&lt;br /&gt;
# C01-9 功能打包：有参数有返回值函数&lt;br /&gt;
#* E01-9 自己调用自己：简单递归、参数传引用&lt;br /&gt;
&lt;br /&gt;
==核心序列（Core）==&lt;br /&gt;
&lt;br /&gt;
===C01-1 高级计算器===&lt;br /&gt;
&lt;br /&gt;
* 内容&lt;br /&gt;
** 输出语句、字符串字面量&lt;br /&gt;
** int 变量、赋值语句&lt;br /&gt;
** 输入语句&lt;br /&gt;
** 加法、减法、乘法、小括号 &lt;br /&gt;
* 约定&lt;br /&gt;
** 不讲基础框架的细节，只说执行的内容写在花括号里&lt;br /&gt;
** 不讲 endl，使用 \n 换行，转义符也只讲 \n，其他转义符留到 E01-3&lt;br /&gt;
** 数据类型只讲 int&lt;br /&gt;
** 为了极致的简单，不写 return 0;，等到 E01-9 之后再说只有主函数能省略 return 0;。&lt;br /&gt;
&lt;br /&gt;
===C01-2 如果那么===&lt;br /&gt;
&lt;br /&gt;
* 不带 else 的 if 语句&lt;br /&gt;
* 除法、取余&lt;br /&gt;
* 相等、不等&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===C01-3 相差多少===&lt;br /&gt;
&lt;br /&gt;
* 带 else 的 if 语句&lt;br /&gt;
* 大于、小于&lt;br /&gt;
* 并且&lt;br /&gt;
&lt;br /&gt;
===C01-4 一直做下去===&lt;br /&gt;
&lt;br /&gt;
* while 语句&lt;br /&gt;
* 或者、反转&lt;br /&gt;
&lt;br /&gt;
===C01-5 想做几次做几次===&lt;br /&gt;
&lt;br /&gt;
* for 语句&lt;br /&gt;
&lt;br /&gt;
===C01-6 循环套循环===&lt;br /&gt;
&lt;br /&gt;
* 循环嵌套&lt;br /&gt;
&lt;br /&gt;
===C01-7 先存起来===&lt;br /&gt;
&lt;br /&gt;
* 一维数组&lt;br /&gt;
&lt;br /&gt;
===C01-8 数组妙用===&lt;br /&gt;
&lt;br /&gt;
* 权值数组、无返回值无参数的函数&lt;br /&gt;
&lt;br /&gt;
===C01-9 功能打包===&lt;br /&gt;
&lt;br /&gt;
* 有参数有返回值函数&lt;br /&gt;
&lt;br /&gt;
==扩展维度（Extend）==&lt;br /&gt;
&lt;br /&gt;
===E01-1 int存不下了===&lt;br /&gt;
&lt;br /&gt;
* long long 类型&lt;br /&gt;
* 数据范围&lt;br /&gt;
* 整数编码&lt;br /&gt;
&lt;br /&gt;
===E01-2 小数怎么办===&lt;br /&gt;
&lt;br /&gt;
* double 类型&lt;br /&gt;
* 类型转换&lt;br /&gt;
&lt;br /&gt;
===E01-3 文字与符号===&lt;br /&gt;
&lt;br /&gt;
* char 类型&lt;br /&gt;
* 字符数字转换&lt;br /&gt;
&lt;br /&gt;
===E01-4 花式输入输出===&lt;br /&gt;
&lt;br /&gt;
* 读入到文件末尾&lt;br /&gt;
* 保留 x 位小数&lt;br /&gt;
&lt;br /&gt;
===E01-5 更多运算符===&lt;br /&gt;
&lt;br /&gt;
* 位运算&lt;br /&gt;
* 三元运算符&lt;br /&gt;
&lt;br /&gt;
===E01-6 高级控制===&lt;br /&gt;
&lt;br /&gt;
* break、continue&lt;br /&gt;
* exit(0)&lt;br /&gt;
&lt;br /&gt;
===E01-7 一串字符===&lt;br /&gt;
&lt;br /&gt;
* 字符串&lt;br /&gt;
&lt;br /&gt;
===E01-8 高维结构===&lt;br /&gt;
&lt;br /&gt;
* 多维数组&lt;br /&gt;
* 结构体&lt;br /&gt;
&lt;br /&gt;
===E01-9 自己调用自己===&lt;br /&gt;
&lt;br /&gt;
* 简单递归&lt;br /&gt;
* 参数传引用&lt;/div&gt;</summary>
		<author><name>33DAI</name></author>
	</entry>
	<entry>
		<id>https://www.33dai.wiki/index.php?title=%E7%BA%BF%E6%AE%B5%E6%A0%91%E6%A8%A1%E6%9D%BF&amp;diff=165</id>
		<title>线段树模板</title>
		<link rel="alternate" type="text/html" href="https://www.33dai.wiki/index.php?title=%E7%BA%BF%E6%AE%B5%E6%A0%91%E6%A8%A1%E6%9D%BF&amp;diff=165"/>
		<updated>2026-03-08T09:01:03Z</updated>

		<summary type="html">&lt;p&gt;33DAI：​&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==单点修改区间查询==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot; line&amp;gt;&lt;br /&gt;
const int MAXN = 500000;&lt;br /&gt;
struct SegTree&lt;br /&gt;
{&lt;br /&gt;
    int sum[MAXN * 4 + 5];&lt;br /&gt;
    // 根据子节点算当前节点&lt;br /&gt;
    void up(int now)&lt;br /&gt;
    {&lt;br /&gt;
        sum[now] = sum[now * 2] + sum[now * 2 + 1];&lt;br /&gt;
    }&lt;br /&gt;
    // 基于 a 数组 build&lt;br /&gt;
    void build(int a[], int now, int l, int r)&lt;br /&gt;
    {&lt;br /&gt;
        if (l == r)&lt;br /&gt;
        {&lt;br /&gt;
            sum[now] = a[l];&lt;br /&gt;
            return;&lt;br /&gt;
        }&lt;br /&gt;
        int mid = (l + r) / 2;&lt;br /&gt;
        build(a, now * 2, l, mid);&lt;br /&gt;
        build(a, now * 2 + 1, mid + 1, r);&lt;br /&gt;
        up(now);&lt;br /&gt;
    }&lt;br /&gt;
    // 当前节点是 now，对应区间是 l~r&lt;br /&gt;
    // 希望给第 x 个数加上 y&lt;br /&gt;
    void update(int now, int l, int r, int x, int y)&lt;br /&gt;
    {&lt;br /&gt;
        if (l == r)&lt;br /&gt;
        {&lt;br /&gt;
            sum[now] += y;&lt;br /&gt;
            return;&lt;br /&gt;
        }&lt;br /&gt;
        int mid = (l + r) / 2;&lt;br /&gt;
        if (x &amp;lt;= mid)&lt;br /&gt;
            update(now * 2, l, mid, x, y);&lt;br /&gt;
        if (x &amp;gt; mid)&lt;br /&gt;
            update(now * 2 + 1, mid + 1, r, x, y);&lt;br /&gt;
        up(now);&lt;br /&gt;
    }&lt;br /&gt;
    // 当前节点是 now，对应区间是 l~r&lt;br /&gt;
    // 返回 x~y 在这个区间内的和&lt;br /&gt;
    int query(int now, int l, int r, int x, int y)&lt;br /&gt;
    {&lt;br /&gt;
        if (x &amp;lt;= l &amp;amp;&amp;amp; r &amp;lt;= y)&lt;br /&gt;
            return sum[now];&lt;br /&gt;
        int mid = (l + r) / 2;&lt;br /&gt;
        int res = 0;&lt;br /&gt;
        if (x &amp;lt;= mid)&lt;br /&gt;
            res += query(now * 2, l, mid, x, y);&lt;br /&gt;
        if (y &amp;gt;= mid + 1)&lt;br /&gt;
            res += query(now * 2 + 1, mid + 1, r, x, y);&lt;br /&gt;
        return res;&lt;br /&gt;
    }&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==区间修改区间查询==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot; line&amp;gt;&lt;br /&gt;
const int MAXN = 100000;&lt;br /&gt;
struct SegTree&lt;br /&gt;
{&lt;br /&gt;
    int sum[MAXN * 4 + 5];&lt;br /&gt;
    int lazy[MAXN * 4 + 5];&lt;br /&gt;
    // 根据子节点算当前节点&lt;br /&gt;
    void up(int now)&lt;br /&gt;
    {&lt;br /&gt;
        sum[now] = sum[now * 2] + sum[now * 2 + 1];&lt;br /&gt;
    }&lt;br /&gt;
    // 把当前节点的lazy传下去&lt;br /&gt;
    void down(int now, int l, int r)&lt;br /&gt;
    {&lt;br /&gt;
        if (lazy[now] == 0)&lt;br /&gt;
            return;&lt;br /&gt;
        int mid = (l + r) / 2;&lt;br /&gt;
        sum[now * 2] += (mid - l + 1) * lazy[now];&lt;br /&gt;
        sum[now * 2 + 1] += (r - mid) * lazy[now];&lt;br /&gt;
        lazy[now * 2] += lazy[now];&lt;br /&gt;
        lazy[now * 2 + 1] += lazy[now];&lt;br /&gt;
        lazy[now] = 0;&lt;br /&gt;
    }&lt;br /&gt;
    // 基于 a 数组 build&lt;br /&gt;
    void build(int now, int l, int r)&lt;br /&gt;
    {&lt;br /&gt;
        if (l == r)&lt;br /&gt;
        {&lt;br /&gt;
            sum[now] = a[l];&lt;br /&gt;
            return;&lt;br /&gt;
        }&lt;br /&gt;
        int mid = (l + r) / 2;&lt;br /&gt;
        build(now * 2, l, mid);&lt;br /&gt;
        build(now * 2 + 1, mid + 1, r);&lt;br /&gt;
        up(now);&lt;br /&gt;
    }&lt;br /&gt;
    // 当前节点是 now，对应区间是 l~r&lt;br /&gt;
    // 希望给第 x~y 个数加上 z&lt;br /&gt;
    void update(int now, int l, int r, int x, int y, int z)&lt;br /&gt;
    {&lt;br /&gt;
        if (x &amp;lt;= l &amp;amp;&amp;amp; r &amp;lt;= y)&lt;br /&gt;
        {&lt;br /&gt;
            lazy[now] += z;&lt;br /&gt;
            sum[now] += (r - l + 1) * z;&lt;br /&gt;
            return;&lt;br /&gt;
        }&lt;br /&gt;
        int mid = (l + r) / 2;&lt;br /&gt;
        down(now, l, r);&lt;br /&gt;
        if (x &amp;lt;= mid)&lt;br /&gt;
            update(now * 2, l, mid, x, y, z);&lt;br /&gt;
        if (y &amp;gt;= mid + 1)&lt;br /&gt;
            update(now * 2 + 1, mid + 1, r, x, y, z);&lt;br /&gt;
        up(now);&lt;br /&gt;
    }&lt;br /&gt;
    // 当前节点是 now，对应区间是 l~r&lt;br /&gt;
    // 返回 x~y 在这个区间内的和&lt;br /&gt;
    int query(int now, int l, int r, int x, int y)&lt;br /&gt;
    {&lt;br /&gt;
        if (x &amp;lt;= l &amp;amp;&amp;amp; r &amp;lt;= y)&lt;br /&gt;
            return sum[now];&lt;br /&gt;
        int mid = (l + r) / 2;&lt;br /&gt;
        int res = 0;&lt;br /&gt;
        down(now, l, r);&lt;br /&gt;
        if (x &amp;lt;= mid)&lt;br /&gt;
            res += query(now * 2, l, mid, x, y);&lt;br /&gt;
        if (y &amp;gt;= mid + 1)&lt;br /&gt;
            res += query(now * 2 + 1, mid + 1, r, x, y);&lt;br /&gt;
        return res;&lt;br /&gt;
    }&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==动态开点线段树（单点修改区间查询）==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot; line&amp;gt;&lt;br /&gt;
const int MAXN = 500000;&lt;br /&gt;
struct SegTree&lt;br /&gt;
{&lt;br /&gt;
    int root, tot;&lt;br /&gt;
    int sum[MAXN * 30 + 5];&lt;br /&gt;
    int lc[MAXN * 30 + 5]; // 左子节点&lt;br /&gt;
    int rc[MAXN * 30 + 5]; // 右子节点&lt;br /&gt;
    // 根据子节点算当前节点&lt;br /&gt;
    void up(int now)&lt;br /&gt;
    {&lt;br /&gt;
        sum[now] = sum[lc[now]] + sum[rc[now]];&lt;br /&gt;
    }&lt;br /&gt;
    // 当前节点是 now，对应区间是 l~r&lt;br /&gt;
    // 希望给第 x 个数加上 y&lt;br /&gt;
    void update(int &amp;amp;now, int l, int r, int x, int y)&lt;br /&gt;
    {&lt;br /&gt;
        if (now == 0)&lt;br /&gt;
            now = ++tot;&lt;br /&gt;
        if (l == r)&lt;br /&gt;
        {&lt;br /&gt;
            sum[now] += y;&lt;br /&gt;
            return;&lt;br /&gt;
        }&lt;br /&gt;
        int mid = (l + r) / 2;&lt;br /&gt;
        if (x &amp;lt;= mid)&lt;br /&gt;
            update(lc[now], l, mid, x, y);&lt;br /&gt;
        if (x &amp;gt; mid)&lt;br /&gt;
            update(rc[now], mid + 1, r, x, y);&lt;br /&gt;
        up(now);&lt;br /&gt;
    }&lt;br /&gt;
    // 当前节点是 now，对应区间是 l~r&lt;br /&gt;
    // 返回 x~y 在这个区间内的和&lt;br /&gt;
    int query(int &amp;amp;now, int l, int r, int x, int y)&lt;br /&gt;
    {&lt;br /&gt;
        if (now == 0)&lt;br /&gt;
            now = ++tot;&lt;br /&gt;
        if (x &amp;lt;= l &amp;amp;&amp;amp; r &amp;lt;= y)&lt;br /&gt;
            return sum[now];&lt;br /&gt;
        int mid = (l + r) / 2;&lt;br /&gt;
        int res = 0;&lt;br /&gt;
        if (x &amp;lt;= mid)&lt;br /&gt;
            res += query(lc[now], l, mid, x, y);&lt;br /&gt;
        if (y &amp;gt;= mid + 1)&lt;br /&gt;
            res += query(rc[now], mid + 1, r, x, y);&lt;br /&gt;
        return res;&lt;br /&gt;
    }&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
注意空间占用，后面使用时得写 st.root 作为 now&lt;br /&gt;
&lt;br /&gt;
* st.query(st.root, 1, 1&#039;000&#039;000&#039;000, 1, a[i] - 1);&lt;br /&gt;
* st.update(st.root, 1, n, a[i], 1);&lt;br /&gt;
&lt;br /&gt;
[[分类:代码模板]]&lt;/div&gt;</summary>
		<author><name>33DAI</name></author>
	</entry>
	<entry>
		<id>https://www.33dai.wiki/index.php?title=%E7%BA%BF%E6%AE%B5%E6%A0%91%E6%A8%A1%E6%9D%BF&amp;diff=164</id>
		<title>线段树模板</title>
		<link rel="alternate" type="text/html" href="https://www.33dai.wiki/index.php?title=%E7%BA%BF%E6%AE%B5%E6%A0%91%E6%A8%A1%E6%9D%BF&amp;diff=164"/>
		<updated>2026-03-08T07:49:03Z</updated>

		<summary type="html">&lt;p&gt;33DAI：​&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==单点修改区间查询==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot; line&amp;gt;&lt;br /&gt;
const int MAXN = 500000;&lt;br /&gt;
struct SegTree&lt;br /&gt;
{&lt;br /&gt;
    int sum[MAXN * 4 + 5];&lt;br /&gt;
    // 根据子节点算当前节点&lt;br /&gt;
    void up(int now)&lt;br /&gt;
    {&lt;br /&gt;
        sum[now] = sum[now * 2] + sum[now * 2 + 1];&lt;br /&gt;
    }&lt;br /&gt;
    // 基于 a 数组 build&lt;br /&gt;
    void build(int a[], int now, int l, int r)&lt;br /&gt;
    {&lt;br /&gt;
        if (l == r)&lt;br /&gt;
        {&lt;br /&gt;
            sum[now] = a[l];&lt;br /&gt;
            return;&lt;br /&gt;
        }&lt;br /&gt;
        int mid = (l + r) / 2;&lt;br /&gt;
        build(a, now * 2, l, mid);&lt;br /&gt;
        build(a, now * 2 + 1, mid + 1, r);&lt;br /&gt;
        up(now);&lt;br /&gt;
    }&lt;br /&gt;
    // 当前节点是 now，对应区间是 l~r&lt;br /&gt;
    // 希望给第 x 个数加上 y&lt;br /&gt;
    void update(int now, int l, int r, int x, int y)&lt;br /&gt;
    {&lt;br /&gt;
        if (l == r)&lt;br /&gt;
        {&lt;br /&gt;
            sum[now] += y;&lt;br /&gt;
            return;&lt;br /&gt;
        }&lt;br /&gt;
        int mid = (l + r) / 2;&lt;br /&gt;
        if (x &amp;lt;= mid)&lt;br /&gt;
            update(now * 2, l, mid, x, y);&lt;br /&gt;
        if (x &amp;gt; mid)&lt;br /&gt;
            update(now * 2 + 1, mid + 1, r, x, y);&lt;br /&gt;
        up(now);&lt;br /&gt;
    }&lt;br /&gt;
    // 当前节点是 now，对应区间是 l~r&lt;br /&gt;
    // 返回 x~y 在这个区间内的和&lt;br /&gt;
    int query(int now, int l, int r, int x, int y)&lt;br /&gt;
    {&lt;br /&gt;
        if (x &amp;lt;= l &amp;amp;&amp;amp; r &amp;lt;= y)&lt;br /&gt;
            return sum[now];&lt;br /&gt;
        int mid = (l + r) / 2;&lt;br /&gt;
        int res = 0;&lt;br /&gt;
        if (x &amp;lt;= mid)&lt;br /&gt;
            res += query(now * 2, l, mid, x, y);&lt;br /&gt;
        if (y &amp;gt;= mid + 1)&lt;br /&gt;
            res += query(now * 2 + 1, mid + 1, r, x, y);&lt;br /&gt;
        return res;&lt;br /&gt;
    }&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==区间修改区间查询==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot; line&amp;gt;&lt;br /&gt;
const int MAXN = 100000;&lt;br /&gt;
struct SegTree&lt;br /&gt;
{&lt;br /&gt;
    int sum[MAXN * 4 + 5];&lt;br /&gt;
    int lazy[MAXN * 4 + 5];&lt;br /&gt;
    // 根据子节点算当前节点&lt;br /&gt;
    void up(int now)&lt;br /&gt;
    {&lt;br /&gt;
        sum[now] = sum[now * 2] + sum[now * 2 + 1];&lt;br /&gt;
    }&lt;br /&gt;
    // 把当前节点的lazy传下去&lt;br /&gt;
    void down(int now, int l, int r)&lt;br /&gt;
    {&lt;br /&gt;
        if (lazy[now] == 0)&lt;br /&gt;
            return;&lt;br /&gt;
        int mid = (l + r) / 2;&lt;br /&gt;
        sum[now * 2] += (mid - l + 1) * lazy[now];&lt;br /&gt;
        sum[now * 2 + 1] += (r - mid) * lazy[now];&lt;br /&gt;
        lazy[now * 2] += lazy[now];&lt;br /&gt;
        lazy[now * 2 + 1] += lazy[now];&lt;br /&gt;
        lazy[now] = 0;&lt;br /&gt;
    }&lt;br /&gt;
    // 基于 a 数组 build&lt;br /&gt;
    void build(int now, int l, int r)&lt;br /&gt;
    {&lt;br /&gt;
        if (l == r)&lt;br /&gt;
        {&lt;br /&gt;
            sum[now] = a[l];&lt;br /&gt;
            return;&lt;br /&gt;
        }&lt;br /&gt;
        int mid = (l + r) / 2;&lt;br /&gt;
        build(now * 2, l, mid);&lt;br /&gt;
        build(now * 2 + 1, mid + 1, r);&lt;br /&gt;
        up(now);&lt;br /&gt;
    }&lt;br /&gt;
    // 当前节点是 now，对应区间是 l~r&lt;br /&gt;
    // 希望给第 x~y 个数加上 z&lt;br /&gt;
    void update(int now, int l, int r, int x, int y, int z)&lt;br /&gt;
    {&lt;br /&gt;
        if (x &amp;lt;= l &amp;amp;&amp;amp; r &amp;lt;= y)&lt;br /&gt;
        {&lt;br /&gt;
            lazy[now] += z;&lt;br /&gt;
            sum[now] += (r - l + 1) * z;&lt;br /&gt;
            return;&lt;br /&gt;
        }&lt;br /&gt;
        int mid = (l + r) / 2;&lt;br /&gt;
        down(now, l, r);&lt;br /&gt;
        if (x &amp;lt;= mid)&lt;br /&gt;
            update(now * 2, l, mid, x, y, z);&lt;br /&gt;
        if (y &amp;gt;= mid + 1)&lt;br /&gt;
            update(now * 2 + 1, mid + 1, r, x, y, z);&lt;br /&gt;
        up(now);&lt;br /&gt;
    }&lt;br /&gt;
    // 当前节点是 now，对应区间是 l~r&lt;br /&gt;
    // 返回 x~y 在这个区间内的和&lt;br /&gt;
    int query(int now, int l, int r, int x, int y)&lt;br /&gt;
    {&lt;br /&gt;
        if (x &amp;lt;= l &amp;amp;&amp;amp; r &amp;lt;= y)&lt;br /&gt;
            return sum[now];&lt;br /&gt;
        int mid = (l + r) / 2;&lt;br /&gt;
        int res = 0;&lt;br /&gt;
        down(now, l, r);&lt;br /&gt;
        if (x &amp;lt;= mid)&lt;br /&gt;
            res += query(now * 2, l, mid, x, y);&lt;br /&gt;
        if (y &amp;gt;= mid + 1)&lt;br /&gt;
            res += query(now * 2 + 1, mid + 1, r, x, y);&lt;br /&gt;
        return res;&lt;br /&gt;
    }&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[分类:代码模板]]&lt;/div&gt;</summary>
		<author><name>33DAI</name></author>
	</entry>
	<entry>
		<id>https://www.33dai.wiki/index.php?title=%E9%A6%96%E9%A1%B5&amp;diff=163</id>
		<title>首页</title>
		<link rel="alternate" type="text/html" href="https://www.33dai.wiki/index.php?title=%E9%A6%96%E9%A1%B5&amp;diff=163"/>
		<updated>2026-03-08T07:18:22Z</updated>

		<summary type="html">&lt;p&gt;33DAI：​&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;main-page-welcome&amp;quot; style=&amp;quot;padding: 20px; background: #f8f9fa; border-radius: 8px; margin-bottom: 20px;&amp;quot;&amp;gt;&lt;br /&gt;
欢迎来到 &#039;&#039;&#039;三三百科&#039;&#039;&#039;！这里汇集了信奥常用小知识、比赛题解、以及常用工具导航。&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;main-page-grid&amp;quot;&amp;gt;&lt;br /&gt;
{{NavBox&lt;br /&gt;
| title = Wiki 数学&lt;br /&gt;
| color = #ab5a6b&lt;br /&gt;
| icon = ✨&lt;br /&gt;
| content =&lt;br /&gt;
* [[乘法逆元]]&lt;br /&gt;
* [[质数判断]]&lt;br /&gt;
* [[欧拉函数]]&lt;br /&gt;
* [[计算几何]]&lt;br /&gt;
* [[高精度模板]]&lt;br /&gt;
* [[线段树模板]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{NavBox&lt;br /&gt;
| title = Wiki 页面&lt;br /&gt;
| color = #ab5a6b&lt;br /&gt;
| icon = ✨&lt;br /&gt;
| content =&lt;br /&gt;
* [[基础语法大纲]]&lt;br /&gt;
* [[初学者常用内容]]&lt;br /&gt;
* [[STL容器库常用内容]]&lt;br /&gt;
* [[STL例子]]&lt;br /&gt;
* [[33OJ评测机]]&lt;br /&gt;
* [[33OJ题面规范]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{NavBox&lt;br /&gt;
| title = 常用 OJ 平台&lt;br /&gt;
| color = #27ae60&lt;br /&gt;
| icon = 🚀&lt;br /&gt;
| content =&lt;br /&gt;
* [https://oj.33dai.cn 33OJ]&lt;br /&gt;
* [https://luogu.com.cn 洛谷]&lt;br /&gt;
* [https://codeforces.com CodeForces]&lt;br /&gt;
* [https://atcoder.jp AtCoder]&lt;br /&gt;
* [https://htoj.hetao101.com/cpp/ 核桃周赛]&lt;br /&gt;
* [https://bs.daimayuan.top/ 代码源挑战赛]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{NavBox&lt;br /&gt;
| title = 信息查询&lt;br /&gt;
| color = #e67e22&lt;br /&gt;
| icon = 📚&lt;br /&gt;
| content =&lt;br /&gt;
* [https://www.noi.cn NOI 官网]&lt;br /&gt;
* [https://ioinformatics.org/ IOI官网]&lt;br /&gt;
* [https://board.xcpcio.com/ XCPC榜单]&lt;br /&gt;
* [https://oier.baoshuo.dev/ OIerDB]&lt;br /&gt;
* [http://oiwiki.org/ OI Wiki]&lt;br /&gt;
* [https://oeis.org/ OEIS]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{NavBox&lt;br /&gt;
| title = 常用工具&lt;br /&gt;
| color = #8e44ad&lt;br /&gt;
| icon = 🛠️&lt;br /&gt;
| content =&lt;br /&gt;
* [https://cpp.33dai.wiki C++ 参考手册]&lt;br /&gt;
* [https://py.33dai.wiki Python 文档]&lt;br /&gt;
* [https://visualgo.net/zh/ VISUALGO]&lt;br /&gt;
* [https://csacademy.com/app/graph_editor/ Graph Editor] &lt;br /&gt;
* [https://www.geogebra.org/graphing GeoGebra]&lt;br /&gt;
* [https://github.com/open33oj/wiki33 原&amp;quot;三三文档&amp;quot;内容]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;([\s\S\n\r]*?)&amp;amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot; line&amp;gt;$1&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>33DAI</name></author>
	</entry>
	<entry>
		<id>https://www.33dai.wiki/index.php?title=%E7%BA%BF%E6%AE%B5%E6%A0%91%E6%A8%A1%E6%9D%BF&amp;diff=162</id>
		<title>线段树模板</title>
		<link rel="alternate" type="text/html" href="https://www.33dai.wiki/index.php?title=%E7%BA%BF%E6%AE%B5%E6%A0%91%E6%A8%A1%E6%9D%BF&amp;diff=162"/>
		<updated>2026-03-08T06:59:41Z</updated>

		<summary type="html">&lt;p&gt;33DAI：​创建页面，内容为“==单点修改区间查询==  &amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot; line&amp;gt; const int MAXN = 500000; struct SegTree {     int sum[MAXN * 4 + 5];     // 根据子节点算当前节点     void up(int now)     {         sum[now] = sum[now * 2] + sum[now * 2 + 1];     }     // 基于 a 数组 build     void build(int a[], int now, int l, int r)     {         if (l == r)         {             sum[now] = a[l];             return;         }         int mid = (l + r) / 2;…”&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==单点修改区间查询==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot; line&amp;gt;&lt;br /&gt;
const int MAXN = 500000;&lt;br /&gt;
struct SegTree&lt;br /&gt;
{&lt;br /&gt;
    int sum[MAXN * 4 + 5];&lt;br /&gt;
    // 根据子节点算当前节点&lt;br /&gt;
    void up(int now)&lt;br /&gt;
    {&lt;br /&gt;
        sum[now] = sum[now * 2] + sum[now * 2 + 1];&lt;br /&gt;
    }&lt;br /&gt;
    // 基于 a 数组 build&lt;br /&gt;
    void build(int a[], int now, int l, int r)&lt;br /&gt;
    {&lt;br /&gt;
        if (l == r)&lt;br /&gt;
        {&lt;br /&gt;
            sum[now] = a[l];&lt;br /&gt;
            return;&lt;br /&gt;
        }&lt;br /&gt;
        int mid = (l + r) / 2;&lt;br /&gt;
        build(a, now * 2, l, mid);&lt;br /&gt;
        build(a, now * 2 + 1, mid + 1, r);&lt;br /&gt;
        up(now);&lt;br /&gt;
    }&lt;br /&gt;
    // 当前节点是 now，对应区间是 l~r&lt;br /&gt;
    // 希望给第 x 个数加上 y&lt;br /&gt;
    void update(int now, int l, int r, int x, int y)&lt;br /&gt;
    {&lt;br /&gt;
        if (l == r)&lt;br /&gt;
        {&lt;br /&gt;
            sum[now] += y;&lt;br /&gt;
            return;&lt;br /&gt;
        }&lt;br /&gt;
        int mid = (l + r) / 2;&lt;br /&gt;
        if (x &amp;lt;= mid)&lt;br /&gt;
            update(now * 2, l, mid, x, y);&lt;br /&gt;
        if (x &amp;gt; mid)&lt;br /&gt;
            update(now * 2 + 1, mid + 1, r, x, y);&lt;br /&gt;
        up(now);&lt;br /&gt;
    }&lt;br /&gt;
    // 当前节点是 now，对应区间是 l~r&lt;br /&gt;
    // 返回 x~y 在这个区间内的和&lt;br /&gt;
    int query(int now, int l, int r, int x, int y)&lt;br /&gt;
    {&lt;br /&gt;
        if (x &amp;lt;= l &amp;amp;&amp;amp; r &amp;lt;= y)&lt;br /&gt;
            return sum[now];&lt;br /&gt;
        int mid = (l + r) / 2;&lt;br /&gt;
        int res = 0;&lt;br /&gt;
        if (x &amp;lt;= mid)&lt;br /&gt;
            res += query(now * 2, l, mid, x, y);&lt;br /&gt;
        if (y &amp;gt;= mid + 1)&lt;br /&gt;
            res += query(now * 2 + 1, mid + 1, r, x, y);&lt;br /&gt;
        return res;&lt;br /&gt;
    }&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[分类:代码模板]]&lt;/div&gt;</summary>
		<author><name>33DAI</name></author>
	</entry>
	<entry>
		<id>https://www.33dai.wiki/index.php?title=%E5%88%9D%E5%AD%A6%E8%80%85%E5%B8%B8%E7%94%A8%E5%86%85%E5%AE%B9&amp;diff=161</id>
		<title>初学者常用内容</title>
		<link rel="alternate" type="text/html" href="https://www.33dai.wiki/index.php?title=%E5%88%9D%E5%AD%A6%E8%80%85%E5%B8%B8%E7%94%A8%E5%86%85%E5%AE%B9&amp;diff=161"/>
		<updated>2026-03-07T03:07:19Z</updated>

		<summary type="html">&lt;p&gt;33DAI：​&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;补充中&lt;br /&gt;
==编译指令==&lt;br /&gt;
&lt;br /&gt;
===Windows===&lt;br /&gt;
&lt;br /&gt;
Windows 修改语言标准及开栈编译命令为 -std=c++14  -O2 -Wl,--stack=1073741824&lt;br /&gt;
&lt;br /&gt;
其中 -Wl,--stack=1073741824 在某些场景可能需要双引号括起来。&lt;br /&gt;
&lt;br /&gt;
===Linux===&lt;br /&gt;
&lt;br /&gt;
Linux 当前会话开栈命令为 ulimit -s unlimited&lt;br /&gt;
&lt;br /&gt;
可以用 ulimit -s 查看栈空间大小。&lt;br /&gt;
&lt;br /&gt;
==保留 3 位小数==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot; line&amp;gt;&lt;br /&gt;
cout &amp;lt;&amp;lt; fixed &amp;lt;&amp;lt; setprecision(3) &amp;lt;&amp;lt; 1.0 / 3; &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==最大公因数/最小公倍数==&lt;br /&gt;
&lt;br /&gt;
比赛时允许使用 C++ 自带的 {{ic|code=__gcd(a,b)}}  函数求最大公因数。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot; line&amp;gt;&lt;br /&gt;
int gcd(int a, int b)&lt;br /&gt;
{&lt;br /&gt;
    if (b == 0)&lt;br /&gt;
        return a;&lt;br /&gt;
    return gcd(b, a % b);&lt;br /&gt;
}&lt;br /&gt;
int lcm(int a, int b)&lt;br /&gt;
{&lt;br /&gt;
    return a / gcd(a, b) * b;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==判断质数==&lt;br /&gt;
&lt;br /&gt;
===判断单个质数===&lt;br /&gt;
&lt;br /&gt;
* 如果小于 &amp;lt;math&amp;gt;2&amp;lt;/math&amp;gt; 肯定不是质数&lt;br /&gt;
* 检查 &amp;lt;math&amp;gt;2\sim \sqrt{n}&amp;lt;/math&amp;gt;，如果有因子，肯定不是质数&lt;br /&gt;
* 通过了前面的检查就肯定是质数&lt;br /&gt;
&lt;br /&gt;
===筛法===&lt;br /&gt;
&lt;br /&gt;
核心都是对于质数 &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; 与任意数 &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt;，把 &amp;lt;math&amp;gt;p\times i&amp;lt;/math&amp;gt; 标记为合数。&lt;br /&gt;
&lt;br /&gt;
* 埃氏筛法：&amp;lt;math&amp;gt;O(n\log \log n)&amp;lt;/math&amp;gt; 把筛出来的质数的倍数标记为合数。&lt;br /&gt;
* 欧拉筛法：&amp;lt;math&amp;gt;O(n)&amp;lt;/math&amp;gt; 把每个数的质数倍标记为合数，如果当前质数是因子，就不用考虑更大的质数了（肯定会可以由一个更大的数乘以那个作为因子的质数）&lt;br /&gt;
&lt;br /&gt;
欧拉筛法能保证每个数只被最小质因子筛，可以用来处理一些积性函数求解。&lt;br /&gt;
&lt;br /&gt;
==广搜核心逻辑==&lt;br /&gt;
&lt;br /&gt;
# 多测要清空&lt;br /&gt;
# 起点入队&lt;br /&gt;
# 重复取出队头并扩散&lt;br /&gt;
&lt;br /&gt;
==动态规划经典思路==&lt;br /&gt;
&lt;br /&gt;
# 大胆猜测状态&lt;br /&gt;
## 求最大长度：“前 i 项的最大长度”、“以第 i 项结尾的最大长度”&lt;br /&gt;
## 求方案数：“前 i 项的方案数”、“以第 i 项结尾的方案数”&lt;br /&gt;
## 求最大收益：“前 i 个物品的最大收益”&lt;br /&gt;
## 求最少操作次数：“s 的前 i 项与 t 的前 j 项的最少操作次数”&lt;br /&gt;
# 大胆猜测决策&lt;br /&gt;
## 选不选第 i 项&lt;br /&gt;
## 上一项选谁&lt;br /&gt;
# 不好求就加维度&lt;br /&gt;
## 前 i 个物品的最大收益：前 i 个物品在 j 体积下的最大收益&lt;/div&gt;</summary>
		<author><name>33DAI</name></author>
	</entry>
	<entry>
		<id>https://www.33dai.wiki/index.php?title=%E4%B8%89%E4%B8%89%E6%9C%88%E8%B5%9B&amp;diff=160</id>
		<title>三三月赛</title>
		<link rel="alternate" type="text/html" href="https://www.33dai.wiki/index.php?title=%E4%B8%89%E4%B8%89%E6%9C%88%E8%B5%9B&amp;diff=160"/>
		<updated>2026-03-01T03:25:47Z</updated>

		<summary type="html">&lt;p&gt;33DAI：​创建页面，内容为“==难度==  大约 CSP-J 级别，参考 [https://oj.33dai.cn/p?q=category%3A%E6%9C%88%E8%B5%9B 33OJ:月赛]  ==赛制==  OI 赛制  ==比赛时长==  3 小时   ==比赛时间==  * 正赛（线下断网赛）：每个月倒数第二个周六晚 18:00 * 线上镜像赛：每个月最后一个周末持续开放  ==比赛费用==  * 正赛：128 元/场或按一次训练营收费。 * 线上镜像赛：免费在 [https://oj.33dai.cn 33OJ] 参与。  ==出题人==…”&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==难度==&lt;br /&gt;
&lt;br /&gt;
大约 CSP-J 级别，参考 [https://oj.33dai.cn/p?q=category%3A%E6%9C%88%E8%B5%9B 33OJ:月赛]&lt;br /&gt;
&lt;br /&gt;
==赛制==&lt;br /&gt;
&lt;br /&gt;
OI 赛制&lt;br /&gt;
&lt;br /&gt;
==比赛时长==&lt;br /&gt;
&lt;br /&gt;
3 小时 &lt;br /&gt;
&lt;br /&gt;
==比赛时间==&lt;br /&gt;
&lt;br /&gt;
* 正赛（线下断网赛）：每个月倒数第二个周六晚 18:00&lt;br /&gt;
* 线上镜像赛：每个月最后一个周末持续开放&lt;br /&gt;
&lt;br /&gt;
==比赛费用==&lt;br /&gt;
&lt;br /&gt;
* 正赛：128 元/场或按一次训练营收费。&lt;br /&gt;
* 线上镜像赛：免费在 [https://oj.33dai.cn 33OJ] 参与。&lt;br /&gt;
&lt;br /&gt;
==出题人==&lt;br /&gt;
&lt;br /&gt;
独立第三方出题人，不公开身份。&lt;br /&gt;
&lt;br /&gt;
* 出题人 A&lt;br /&gt;
** ICPC 区域赛金牌&lt;br /&gt;
** CodeForces Rating 2157&lt;br /&gt;
** 多次命题 ICPC 省赛、邀请赛&lt;br /&gt;
** 出题场次：2603&lt;/div&gt;</summary>
		<author><name>33DAI</name></author>
	</entry>
	<entry>
		<id>https://www.33dai.wiki/index.php?title=%E5%8F%8D%E6%BC%94&amp;diff=159</id>
		<title>反演</title>
		<link rel="alternate" type="text/html" href="https://www.33dai.wiki/index.php?title=%E5%8F%8D%E6%BC%94&amp;diff=159"/>
		<updated>2026-02-28T09:26:36Z</updated>

		<summary type="html">&lt;p&gt;33DAI：​/* 狄利克雷卷积 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;本页面大量引用 [https://oiwiki.org/ OI Wiki]&lt;br /&gt;
&lt;br /&gt;
组合数 &amp;lt;math&amp;gt;C_n^m&amp;lt;/math&amp;gt; 常用符号 &amp;lt;math&amp;gt;\dbinom{n}{m}&amp;lt;/math&amp;gt; 来表示，读作“&amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; 选 &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt;”。&lt;br /&gt;
&lt;br /&gt;
==组合数经典性质==&lt;br /&gt;
&lt;br /&gt;
选出 &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; 相当于选出 &amp;lt;math&amp;gt;n-m&amp;lt;/math&amp;gt; 个排除。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\dbinom{n}{m}=\dbinom{n}{n-m}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
组合数的递推式（杨辉三角）&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\dbinom{n}{m}=\dbinom{n-1}{m}+\dbinom{n-1}{m-1}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
基础性质（杨辉三角的一行、&amp;lt;math&amp;gt;(1+1)^n&amp;lt;/math&amp;gt;）&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\dbinom{n}{0}+\dbinom{n}{1}+\dots+\dbinom{n}{n}=\sum_{i=0}^n\dbinom{n}{i}=2^n&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
范德蒙德恒等式&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\sum_{i=0}^k\dbinom{n}{i}\dbinom{m}{k-i}=\dbinom{m+n}{k}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==二项式定理==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;(a+b)^n=\sum_{i=0}^n\dbinom{n}{i}a^{n-i}b^i&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==二项式反演==&lt;br /&gt;
&lt;br /&gt;
记 &amp;lt;math&amp;gt;f_n&amp;lt;/math&amp;gt; 表示恰好使用 &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; 个不同元素形成特定结构的方案数，&amp;lt;math&amp;gt;g_n&amp;lt;/math&amp;gt; 表示从 &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; 个不同元素中选出 &amp;lt;math&amp;gt;i \geq 0&amp;lt;/math&amp;gt; 个元素形成特定结构的总方案数．&lt;br /&gt;
&lt;br /&gt;
若已知 &amp;lt;math&amp;gt;f_n&amp;lt;/math&amp;gt; 求 &amp;lt;math&amp;gt;g_n&amp;lt;/math&amp;gt;，那么显然有：&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;g_n = \sum_{i = 0}^{n} \binom{n}{i} f_i&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
若已知 &amp;lt;math&amp;gt;g_n&amp;lt;/math&amp;gt; 求 &amp;lt;math&amp;gt;f_n&amp;lt;/math&amp;gt;，那么：&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;f_n = \sum_{i = 0}^{n} \binom{n}{i} (-1)^{n-i} g_i&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
上述已知 &amp;lt;math&amp;gt;g_n&amp;lt;/math&amp;gt; 求 &amp;lt;math&amp;gt;f_n&amp;lt;/math&amp;gt; 的过程，就称为“二项式反演”．&lt;br /&gt;
&lt;br /&gt;
==狄利克雷卷积==&lt;br /&gt;
&lt;br /&gt;
数论函数 &amp;lt;math&amp;gt;f(n)&amp;lt;/math&amp;gt; 和 &amp;lt;math&amp;gt;g(n)&amp;lt;/math&amp;gt; 的 Dirichlet 卷积（Dirichlet convolution），记作 &amp;lt;math&amp;gt;f \ast g&amp;lt;/math&amp;gt;，定义为数论函数&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
(f \ast g)(n) = \sum_{k\mid n}f(k)g\left(\dfrac{n}{k}\right) = \sum_{k\ell=n}f(k)g(\ell).&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==莫比乌斯反演==&lt;br /&gt;
&lt;br /&gt;
===莫比乌斯函数===&lt;br /&gt;
&lt;br /&gt;
莫比乌斯函数（Möbius 函数）定义为&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\mu(n)=&lt;br /&gt;
\begin{cases}&lt;br /&gt;
1,&amp;amp;n=1,\\&lt;br /&gt;
0,&amp;amp;n\text{是某个质数平方的倍数},\\&lt;br /&gt;
(-1)^k,&amp;amp;n \text{是} k \text{个不同质数的乘积}.\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
具体地，假设正整数 &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; 有素因数分解 &amp;lt;math&amp;gt;n=\prod_{i=1}^kp_i^{e_i}&amp;lt;/math&amp;gt;，其中，&amp;lt;math&amp;gt;p_i&amp;lt;/math&amp;gt; 是素数，&amp;lt;math&amp;gt;e_i&amp;lt;/math&amp;gt; 是正整数．那么，三种情形分别对应：&lt;br /&gt;
&lt;br /&gt;
# &amp;lt;math&amp;gt;\mu(1) = 1&amp;lt;/math&amp;gt;；&lt;br /&gt;
# 当存在 &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt; 使得 &amp;lt;math&amp;gt;e_i&amp;gt;1&amp;lt;/math&amp;gt;，即存在任何素因数出现超过一次时，&amp;lt;math&amp;gt;\mu(n)=0&amp;lt;/math&amp;gt;；&lt;br /&gt;
# 否则，对于所有 &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt; 都有 &amp;lt;math&amp;gt;e_i = 1&amp;lt;/math&amp;gt;，即任何素因数都只出现一次时，&amp;lt;math&amp;gt;\mu(n)=(-1)^k&amp;lt;/math&amp;gt;，其中，$k$ 就是互异素因子的个数．&lt;br /&gt;
&lt;br /&gt;
===莫比乌斯反演===&lt;br /&gt;
设 &amp;lt;math&amp;gt;f(n),g(n)&amp;lt;/math&amp;gt; 是两个数论函数．那么，有&lt;br /&gt;
    &lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
f(n) = \sum_{d\mid n}g(d) \iff g(n) = \sum_{d\mid n}\mu\left(\dfrac{n}{d}\right)f(d).&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====扩展====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;    &lt;br /&gt;
f(n) = \sum_{n\mid d}g(d) \iff g(n) = \sum_{n\mid d}\mu\left(\dfrac{d}{n}\right)f(d).&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[文件:莫比乌斯反演.jpg|缩略图|替代=莫比乌斯反演|莫比乌斯反演]]&lt;/div&gt;</summary>
		<author><name>33DAI</name></author>
	</entry>
	<entry>
		<id>https://www.33dai.wiki/index.php?title=%E5%8F%8D%E6%BC%94&amp;diff=158</id>
		<title>反演</title>
		<link rel="alternate" type="text/html" href="https://www.33dai.wiki/index.php?title=%E5%8F%8D%E6%BC%94&amp;diff=158"/>
		<updated>2026-02-28T09:05:55Z</updated>

		<summary type="html">&lt;p&gt;33DAI：​/* 扩展 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;本页面大量引用 [https://oiwiki.org/ OI Wiki]&lt;br /&gt;
&lt;br /&gt;
组合数 &amp;lt;math&amp;gt;C_n^m&amp;lt;/math&amp;gt; 常用符号 &amp;lt;math&amp;gt;\dbinom{n}{m}&amp;lt;/math&amp;gt; 来表示，读作“&amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; 选 &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt;”。&lt;br /&gt;
&lt;br /&gt;
==组合数经典性质==&lt;br /&gt;
&lt;br /&gt;
选出 &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; 相当于选出 &amp;lt;math&amp;gt;n-m&amp;lt;/math&amp;gt; 个排除。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\dbinom{n}{m}=\dbinom{n}{n-m}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
组合数的递推式（杨辉三角）&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\dbinom{n}{m}=\dbinom{n-1}{m}+\dbinom{n-1}{m-1}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
基础性质（杨辉三角的一行、&amp;lt;math&amp;gt;(1+1)^n&amp;lt;/math&amp;gt;）&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\dbinom{n}{0}+\dbinom{n}{1}+\dots+\dbinom{n}{n}=\sum_{i=0}^n\dbinom{n}{i}=2^n&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
范德蒙德恒等式&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\sum_{i=0}^k\dbinom{n}{i}\dbinom{m}{k-i}=\dbinom{m+n}{k}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==二项式定理==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;(a+b)^n=\sum_{i=0}^n\dbinom{n}{i}a^{n-i}b^i&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==二项式反演==&lt;br /&gt;
&lt;br /&gt;
记 &amp;lt;math&amp;gt;f_n&amp;lt;/math&amp;gt; 表示恰好使用 &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; 个不同元素形成特定结构的方案数，&amp;lt;math&amp;gt;g_n&amp;lt;/math&amp;gt; 表示从 &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; 个不同元素中选出 &amp;lt;math&amp;gt;i \geq 0&amp;lt;/math&amp;gt; 个元素形成特定结构的总方案数．&lt;br /&gt;
&lt;br /&gt;
若已知 &amp;lt;math&amp;gt;f_n&amp;lt;/math&amp;gt; 求 &amp;lt;math&amp;gt;g_n&amp;lt;/math&amp;gt;，那么显然有：&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;g_n = \sum_{i = 0}^{n} \binom{n}{i} f_i&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
若已知 &amp;lt;math&amp;gt;g_n&amp;lt;/math&amp;gt; 求 &amp;lt;math&amp;gt;f_n&amp;lt;/math&amp;gt;，那么：&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;f_n = \sum_{i = 0}^{n} \binom{n}{i} (-1)^{n-i} g_i&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
上述已知 &amp;lt;math&amp;gt;g_n&amp;lt;/math&amp;gt; 求 &amp;lt;math&amp;gt;f_n&amp;lt;/math&amp;gt; 的过程，就称为“二项式反演”．&lt;br /&gt;
&lt;br /&gt;
==狄利克雷卷积==&lt;br /&gt;
&lt;br /&gt;
==莫比乌斯反演==&lt;br /&gt;
&lt;br /&gt;
===莫比乌斯函数===&lt;br /&gt;
&lt;br /&gt;
莫比乌斯函数（Möbius 函数）定义为&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\mu(n)=&lt;br /&gt;
\begin{cases}&lt;br /&gt;
1,&amp;amp;n=1,\\&lt;br /&gt;
0,&amp;amp;n\text{是某个质数平方的倍数},\\&lt;br /&gt;
(-1)^k,&amp;amp;n \text{是} k \text{个不同质数的乘积}.\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
具体地，假设正整数 &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; 有素因数分解 &amp;lt;math&amp;gt;n=\prod_{i=1}^kp_i^{e_i}&amp;lt;/math&amp;gt;，其中，&amp;lt;math&amp;gt;p_i&amp;lt;/math&amp;gt; 是素数，&amp;lt;math&amp;gt;e_i&amp;lt;/math&amp;gt; 是正整数．那么，三种情形分别对应：&lt;br /&gt;
&lt;br /&gt;
# &amp;lt;math&amp;gt;\mu(1) = 1&amp;lt;/math&amp;gt;；&lt;br /&gt;
# 当存在 &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt; 使得 &amp;lt;math&amp;gt;e_i&amp;gt;1&amp;lt;/math&amp;gt;，即存在任何素因数出现超过一次时，&amp;lt;math&amp;gt;\mu(n)=0&amp;lt;/math&amp;gt;；&lt;br /&gt;
# 否则，对于所有 &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt; 都有 &amp;lt;math&amp;gt;e_i = 1&amp;lt;/math&amp;gt;，即任何素因数都只出现一次时，&amp;lt;math&amp;gt;\mu(n)=(-1)^k&amp;lt;/math&amp;gt;，其中，$k$ 就是互异素因子的个数．&lt;br /&gt;
&lt;br /&gt;
===莫比乌斯反演===&lt;br /&gt;
设 &amp;lt;math&amp;gt;f(n),g(n)&amp;lt;/math&amp;gt; 是两个数论函数．那么，有&lt;br /&gt;
    &lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
f(n) = \sum_{d\mid n}g(d) \iff g(n) = \sum_{d\mid n}\mu\left(\dfrac{n}{d}\right)f(d).&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====扩展====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;    &lt;br /&gt;
f(n) = \sum_{n\mid d}g(d) \iff g(n) = \sum_{n\mid d}\mu\left(\dfrac{d}{n}\right)f(d).&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[文件:莫比乌斯反演.jpg|缩略图|替代=莫比乌斯反演|莫比乌斯反演]]&lt;/div&gt;</summary>
		<author><name>33DAI</name></author>
	</entry>
	<entry>
		<id>https://www.33dai.wiki/index.php?title=%E6%96%87%E4%BB%B6:%E8%8E%AB%E6%AF%94%E4%B9%8C%E6%96%AF%E5%8F%8D%E6%BC%94.jpg&amp;diff=157</id>
		<title>文件:莫比乌斯反演.jpg</title>
		<link rel="alternate" type="text/html" href="https://www.33dai.wiki/index.php?title=%E6%96%87%E4%BB%B6:%E8%8E%AB%E6%AF%94%E4%B9%8C%E6%96%AF%E5%8F%8D%E6%BC%94.jpg&amp;diff=157"/>
		<updated>2026-02-28T09:05:21Z</updated>

		<summary type="html">&lt;p&gt;33DAI：​&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>33DAI</name></author>
	</entry>
	<entry>
		<id>https://www.33dai.wiki/index.php?title=%E5%8F%8D%E6%BC%94&amp;diff=156</id>
		<title>反演</title>
		<link rel="alternate" type="text/html" href="https://www.33dai.wiki/index.php?title=%E5%8F%8D%E6%BC%94&amp;diff=156"/>
		<updated>2026-02-28T08:57:51Z</updated>

		<summary type="html">&lt;p&gt;33DAI：​/* 莫比乌斯函数 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;本页面大量引用 [https://oiwiki.org/ OI Wiki]&lt;br /&gt;
&lt;br /&gt;
组合数 &amp;lt;math&amp;gt;C_n^m&amp;lt;/math&amp;gt; 常用符号 &amp;lt;math&amp;gt;\dbinom{n}{m}&amp;lt;/math&amp;gt; 来表示，读作“&amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; 选 &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt;”。&lt;br /&gt;
&lt;br /&gt;
==组合数经典性质==&lt;br /&gt;
&lt;br /&gt;
选出 &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; 相当于选出 &amp;lt;math&amp;gt;n-m&amp;lt;/math&amp;gt; 个排除。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\dbinom{n}{m}=\dbinom{n}{n-m}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
组合数的递推式（杨辉三角）&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\dbinom{n}{m}=\dbinom{n-1}{m}+\dbinom{n-1}{m-1}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
基础性质（杨辉三角的一行、&amp;lt;math&amp;gt;(1+1)^n&amp;lt;/math&amp;gt;）&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\dbinom{n}{0}+\dbinom{n}{1}+\dots+\dbinom{n}{n}=\sum_{i=0}^n\dbinom{n}{i}=2^n&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
范德蒙德恒等式&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\sum_{i=0}^k\dbinom{n}{i}\dbinom{m}{k-i}=\dbinom{m+n}{k}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==二项式定理==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;(a+b)^n=\sum_{i=0}^n\dbinom{n}{i}a^{n-i}b^i&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==二项式反演==&lt;br /&gt;
&lt;br /&gt;
记 &amp;lt;math&amp;gt;f_n&amp;lt;/math&amp;gt; 表示恰好使用 &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; 个不同元素形成特定结构的方案数，&amp;lt;math&amp;gt;g_n&amp;lt;/math&amp;gt; 表示从 &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; 个不同元素中选出 &amp;lt;math&amp;gt;i \geq 0&amp;lt;/math&amp;gt; 个元素形成特定结构的总方案数．&lt;br /&gt;
&lt;br /&gt;
若已知 &amp;lt;math&amp;gt;f_n&amp;lt;/math&amp;gt; 求 &amp;lt;math&amp;gt;g_n&amp;lt;/math&amp;gt;，那么显然有：&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;g_n = \sum_{i = 0}^{n} \binom{n}{i} f_i&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
若已知 &amp;lt;math&amp;gt;g_n&amp;lt;/math&amp;gt; 求 &amp;lt;math&amp;gt;f_n&amp;lt;/math&amp;gt;，那么：&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;f_n = \sum_{i = 0}^{n} \binom{n}{i} (-1)^{n-i} g_i&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
上述已知 &amp;lt;math&amp;gt;g_n&amp;lt;/math&amp;gt; 求 &amp;lt;math&amp;gt;f_n&amp;lt;/math&amp;gt; 的过程，就称为“二项式反演”．&lt;br /&gt;
&lt;br /&gt;
==狄利克雷卷积==&lt;br /&gt;
&lt;br /&gt;
==莫比乌斯反演==&lt;br /&gt;
&lt;br /&gt;
===莫比乌斯函数===&lt;br /&gt;
&lt;br /&gt;
莫比乌斯函数（Möbius 函数）定义为&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\mu(n)=&lt;br /&gt;
\begin{cases}&lt;br /&gt;
1,&amp;amp;n=1,\\&lt;br /&gt;
0,&amp;amp;n\text{是某个质数平方的倍数},\\&lt;br /&gt;
(-1)^k,&amp;amp;n \text{是} k \text{个不同质数的乘积}.\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
具体地，假设正整数 &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; 有素因数分解 &amp;lt;math&amp;gt;n=\prod_{i=1}^kp_i^{e_i}&amp;lt;/math&amp;gt;，其中，&amp;lt;math&amp;gt;p_i&amp;lt;/math&amp;gt; 是素数，&amp;lt;math&amp;gt;e_i&amp;lt;/math&amp;gt; 是正整数．那么，三种情形分别对应：&lt;br /&gt;
&lt;br /&gt;
# &amp;lt;math&amp;gt;\mu(1) = 1&amp;lt;/math&amp;gt;；&lt;br /&gt;
# 当存在 &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt; 使得 &amp;lt;math&amp;gt;e_i&amp;gt;1&amp;lt;/math&amp;gt;，即存在任何素因数出现超过一次时，&amp;lt;math&amp;gt;\mu(n)=0&amp;lt;/math&amp;gt;；&lt;br /&gt;
# 否则，对于所有 &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt; 都有 &amp;lt;math&amp;gt;e_i = 1&amp;lt;/math&amp;gt;，即任何素因数都只出现一次时，&amp;lt;math&amp;gt;\mu(n)=(-1)^k&amp;lt;/math&amp;gt;，其中，$k$ 就是互异素因子的个数．&lt;br /&gt;
&lt;br /&gt;
===莫比乌斯反演===&lt;br /&gt;
设 &amp;lt;math&amp;gt;f(n),g(n)&amp;lt;/math&amp;gt; 是两个数论函数．那么，有&lt;br /&gt;
    &lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
f(n) = \sum_{d\mid n}g(d) \iff g(n) = \sum_{d\mid n}\mu\left(\dfrac{n}{d}\right)f(d).&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====扩展====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;    &lt;br /&gt;
f(n) = \sum_{n\mid d}g(d) \iff g(n) = \sum_{n\mid d}\mu\left(\dfrac{d}{n}\right)f(d).&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;/div&gt;</summary>
		<author><name>33DAI</name></author>
	</entry>
	<entry>
		<id>https://www.33dai.wiki/index.php?title=%E5%8F%8D%E6%BC%94&amp;diff=155</id>
		<title>反演</title>
		<link rel="alternate" type="text/html" href="https://www.33dai.wiki/index.php?title=%E5%8F%8D%E6%BC%94&amp;diff=155"/>
		<updated>2026-02-28T08:57:29Z</updated>

		<summary type="html">&lt;p&gt;33DAI：​/* 莫比乌斯函数 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;本页面大量引用 [https://oiwiki.org/ OI Wiki]&lt;br /&gt;
&lt;br /&gt;
组合数 &amp;lt;math&amp;gt;C_n^m&amp;lt;/math&amp;gt; 常用符号 &amp;lt;math&amp;gt;\dbinom{n}{m}&amp;lt;/math&amp;gt; 来表示，读作“&amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; 选 &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt;”。&lt;br /&gt;
&lt;br /&gt;
==组合数经典性质==&lt;br /&gt;
&lt;br /&gt;
选出 &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; 相当于选出 &amp;lt;math&amp;gt;n-m&amp;lt;/math&amp;gt; 个排除。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\dbinom{n}{m}=\dbinom{n}{n-m}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
组合数的递推式（杨辉三角）&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\dbinom{n}{m}=\dbinom{n-1}{m}+\dbinom{n-1}{m-1}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
基础性质（杨辉三角的一行、&amp;lt;math&amp;gt;(1+1)^n&amp;lt;/math&amp;gt;）&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\dbinom{n}{0}+\dbinom{n}{1}+\dots+\dbinom{n}{n}=\sum_{i=0}^n\dbinom{n}{i}=2^n&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
范德蒙德恒等式&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\sum_{i=0}^k\dbinom{n}{i}\dbinom{m}{k-i}=\dbinom{m+n}{k}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==二项式定理==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;(a+b)^n=\sum_{i=0}^n\dbinom{n}{i}a^{n-i}b^i&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==二项式反演==&lt;br /&gt;
&lt;br /&gt;
记 &amp;lt;math&amp;gt;f_n&amp;lt;/math&amp;gt; 表示恰好使用 &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; 个不同元素形成特定结构的方案数，&amp;lt;math&amp;gt;g_n&amp;lt;/math&amp;gt; 表示从 &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; 个不同元素中选出 &amp;lt;math&amp;gt;i \geq 0&amp;lt;/math&amp;gt; 个元素形成特定结构的总方案数．&lt;br /&gt;
&lt;br /&gt;
若已知 &amp;lt;math&amp;gt;f_n&amp;lt;/math&amp;gt; 求 &amp;lt;math&amp;gt;g_n&amp;lt;/math&amp;gt;，那么显然有：&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;g_n = \sum_{i = 0}^{n} \binom{n}{i} f_i&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
若已知 &amp;lt;math&amp;gt;g_n&amp;lt;/math&amp;gt; 求 &amp;lt;math&amp;gt;f_n&amp;lt;/math&amp;gt;，那么：&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;f_n = \sum_{i = 0}^{n} \binom{n}{i} (-1)^{n-i} g_i&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
上述已知 &amp;lt;math&amp;gt;g_n&amp;lt;/math&amp;gt; 求 &amp;lt;math&amp;gt;f_n&amp;lt;/math&amp;gt; 的过程，就称为“二项式反演”．&lt;br /&gt;
&lt;br /&gt;
==狄利克雷卷积==&lt;br /&gt;
&lt;br /&gt;
==莫比乌斯反演==&lt;br /&gt;
&lt;br /&gt;
===莫比乌斯函数===&lt;br /&gt;
&lt;br /&gt;
莫比乌斯函数（Möbius 函数）定义为&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\mu(n)=&lt;br /&gt;
\begin{cases}&lt;br /&gt;
1,&amp;amp;n=1,\\&lt;br /&gt;
0,&amp;amp;n\text{是某个质数平方的倍数}\\&lt;br /&gt;
(-1)^k,&amp;amp;n \text{是} k \text{个不同质数的乘积}.\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
具体地，假设正整数 &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; 有素因数分解 &amp;lt;math&amp;gt;n=\prod_{i=1}^kp_i^{e_i}&amp;lt;/math&amp;gt;，其中，&amp;lt;math&amp;gt;p_i&amp;lt;/math&amp;gt; 是素数，&amp;lt;math&amp;gt;e_i&amp;lt;/math&amp;gt; 是正整数．那么，三种情形分别对应：&lt;br /&gt;
&lt;br /&gt;
# &amp;lt;math&amp;gt;\mu(1) = 1&amp;lt;/math&amp;gt;；&lt;br /&gt;
# 当存在 &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt; 使得 &amp;lt;math&amp;gt;e_i&amp;gt;1&amp;lt;/math&amp;gt;，即存在任何素因数出现超过一次时，&amp;lt;math&amp;gt;\mu(n)=0&amp;lt;/math&amp;gt;；&lt;br /&gt;
# 否则，对于所有 &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt; 都有 &amp;lt;math&amp;gt;e_i = 1&amp;lt;/math&amp;gt;，即任何素因数都只出现一次时，&amp;lt;math&amp;gt;\mu(n)=(-1)^k&amp;lt;/math&amp;gt;，其中，$k$ 就是互异素因子的个数．&lt;br /&gt;
&lt;br /&gt;
===莫比乌斯反演===&lt;br /&gt;
设 &amp;lt;math&amp;gt;f(n),g(n)&amp;lt;/math&amp;gt; 是两个数论函数．那么，有&lt;br /&gt;
    &lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
f(n) = \sum_{d\mid n}g(d) \iff g(n) = \sum_{d\mid n}\mu\left(\dfrac{n}{d}\right)f(d).&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====扩展====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;    &lt;br /&gt;
f(n) = \sum_{n\mid d}g(d) \iff g(n) = \sum_{n\mid d}\mu\left(\dfrac{d}{n}\right)f(d).&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;/div&gt;</summary>
		<author><name>33DAI</name></author>
	</entry>
	<entry>
		<id>https://www.33dai.wiki/index.php?title=%E5%8F%8D%E6%BC%94&amp;diff=154</id>
		<title>反演</title>
		<link rel="alternate" type="text/html" href="https://www.33dai.wiki/index.php?title=%E5%8F%8D%E6%BC%94&amp;diff=154"/>
		<updated>2026-02-28T07:53:36Z</updated>

		<summary type="html">&lt;p&gt;33DAI：​/* 扩展 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;本页面大量引用 [https://oiwiki.org/ OI Wiki]&lt;br /&gt;
&lt;br /&gt;
组合数 &amp;lt;math&amp;gt;C_n^m&amp;lt;/math&amp;gt; 常用符号 &amp;lt;math&amp;gt;\dbinom{n}{m}&amp;lt;/math&amp;gt; 来表示，读作“&amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; 选 &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt;”。&lt;br /&gt;
&lt;br /&gt;
==组合数经典性质==&lt;br /&gt;
&lt;br /&gt;
选出 &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; 相当于选出 &amp;lt;math&amp;gt;n-m&amp;lt;/math&amp;gt; 个排除。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\dbinom{n}{m}=\dbinom{n}{n-m}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
组合数的递推式（杨辉三角）&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\dbinom{n}{m}=\dbinom{n-1}{m}+\dbinom{n-1}{m-1}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
基础性质（杨辉三角的一行、&amp;lt;math&amp;gt;(1+1)^n&amp;lt;/math&amp;gt;）&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\dbinom{n}{0}+\dbinom{n}{1}+\dots+\dbinom{n}{n}=\sum_{i=0}^n\dbinom{n}{i}=2^n&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
范德蒙德恒等式&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\sum_{i=0}^k\dbinom{n}{i}\dbinom{m}{k-i}=\dbinom{m+n}{k}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==二项式定理==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;(a+b)^n=\sum_{i=0}^n\dbinom{n}{i}a^{n-i}b^i&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==二项式反演==&lt;br /&gt;
&lt;br /&gt;
记 &amp;lt;math&amp;gt;f_n&amp;lt;/math&amp;gt; 表示恰好使用 &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; 个不同元素形成特定结构的方案数，&amp;lt;math&amp;gt;g_n&amp;lt;/math&amp;gt; 表示从 &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; 个不同元素中选出 &amp;lt;math&amp;gt;i \geq 0&amp;lt;/math&amp;gt; 个元素形成特定结构的总方案数．&lt;br /&gt;
&lt;br /&gt;
若已知 &amp;lt;math&amp;gt;f_n&amp;lt;/math&amp;gt; 求 &amp;lt;math&amp;gt;g_n&amp;lt;/math&amp;gt;，那么显然有：&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;g_n = \sum_{i = 0}^{n} \binom{n}{i} f_i&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
若已知 &amp;lt;math&amp;gt;g_n&amp;lt;/math&amp;gt; 求 &amp;lt;math&amp;gt;f_n&amp;lt;/math&amp;gt;，那么：&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;f_n = \sum_{i = 0}^{n} \binom{n}{i} (-1)^{n-i} g_i&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
上述已知 &amp;lt;math&amp;gt;g_n&amp;lt;/math&amp;gt; 求 &amp;lt;math&amp;gt;f_n&amp;lt;/math&amp;gt; 的过程，就称为“二项式反演”．&lt;br /&gt;
&lt;br /&gt;
==狄利克雷卷积==&lt;br /&gt;
&lt;br /&gt;
==莫比乌斯反演==&lt;br /&gt;
&lt;br /&gt;
===莫比乌斯函数===&lt;br /&gt;
&lt;br /&gt;
莫比乌斯函数（Möbius 函数）定义为&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\mu(n)=&lt;br /&gt;
\begin{cases}&lt;br /&gt;
1,&amp;amp;n=1,\\&lt;br /&gt;
0,&amp;amp;n\text{ is divisible by a square }&amp;gt;1,\\&lt;br /&gt;
(-1)^k,&amp;amp;n\text{ is the product of }k\text{ distinct primes}.\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
具体地，假设正整数 &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; 有素因数分解 &amp;lt;math&amp;gt;n=\prod_{i=1}^kp_i^{e_i}&amp;lt;/math&amp;gt;，其中，&amp;lt;math&amp;gt;p_i&amp;lt;/math&amp;gt; 是素数，&amp;lt;math&amp;gt;e_i&amp;lt;/math&amp;gt; 是正整数．那么，三种情形分别对应：&lt;br /&gt;
&lt;br /&gt;
# &amp;lt;math&amp;gt;\mu(1) = 1&amp;lt;/math&amp;gt;；&lt;br /&gt;
# 当存在 &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt; 使得 &amp;lt;math&amp;gt;e_i&amp;gt;1&amp;lt;/math&amp;gt;，即存在任何素因数出现超过一次时，&amp;lt;math&amp;gt;\mu(n)=0&amp;lt;/math&amp;gt;；&lt;br /&gt;
# 否则，对于所有 &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt; 都有 &amp;lt;math&amp;gt;e_i = 1&amp;lt;/math&amp;gt;，即任何素因数都只出现一次时，&amp;lt;math&amp;gt;\mu(n)=(-1)^k&amp;lt;/math&amp;gt;，其中，$k$ 就是互异素因子的个数．&lt;br /&gt;
&lt;br /&gt;
===莫比乌斯反演===&lt;br /&gt;
设 &amp;lt;math&amp;gt;f(n),g(n)&amp;lt;/math&amp;gt; 是两个数论函数．那么，有&lt;br /&gt;
    &lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
f(n) = \sum_{d\mid n}g(d) \iff g(n) = \sum_{d\mid n}\mu\left(\dfrac{n}{d}\right)f(d).&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====扩展====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;    &lt;br /&gt;
f(n) = \sum_{n\mid d}g(d) \iff g(n) = \sum_{n\mid d}\mu\left(\dfrac{d}{n}\right)f(d).&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;/div&gt;</summary>
		<author><name>33DAI</name></author>
	</entry>
	<entry>
		<id>https://www.33dai.wiki/index.php?title=%E5%8F%8D%E6%BC%94&amp;diff=153</id>
		<title>反演</title>
		<link rel="alternate" type="text/html" href="https://www.33dai.wiki/index.php?title=%E5%8F%8D%E6%BC%94&amp;diff=153"/>
		<updated>2026-02-28T07:05:50Z</updated>

		<summary type="html">&lt;p&gt;33DAI：​/* 莫比乌斯反演 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;本页面大量引用 [https://oiwiki.org/ OI Wiki]&lt;br /&gt;
&lt;br /&gt;
组合数 &amp;lt;math&amp;gt;C_n^m&amp;lt;/math&amp;gt; 常用符号 &amp;lt;math&amp;gt;\dbinom{n}{m}&amp;lt;/math&amp;gt; 来表示，读作“&amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; 选 &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt;”。&lt;br /&gt;
&lt;br /&gt;
==组合数经典性质==&lt;br /&gt;
&lt;br /&gt;
选出 &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; 相当于选出 &amp;lt;math&amp;gt;n-m&amp;lt;/math&amp;gt; 个排除。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\dbinom{n}{m}=\dbinom{n}{n-m}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
组合数的递推式（杨辉三角）&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\dbinom{n}{m}=\dbinom{n-1}{m}+\dbinom{n-1}{m-1}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
基础性质（杨辉三角的一行、&amp;lt;math&amp;gt;(1+1)^n&amp;lt;/math&amp;gt;）&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\dbinom{n}{0}+\dbinom{n}{1}+\dots+\dbinom{n}{n}=\sum_{i=0}^n\dbinom{n}{i}=2^n&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
范德蒙德恒等式&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\sum_{i=0}^k\dbinom{n}{i}\dbinom{m}{k-i}=\dbinom{m+n}{k}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==二项式定理==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;(a+b)^n=\sum_{i=0}^n\dbinom{n}{i}a^{n-i}b^i&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==二项式反演==&lt;br /&gt;
&lt;br /&gt;
记 &amp;lt;math&amp;gt;f_n&amp;lt;/math&amp;gt; 表示恰好使用 &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; 个不同元素形成特定结构的方案数，&amp;lt;math&amp;gt;g_n&amp;lt;/math&amp;gt; 表示从 &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; 个不同元素中选出 &amp;lt;math&amp;gt;i \geq 0&amp;lt;/math&amp;gt; 个元素形成特定结构的总方案数．&lt;br /&gt;
&lt;br /&gt;
若已知 &amp;lt;math&amp;gt;f_n&amp;lt;/math&amp;gt; 求 &amp;lt;math&amp;gt;g_n&amp;lt;/math&amp;gt;，那么显然有：&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;g_n = \sum_{i = 0}^{n} \binom{n}{i} f_i&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
若已知 &amp;lt;math&amp;gt;g_n&amp;lt;/math&amp;gt; 求 &amp;lt;math&amp;gt;f_n&amp;lt;/math&amp;gt;，那么：&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;f_n = \sum_{i = 0}^{n} \binom{n}{i} (-1)^{n-i} g_i&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
上述已知 &amp;lt;math&amp;gt;g_n&amp;lt;/math&amp;gt; 求 &amp;lt;math&amp;gt;f_n&amp;lt;/math&amp;gt; 的过程，就称为“二项式反演”．&lt;br /&gt;
&lt;br /&gt;
==狄利克雷卷积==&lt;br /&gt;
&lt;br /&gt;
==莫比乌斯反演==&lt;br /&gt;
&lt;br /&gt;
===莫比乌斯函数===&lt;br /&gt;
&lt;br /&gt;
莫比乌斯函数（Möbius 函数）定义为&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\mu(n)=&lt;br /&gt;
\begin{cases}&lt;br /&gt;
1,&amp;amp;n=1,\\&lt;br /&gt;
0,&amp;amp;n\text{ is divisible by a square }&amp;gt;1,\\&lt;br /&gt;
(-1)^k,&amp;amp;n\text{ is the product of }k\text{ distinct primes}.\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
具体地，假设正整数 &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; 有素因数分解 &amp;lt;math&amp;gt;n=\prod_{i=1}^kp_i^{e_i}&amp;lt;/math&amp;gt;，其中，&amp;lt;math&amp;gt;p_i&amp;lt;/math&amp;gt; 是素数，&amp;lt;math&amp;gt;e_i&amp;lt;/math&amp;gt; 是正整数．那么，三种情形分别对应：&lt;br /&gt;
&lt;br /&gt;
# &amp;lt;math&amp;gt;\mu(1) = 1&amp;lt;/math&amp;gt;；&lt;br /&gt;
# 当存在 &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt; 使得 &amp;lt;math&amp;gt;e_i&amp;gt;1&amp;lt;/math&amp;gt;，即存在任何素因数出现超过一次时，&amp;lt;math&amp;gt;\mu(n)=0&amp;lt;/math&amp;gt;；&lt;br /&gt;
# 否则，对于所有 &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt; 都有 &amp;lt;math&amp;gt;e_i = 1&amp;lt;/math&amp;gt;，即任何素因数都只出现一次时，&amp;lt;math&amp;gt;\mu(n)=(-1)^k&amp;lt;/math&amp;gt;，其中，$k$ 就是互异素因子的个数．&lt;br /&gt;
&lt;br /&gt;
===莫比乌斯反演===&lt;br /&gt;
设 &amp;lt;math&amp;gt;f(n),g(n)&amp;lt;/math&amp;gt; 是两个数论函数．那么，有&lt;br /&gt;
    &lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
f(n) = \sum_{d\mid n}g(d) \iff g(n) = \sum_{d\mid n}\mu\left(\dfrac{n}{d}\right)f(d).&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====扩展====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;    &lt;br /&gt;
f(n) = \sum_{n\mid d}g(d) \iff g(n) = \sum_{n\mid d}\mu\left(\dfrac{d}{n}\right)f(d).&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
对应证明：&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
    \begin{aligned}&lt;br /&gt;
    \sum_{n\mid d}\mu\left(\dfrac{d}{n}\right)f(d)&lt;br /&gt;
    &amp;amp;= \sum_{n\mid d}\mu\left(\dfrac{d}{n}\right)\sum_{d\mid k}g(k)\\&lt;br /&gt;
    &amp;amp;= \sum_{n\mid k}g(k)\sum_{d}[n\mid d\mid k]\mu\left(\dfrac{d}{n}\right)\\&lt;br /&gt;
    &amp;amp;= \sum_{n\mid k}g(k)\sum_{n\mid d}\left[\dfrac{d}{n}\mid\dfrac{k}{n}\right]\mu\left(\dfrac{d}{n}\right)\\&lt;br /&gt;
    &amp;amp;= \sum_{n\mid k}g(k)\left[\dfrac{k}{n}=1\right]\\&lt;br /&gt;
    &amp;amp;= g(n).&lt;br /&gt;
    \end{aligned}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;/div&gt;</summary>
		<author><name>33DAI</name></author>
	</entry>
	<entry>
		<id>https://www.33dai.wiki/index.php?title=%E5%8F%8D%E6%BC%94&amp;diff=152</id>
		<title>反演</title>
		<link rel="alternate" type="text/html" href="https://www.33dai.wiki/index.php?title=%E5%8F%8D%E6%BC%94&amp;diff=152"/>
		<updated>2026-02-28T06:12:06Z</updated>

		<summary type="html">&lt;p&gt;33DAI：​/* 莫比乌斯反演 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;本页面大量引用 [https://oiwiki.org/ OI Wiki]&lt;br /&gt;
&lt;br /&gt;
组合数 &amp;lt;math&amp;gt;C_n^m&amp;lt;/math&amp;gt; 常用符号 &amp;lt;math&amp;gt;\dbinom{n}{m}&amp;lt;/math&amp;gt; 来表示，读作“&amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; 选 &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt;”。&lt;br /&gt;
&lt;br /&gt;
==组合数经典性质==&lt;br /&gt;
&lt;br /&gt;
选出 &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; 相当于选出 &amp;lt;math&amp;gt;n-m&amp;lt;/math&amp;gt; 个排除。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\dbinom{n}{m}=\dbinom{n}{n-m}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
组合数的递推式（杨辉三角）&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\dbinom{n}{m}=\dbinom{n-1}{m}+\dbinom{n-1}{m-1}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
基础性质（杨辉三角的一行、&amp;lt;math&amp;gt;(1+1)^n&amp;lt;/math&amp;gt;）&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\dbinom{n}{0}+\dbinom{n}{1}+\dots+\dbinom{n}{n}=\sum_{i=0}^n\dbinom{n}{i}=2^n&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
范德蒙德恒等式&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\sum_{i=0}^k\dbinom{n}{i}\dbinom{m}{k-i}=\dbinom{m+n}{k}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==二项式定理==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;(a+b)^n=\sum_{i=0}^n\dbinom{n}{i}a^{n-i}b^i&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==二项式反演==&lt;br /&gt;
&lt;br /&gt;
记 &amp;lt;math&amp;gt;f_n&amp;lt;/math&amp;gt; 表示恰好使用 &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; 个不同元素形成特定结构的方案数，&amp;lt;math&amp;gt;g_n&amp;lt;/math&amp;gt; 表示从 &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; 个不同元素中选出 &amp;lt;math&amp;gt;i \geq 0&amp;lt;/math&amp;gt; 个元素形成特定结构的总方案数．&lt;br /&gt;
&lt;br /&gt;
若已知 &amp;lt;math&amp;gt;f_n&amp;lt;/math&amp;gt; 求 &amp;lt;math&amp;gt;g_n&amp;lt;/math&amp;gt;，那么显然有：&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;g_n = \sum_{i = 0}^{n} \binom{n}{i} f_i&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
若已知 &amp;lt;math&amp;gt;g_n&amp;lt;/math&amp;gt; 求 &amp;lt;math&amp;gt;f_n&amp;lt;/math&amp;gt;，那么：&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;f_n = \sum_{i = 0}^{n} \binom{n}{i} (-1)^{n-i} g_i&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
上述已知 &amp;lt;math&amp;gt;g_n&amp;lt;/math&amp;gt; 求 &amp;lt;math&amp;gt;f_n&amp;lt;/math&amp;gt; 的过程，就称为“二项式反演”．&lt;br /&gt;
&lt;br /&gt;
==狄利克雷卷积==&lt;br /&gt;
&lt;br /&gt;
==莫比乌斯反演==&lt;br /&gt;
&lt;br /&gt;
===莫比乌斯函数===&lt;br /&gt;
&lt;br /&gt;
莫比乌斯函数（Möbius 函数）定义为&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\mu(n)=&lt;br /&gt;
\begin{cases}&lt;br /&gt;
1,&amp;amp;n=1,\\&lt;br /&gt;
0,&amp;amp;n\text{ is divisible by a square }&amp;gt;1,\\&lt;br /&gt;
(-1)^k,&amp;amp;n\text{ is the product of }k\text{ distinct primes}.\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
具体地，假设正整数 &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; 有素因数分解 &amp;lt;math&amp;gt;n=\prod_{i=1}^kp_i^{e_i}&amp;lt;/math&amp;gt;，其中，&amp;lt;math&amp;gt;p_i&amp;lt;/math&amp;gt; 是素数，&amp;lt;math&amp;gt;e_i&amp;lt;/math&amp;gt; 是正整数．那么，三种情形分别对应：&lt;br /&gt;
&lt;br /&gt;
# &amp;lt;math&amp;gt;\mu(1) = 1&amp;lt;/math&amp;gt;；&lt;br /&gt;
# 当存在 &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt; 使得 &amp;lt;math&amp;gt;e_i&amp;gt;1&amp;lt;/math&amp;gt;，即存在任何素因数出现超过一次时，&amp;lt;math&amp;gt;\mu(n)=0&amp;lt;/math&amp;gt;；&lt;br /&gt;
# 否则，对于所有 &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt; 都有 &amp;lt;math&amp;gt;e_i = 1&amp;lt;/math&amp;gt;，即任何素因数都只出现一次时，&amp;lt;math&amp;gt;\mu(n)=(-1)^k&amp;lt;/math&amp;gt;，其中，$k$ 就是互异素因子的个数．&lt;br /&gt;
&lt;br /&gt;
===莫比乌斯反演===&lt;br /&gt;
设 &amp;lt;math&amp;gt;f(n),g(n)&amp;lt;/math&amp;gt; 是两个数论函数．那么，有&lt;br /&gt;
    &lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
f(n) = \sum_{d\mid n}g(d) \iff g(n) = \sum_{d\mid n}\mu\left(\dfrac{n}{d}\right)f(d).&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;/div&gt;</summary>
		<author><name>33DAI</name></author>
	</entry>
	<entry>
		<id>https://www.33dai.wiki/index.php?title=%E5%8F%8D%E6%BC%94&amp;diff=151</id>
		<title>反演</title>
		<link rel="alternate" type="text/html" href="https://www.33dai.wiki/index.php?title=%E5%8F%8D%E6%BC%94&amp;diff=151"/>
		<updated>2026-02-28T06:10:51Z</updated>

		<summary type="html">&lt;p&gt;33DAI：​/* 莫比乌斯反演 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;本页面大量引用 [https://oiwiki.org/ OI Wiki]&lt;br /&gt;
&lt;br /&gt;
组合数 &amp;lt;math&amp;gt;C_n^m&amp;lt;/math&amp;gt; 常用符号 &amp;lt;math&amp;gt;\dbinom{n}{m}&amp;lt;/math&amp;gt; 来表示，读作“&amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; 选 &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt;”。&lt;br /&gt;
&lt;br /&gt;
==组合数经典性质==&lt;br /&gt;
&lt;br /&gt;
选出 &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; 相当于选出 &amp;lt;math&amp;gt;n-m&amp;lt;/math&amp;gt; 个排除。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\dbinom{n}{m}=\dbinom{n}{n-m}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
组合数的递推式（杨辉三角）&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\dbinom{n}{m}=\dbinom{n-1}{m}+\dbinom{n-1}{m-1}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
基础性质（杨辉三角的一行、&amp;lt;math&amp;gt;(1+1)^n&amp;lt;/math&amp;gt;）&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\dbinom{n}{0}+\dbinom{n}{1}+\dots+\dbinom{n}{n}=\sum_{i=0}^n\dbinom{n}{i}=2^n&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
范德蒙德恒等式&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\sum_{i=0}^k\dbinom{n}{i}\dbinom{m}{k-i}=\dbinom{m+n}{k}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==二项式定理==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;(a+b)^n=\sum_{i=0}^n\dbinom{n}{i}a^{n-i}b^i&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==二项式反演==&lt;br /&gt;
&lt;br /&gt;
记 &amp;lt;math&amp;gt;f_n&amp;lt;/math&amp;gt; 表示恰好使用 &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; 个不同元素形成特定结构的方案数，&amp;lt;math&amp;gt;g_n&amp;lt;/math&amp;gt; 表示从 &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; 个不同元素中选出 &amp;lt;math&amp;gt;i \geq 0&amp;lt;/math&amp;gt; 个元素形成特定结构的总方案数．&lt;br /&gt;
&lt;br /&gt;
若已知 &amp;lt;math&amp;gt;f_n&amp;lt;/math&amp;gt; 求 &amp;lt;math&amp;gt;g_n&amp;lt;/math&amp;gt;，那么显然有：&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;g_n = \sum_{i = 0}^{n} \binom{n}{i} f_i&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
若已知 &amp;lt;math&amp;gt;g_n&amp;lt;/math&amp;gt; 求 &amp;lt;math&amp;gt;f_n&amp;lt;/math&amp;gt;，那么：&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;f_n = \sum_{i = 0}^{n} \binom{n}{i} (-1)^{n-i} g_i&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
上述已知 &amp;lt;math&amp;gt;g_n&amp;lt;/math&amp;gt; 求 &amp;lt;math&amp;gt;f_n&amp;lt;/math&amp;gt; 的过程，就称为“二项式反演”．&lt;br /&gt;
&lt;br /&gt;
==狄利克雷卷积==&lt;br /&gt;
&lt;br /&gt;
==莫比乌斯反演==&lt;br /&gt;
&lt;br /&gt;
===莫比乌斯函数===&lt;br /&gt;
&lt;br /&gt;
莫比乌斯函数（Möbius 函数）定义为&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\mu(n)=&lt;br /&gt;
\begin{cases}&lt;br /&gt;
1,&amp;amp;n=1,\\&lt;br /&gt;
0,&amp;amp;n\text{ is divisible by a square }&amp;gt;1,\\&lt;br /&gt;
(-1)^k,&amp;amp;n\text{ is the product of }k\text{ distinct primes}.\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
具体地，假设正整数 &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; 有素因数分解 &amp;lt;math&amp;gt;n=\prod_{i=1}^kp_i^{e_i}&amp;lt;/math&amp;gt;，其中，&amp;lt;math&amp;gt;p_i&amp;lt;/math&amp;gt; 是素数，&amp;lt;math&amp;gt;e_i&amp;lt;/math&amp;gt; 是正整数．那么，三种情形分别对应：&lt;br /&gt;
&lt;br /&gt;
# &amp;lt;math&amp;gt;\mu(1) = 1&amp;lt;/math&amp;gt;；&lt;br /&gt;
# 当存在 &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt; 使得 &amp;lt;math&amp;gt;e_i&amp;gt;1&amp;lt;/math&amp;gt;，即存在任何素因数出现超过一次时，&amp;lt;math&amp;gt;\mu(n)=0&amp;lt;/math&amp;gt;；&lt;br /&gt;
# 否则，对于所有 &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt; 都有 &amp;lt;math&amp;gt;e_i = 1&amp;lt;/math&amp;gt;，即任何素因数都只出现一次时，&amp;lt;math&amp;gt;\mu(n)=(-1)^k&amp;lt;/math&amp;gt;，其中，$k$ 就是互异素因子的个数．&lt;/div&gt;</summary>
		<author><name>33DAI</name></author>
	</entry>
	<entry>
		<id>https://www.33dai.wiki/index.php?title=%E5%8F%8D%E6%BC%94&amp;diff=150</id>
		<title>反演</title>
		<link rel="alternate" type="text/html" href="https://www.33dai.wiki/index.php?title=%E5%8F%8D%E6%BC%94&amp;diff=150"/>
		<updated>2026-02-28T02:40:21Z</updated>

		<summary type="html">&lt;p&gt;33DAI：​&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;本页面大量引用 [https://oiwiki.org/ OI Wiki]&lt;br /&gt;
&lt;br /&gt;
组合数 &amp;lt;math&amp;gt;C_n^m&amp;lt;/math&amp;gt; 常用符号 &amp;lt;math&amp;gt;\dbinom{n}{m}&amp;lt;/math&amp;gt; 来表示，读作“&amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; 选 &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt;”。&lt;br /&gt;
&lt;br /&gt;
==组合数经典性质==&lt;br /&gt;
&lt;br /&gt;
选出 &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; 相当于选出 &amp;lt;math&amp;gt;n-m&amp;lt;/math&amp;gt; 个排除。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\dbinom{n}{m}=\dbinom{n}{n-m}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
组合数的递推式（杨辉三角）&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\dbinom{n}{m}=\dbinom{n-1}{m}+\dbinom{n-1}{m-1}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
基础性质（杨辉三角的一行、&amp;lt;math&amp;gt;(1+1)^n&amp;lt;/math&amp;gt;）&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\dbinom{n}{0}+\dbinom{n}{1}+\dots+\dbinom{n}{n}=\sum_{i=0}^n\dbinom{n}{i}=2^n&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
范德蒙德恒等式&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\sum_{i=0}^k\dbinom{n}{i}\dbinom{m}{k-i}=\dbinom{m+n}{k}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==二项式定理==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;(a+b)^n=\sum_{i=0}^n\dbinom{n}{i}a^{n-i}b^i&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==二项式反演==&lt;br /&gt;
&lt;br /&gt;
记 &amp;lt;math&amp;gt;f_n&amp;lt;/math&amp;gt; 表示恰好使用 &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; 个不同元素形成特定结构的方案数，&amp;lt;math&amp;gt;g_n&amp;lt;/math&amp;gt; 表示从 &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; 个不同元素中选出 &amp;lt;math&amp;gt;i \geq 0&amp;lt;/math&amp;gt; 个元素形成特定结构的总方案数．&lt;br /&gt;
&lt;br /&gt;
若已知 &amp;lt;math&amp;gt;f_n&amp;lt;/math&amp;gt; 求 &amp;lt;math&amp;gt;g_n&amp;lt;/math&amp;gt;，那么显然有：&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;g_n = \sum_{i = 0}^{n} \binom{n}{i} f_i&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
若已知 &amp;lt;math&amp;gt;g_n&amp;lt;/math&amp;gt; 求 &amp;lt;math&amp;gt;f_n&amp;lt;/math&amp;gt;，那么：&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;f_n = \sum_{i = 0}^{n} \binom{n}{i} (-1)^{n-i} g_i&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
上述已知 &amp;lt;math&amp;gt;g_n&amp;lt;/math&amp;gt; 求 &amp;lt;math&amp;gt;f_n&amp;lt;/math&amp;gt; 的过程，就称为“二项式反演”．&lt;br /&gt;
&lt;br /&gt;
==狄利克雷卷积==&lt;br /&gt;
&lt;br /&gt;
==莫比乌斯反演==&lt;/div&gt;</summary>
		<author><name>33DAI</name></author>
	</entry>
	<entry>
		<id>https://www.33dai.wiki/index.php?title=%E5%8F%8D%E6%BC%94&amp;diff=149</id>
		<title>反演</title>
		<link rel="alternate" type="text/html" href="https://www.33dai.wiki/index.php?title=%E5%8F%8D%E6%BC%94&amp;diff=149"/>
		<updated>2026-02-28T02:39:07Z</updated>

		<summary type="html">&lt;p&gt;33DAI：​/* 二项式反演 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;组合数 &amp;lt;math&amp;gt;C_n^m&amp;lt;/math&amp;gt; 常用符号 &amp;lt;math&amp;gt;\dbinom{n}{m}&amp;lt;/math&amp;gt; 来表示，读作“&amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; 选 &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt;”。&lt;br /&gt;
&lt;br /&gt;
==组合数经典性质==&lt;br /&gt;
&lt;br /&gt;
选出 &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; 相当于选出 &amp;lt;math&amp;gt;n-m&amp;lt;/math&amp;gt; 个排除。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\dbinom{n}{m}=\dbinom{n}{n-m}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
组合数的递推式（杨辉三角）&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\dbinom{n}{m}=\dbinom{n-1}{m}+\dbinom{n-1}{m-1}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
基础性质（杨辉三角的一行、&amp;lt;math&amp;gt;(1+1)^n&amp;lt;/math&amp;gt;）&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\dbinom{n}{0}+\dbinom{n}{1}+\dots+\dbinom{n}{n}=\sum_{i=0}^n\dbinom{n}{i}=2^n&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
范德蒙德恒等式&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\sum_{i=0}^k\dbinom{n}{i}\dbinom{m}{k-i}=\dbinom{m+n}{k}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==二项式定理==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;(a+b)^n=\sum_{i=0}^n\dbinom{n}{i}a^{n-i}b^i&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==二项式反演==&lt;br /&gt;
&lt;br /&gt;
记 &amp;lt;math&amp;gt;f_n&amp;lt;/math&amp;gt; 表示恰好使用 &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; 个不同元素形成特定结构的方案数，&amp;lt;math&amp;gt;g_n&amp;lt;/math&amp;gt; 表示从 &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; 个不同元素中选出 &amp;lt;math&amp;gt;i \geq 0&amp;lt;/math&amp;gt; 个元素形成特定结构的总方案数．&lt;br /&gt;
&lt;br /&gt;
若已知 &amp;lt;math&amp;gt;f_n&amp;lt;/math&amp;gt; 求 &amp;lt;math&amp;gt;g_n&amp;lt;/math&amp;gt;，那么显然有：&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;g_n = \sum_{i = 0}^{n} \binom{n}{i} f_i&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
若已知 &amp;lt;math&amp;gt;g_n&amp;lt;/math&amp;gt; 求 &amp;lt;math&amp;gt;f_n&amp;lt;/math&amp;gt;，那么：&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;f_n = \sum_{i = 0}^{n} \binom{n}{i} (-1)^{n-i} g_i&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
上述已知 &amp;lt;math&amp;gt;g_n&amp;lt;/math&amp;gt; 求 &amp;lt;math&amp;gt;f_n&amp;lt;/math&amp;gt; 的过程，就称为“二项式反演”．&lt;br /&gt;
&lt;br /&gt;
==狄利克雷卷积==&lt;br /&gt;
&lt;br /&gt;
==莫比乌斯反演==&lt;/div&gt;</summary>
		<author><name>33DAI</name></author>
	</entry>
	<entry>
		<id>https://www.33dai.wiki/index.php?title=%E5%8F%8D%E6%BC%94&amp;diff=148</id>
		<title>反演</title>
		<link rel="alternate" type="text/html" href="https://www.33dai.wiki/index.php?title=%E5%8F%8D%E6%BC%94&amp;diff=148"/>
		<updated>2026-02-28T02:38:48Z</updated>

		<summary type="html">&lt;p&gt;33DAI：​/* 二项式反演 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;组合数 &amp;lt;math&amp;gt;C_n^m&amp;lt;/math&amp;gt; 常用符号 &amp;lt;math&amp;gt;\dbinom{n}{m}&amp;lt;/math&amp;gt; 来表示，读作“&amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; 选 &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt;”。&lt;br /&gt;
&lt;br /&gt;
==组合数经典性质==&lt;br /&gt;
&lt;br /&gt;
选出 &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; 相当于选出 &amp;lt;math&amp;gt;n-m&amp;lt;/math&amp;gt; 个排除。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\dbinom{n}{m}=\dbinom{n}{n-m}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
组合数的递推式（杨辉三角）&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\dbinom{n}{m}=\dbinom{n-1}{m}+\dbinom{n-1}{m-1}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
基础性质（杨辉三角的一行、&amp;lt;math&amp;gt;(1+1)^n&amp;lt;/math&amp;gt;）&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\dbinom{n}{0}+\dbinom{n}{1}+\dots+\dbinom{n}{n}=\sum_{i=0}^n\dbinom{n}{i}=2^n&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
范德蒙德恒等式&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\sum_{i=0}^k\dbinom{n}{i}\dbinom{m}{k-i}=\dbinom{m+n}{k}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==二项式定理==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;(a+b)^n=\sum_{i=0}^n\dbinom{n}{i}a^{n-i}b^i&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==二项式反演==&lt;br /&gt;
&lt;br /&gt;
记 &amp;lt;math&amp;gt;f_n&amp;lt;/math&amp;gt; 表示恰好使用 $n$ 个不同元素形成特定结构的方案数，&amp;lt;math&amp;gt;g_n&amp;lt;/math&amp;gt; 表示从 &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; 个不同元素中选出 &amp;lt;math&amp;gt;i \geq 0&amp;lt;/math&amp;gt; 个元素形成特定结构的总方案数．&lt;br /&gt;
&lt;br /&gt;
若已知 &amp;lt;math&amp;gt;f_n&amp;lt;/math&amp;gt; 求 &amp;lt;math&amp;gt;g_n&amp;lt;/math&amp;gt;，那么显然有：&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;g_n = \sum_{i = 0}^{n} \binom{n}{i} f_i&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
若已知 &amp;lt;math&amp;gt;g_n&amp;lt;/math&amp;gt; 求 &amp;lt;math&amp;gt;f_n&amp;lt;/math&amp;gt;，那么：&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;f_n = \sum_{i = 0}^{n} \binom{n}{i} (-1)^{n-i} g_i&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
上述已知 &amp;lt;math&amp;gt;g_n&amp;lt;/math&amp;gt; 求 &amp;lt;math&amp;gt;f_n&amp;lt;/math&amp;gt; 的过程，就称为“二项式反演”．&lt;br /&gt;
&lt;br /&gt;
==狄利克雷卷积==&lt;br /&gt;
&lt;br /&gt;
==莫比乌斯反演==&lt;/div&gt;</summary>
		<author><name>33DAI</name></author>
	</entry>
	<entry>
		<id>https://www.33dai.wiki/index.php?title=%E5%8F%8D%E6%BC%94&amp;diff=147</id>
		<title>反演</title>
		<link rel="alternate" type="text/html" href="https://www.33dai.wiki/index.php?title=%E5%8F%8D%E6%BC%94&amp;diff=147"/>
		<updated>2026-02-28T02:34:24Z</updated>

		<summary type="html">&lt;p&gt;33DAI：​/* 二项式定理 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;组合数 &amp;lt;math&amp;gt;C_n^m&amp;lt;/math&amp;gt; 常用符号 &amp;lt;math&amp;gt;\dbinom{n}{m}&amp;lt;/math&amp;gt; 来表示，读作“&amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; 选 &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt;”。&lt;br /&gt;
&lt;br /&gt;
==组合数经典性质==&lt;br /&gt;
&lt;br /&gt;
选出 &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; 相当于选出 &amp;lt;math&amp;gt;n-m&amp;lt;/math&amp;gt; 个排除。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\dbinom{n}{m}=\dbinom{n}{n-m}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
组合数的递推式（杨辉三角）&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\dbinom{n}{m}=\dbinom{n-1}{m}+\dbinom{n-1}{m-1}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
基础性质（杨辉三角的一行、&amp;lt;math&amp;gt;(1+1)^n&amp;lt;/math&amp;gt;）&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\dbinom{n}{0}+\dbinom{n}{1}+\dots+\dbinom{n}{n}=\sum_{i=0}^n\dbinom{n}{i}=2^n&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
范德蒙德恒等式&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\sum_{i=0}^k\dbinom{n}{i}\dbinom{m}{k-i}=\dbinom{m+n}{k}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==二项式定理==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;(a+b)^n=\sum_{i=0}^n\dbinom{n}{i}a^{n-i}b^i&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==二项式反演==&lt;br /&gt;
&lt;br /&gt;
==狄利克雷卷积==&lt;br /&gt;
&lt;br /&gt;
==莫比乌斯反演==&lt;/div&gt;</summary>
		<author><name>33DAI</name></author>
	</entry>
	<entry>
		<id>https://www.33dai.wiki/index.php?title=%E5%8F%8D%E6%BC%94&amp;diff=146</id>
		<title>反演</title>
		<link rel="alternate" type="text/html" href="https://www.33dai.wiki/index.php?title=%E5%8F%8D%E6%BC%94&amp;diff=146"/>
		<updated>2026-02-28T02:31:37Z</updated>

		<summary type="html">&lt;p&gt;33DAI：​/* 组合数经典性质 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;组合数 &amp;lt;math&amp;gt;C_n^m&amp;lt;/math&amp;gt; 常用符号 &amp;lt;math&amp;gt;\dbinom{n}{m}&amp;lt;/math&amp;gt; 来表示，读作“&amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; 选 &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt;”。&lt;br /&gt;
&lt;br /&gt;
==组合数经典性质==&lt;br /&gt;
&lt;br /&gt;
选出 &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; 相当于选出 &amp;lt;math&amp;gt;n-m&amp;lt;/math&amp;gt; 个排除。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\dbinom{n}{m}=\dbinom{n}{n-m}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
组合数的递推式（杨辉三角）&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\dbinom{n}{m}=\dbinom{n-1}{m}+\dbinom{n-1}{m-1}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
基础性质（杨辉三角的一行、&amp;lt;math&amp;gt;(1+1)^n&amp;lt;/math&amp;gt;）&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\dbinom{n}{0}+\dbinom{n}{1}+\dots+\dbinom{n}{n}=\sum_{i=0}^n\dbinom{n}{i}=2^n&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
范德蒙德恒等式&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\sum_{i=0}^k\dbinom{n}{i}\dbinom{m}{k-i}=\dbinom{m+n}{k}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==二项式定理==&lt;br /&gt;
&lt;br /&gt;
==二项式反演==&lt;br /&gt;
&lt;br /&gt;
==狄利克雷卷积==&lt;br /&gt;
&lt;br /&gt;
==莫比乌斯反演==&lt;/div&gt;</summary>
		<author><name>33DAI</name></author>
	</entry>
	<entry>
		<id>https://www.33dai.wiki/index.php?title=%E5%8F%8D%E6%BC%94&amp;diff=145</id>
		<title>反演</title>
		<link rel="alternate" type="text/html" href="https://www.33dai.wiki/index.php?title=%E5%8F%8D%E6%BC%94&amp;diff=145"/>
		<updated>2026-02-28T02:24:47Z</updated>

		<summary type="html">&lt;p&gt;33DAI：​创建页面，内容为“组合数 &amp;lt;math&amp;gt;C_n^m&amp;lt;/math&amp;gt; 常用符号 &amp;lt;math&amp;gt;\dbinom{n}{m}&amp;lt;/math&amp;gt; 来表示，读作“&amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; 选 &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt;”。  ==组合数经典性质==  选出 &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; 相当于选出 &amp;lt;math&amp;gt;n-m&amp;lt;/math&amp;gt; 个排除。  &amp;lt;math&amp;gt;\dbinom{n}{m}=\dbinom{n}{n-m}&amp;lt;/math&amp;gt;  组合数的递推式（杨辉三角）  &amp;lt;math&amp;gt;\dbinom{n}{m}=\dbinom{n-1}{m}+\dbinom{n-1}{m-1}&amp;lt;/math&amp;gt;  基础性质（杨辉三角的一行、&amp;lt;math&amp;gt;(1+1)^n&amp;lt;/math&amp;gt;）  &amp;lt;math&amp;gt;\dbinom{n}{0}+\dbinom…”&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;组合数 &amp;lt;math&amp;gt;C_n^m&amp;lt;/math&amp;gt; 常用符号 &amp;lt;math&amp;gt;\dbinom{n}{m}&amp;lt;/math&amp;gt; 来表示，读作“&amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; 选 &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt;”。&lt;br /&gt;
&lt;br /&gt;
==组合数经典性质==&lt;br /&gt;
&lt;br /&gt;
选出 &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; 相当于选出 &amp;lt;math&amp;gt;n-m&amp;lt;/math&amp;gt; 个排除。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\dbinom{n}{m}=\dbinom{n}{n-m}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
组合数的递推式（杨辉三角）&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\dbinom{n}{m}=\dbinom{n-1}{m}+\dbinom{n-1}{m-1}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
基础性质（杨辉三角的一行、&amp;lt;math&amp;gt;(1+1)^n&amp;lt;/math&amp;gt;）&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\dbinom{n}{0}+\dbinom{n}{1}+\dots+\dbinom{n}{n}=\sum_{i=0}^n\dbinom{n}{i}=2^n&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
范德蒙恒等式&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\sum_{i=0}^k\dbinom{n}{i}\dbinom{m}{k-i}=\dbinom{m+n}{k}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==二项式定理==&lt;br /&gt;
&lt;br /&gt;
==二项式反演==&lt;br /&gt;
&lt;br /&gt;
==狄利克雷卷积==&lt;br /&gt;
&lt;br /&gt;
==莫比乌斯反演==&lt;/div&gt;</summary>
		<author><name>33DAI</name></author>
	</entry>
	<entry>
		<id>https://www.33dai.wiki/index.php?title=%E6%AC%A7%E6%8B%89%E5%87%BD%E6%95%B0&amp;diff=144</id>
		<title>欧拉函数</title>
		<link rel="alternate" type="text/html" href="https://www.33dai.wiki/index.php?title=%E6%AC%A7%E6%8B%89%E5%87%BD%E6%95%B0&amp;diff=144"/>
		<updated>2026-02-26T03:39:30Z</updated>

		<summary type="html">&lt;p&gt;33DAI：​/* 求单个欧拉函数 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==求单个欧拉函数==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot; line&amp;gt;&lt;br /&gt;
int phi(int n)&lt;br /&gt;
{&lt;br /&gt;
    int ans = n;&lt;br /&gt;
    for (int i = 2; 1LL * i * i &amp;lt;= n; i++)&lt;br /&gt;
        if (n % i == 0)&lt;br /&gt;
        {&lt;br /&gt;
            ans = ans / i * (i - 1);&lt;br /&gt;
            while (n % i == 0)&lt;br /&gt;
                n /= i;&lt;br /&gt;
        }&lt;br /&gt;
    if (n &amp;gt; 1)&lt;br /&gt;
        ans = ans / n * (n - 1);&lt;br /&gt;
    return ans;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==线性筛求欧拉函数==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot; line&amp;gt;&lt;br /&gt;
const int MAXN = 40000;&lt;br /&gt;
bool p[MAXN + 5];&lt;br /&gt;
int phi[MAXN + 5];&lt;br /&gt;
vector&amp;lt;int&amp;gt; pri;&lt;br /&gt;
// 筛出 1~n 中的每个数是否为质数&lt;br /&gt;
// 顺带求出所有欧拉函数&lt;br /&gt;
void get_primes(int n)&lt;br /&gt;
{&lt;br /&gt;
    for (int i = 1; i &amp;lt;= n; i++)&lt;br /&gt;
        p[i] = true;&lt;br /&gt;
    p[0] = p[1] = false;&lt;br /&gt;
    phi[1] = 1;&lt;br /&gt;
    for (int i = 2; i &amp;lt;= n; i++)&lt;br /&gt;
    {&lt;br /&gt;
        if (p[i])&lt;br /&gt;
        {&lt;br /&gt;
            pri.push_back(i);&lt;br /&gt;
            phi[i] = i - 1;&lt;br /&gt;
        }&lt;br /&gt;
        for (int j = 0; j &amp;lt; pri.size(); j++)&lt;br /&gt;
        {&lt;br /&gt;
            // i*pri[j]&lt;br /&gt;
            if (1LL * i * pri[j] &amp;gt; n)&lt;br /&gt;
                break;&lt;br /&gt;
            p[i * pri[j]] = false;&lt;br /&gt;
            if (i % pri[j] == 0)&lt;br /&gt;
            {&lt;br /&gt;
                phi[i * pri[j]] = phi[i] * pri[j];&lt;br /&gt;
                break;&lt;br /&gt;
            }&lt;br /&gt;
            else&lt;br /&gt;
                phi[i * pri[j]] = phi[i] * (pri[j] - 1);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>33DAI</name></author>
	</entry>
	<entry>
		<id>https://www.33dai.wiki/index.php?title=%E8%B4%A8%E6%95%B0%E5%88%A4%E6%96%AD&amp;diff=143</id>
		<title>质数判断</title>
		<link rel="alternate" type="text/html" href="https://www.33dai.wiki/index.php?title=%E8%B4%A8%E6%95%B0%E5%88%A4%E6%96%AD&amp;diff=143"/>
		<updated>2026-02-26T03:04:48Z</updated>

		<summary type="html">&lt;p&gt;33DAI：​/* 线性筛/欧拉筛 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==判断单个质数==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;O(\sqrt{x})&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot; line&amp;gt;&lt;br /&gt;
bool is_prime(long long x)&lt;br /&gt;
{&lt;br /&gt;
    if (x &amp;lt; 2)&lt;br /&gt;
        return false;&lt;br /&gt;
    for (long long i = 2; i * i &amp;lt;= x; i++)&lt;br /&gt;
        if (x % i == 0)&lt;br /&gt;
            return false;&lt;br /&gt;
    return true;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==筛法==&lt;br /&gt;
&lt;br /&gt;
===埃氏筛===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;O(n\log \log n)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot; line&amp;gt;&lt;br /&gt;
const int MAXN = 10&#039;000&#039;000;&lt;br /&gt;
bool p[MAXN + 1];&lt;br /&gt;
//筛出 1~n 中的每个数是否为质数&lt;br /&gt;
void get_primes(int n)&lt;br /&gt;
{&lt;br /&gt;
    //初始化&lt;br /&gt;
    p[0] = p[1] = false;&lt;br /&gt;
    for (int i = 2; i &amp;lt;= n; i++)&lt;br /&gt;
        p[i] = true;&lt;br /&gt;
    //筛&lt;br /&gt;
    for (int i = 2; i &amp;lt;= n; i++)&lt;br /&gt;
        if (p[i])&lt;br /&gt;
            for (int j = i + i; j &amp;lt;= n; j += i)&lt;br /&gt;
                p[j] = false;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===线性筛/欧拉筛===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;O(n)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot; line&amp;gt;&lt;br /&gt;
const int MAXN = 10&#039;000&#039;000;&lt;br /&gt;
bool p[MAXN + 1];&lt;br /&gt;
vector&amp;lt;int&amp;gt; pri;&lt;br /&gt;
// 筛出 1~n 中的每个数是否为质数&lt;br /&gt;
void get_primes(int n)&lt;br /&gt;
{&lt;br /&gt;
    for (int i = 1; i &amp;lt;= n; i++)&lt;br /&gt;
        p[i] = true;&lt;br /&gt;
    p[0] = p[1] = false;&lt;br /&gt;
    for (int i = 2; i &amp;lt;= n; i++)&lt;br /&gt;
    {&lt;br /&gt;
        if (p[i])&lt;br /&gt;
            pri.push_back(i);&lt;br /&gt;
        for (int j = 0; j &amp;lt; pri.size(); j++)&lt;br /&gt;
        {&lt;br /&gt;
            // i*pri[j]&lt;br /&gt;
            if (1LL * i * pri[j] &amp;gt; n)&lt;br /&gt;
                break;&lt;br /&gt;
            p[i * pri[j]] = false;&lt;br /&gt;
            if (i % pri[j] == 0)&lt;br /&gt;
                break;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>33DAI</name></author>
	</entry>
	<entry>
		<id>https://www.33dai.wiki/index.php?title=%E9%A6%96%E9%A1%B5&amp;diff=142</id>
		<title>首页</title>
		<link rel="alternate" type="text/html" href="https://www.33dai.wiki/index.php?title=%E9%A6%96%E9%A1%B5&amp;diff=142"/>
		<updated>2026-02-26T02:26:54Z</updated>

		<summary type="html">&lt;p&gt;33DAI：​&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;main-page-welcome&amp;quot; style=&amp;quot;padding: 20px; background: #f8f9fa; border-radius: 8px; margin-bottom: 20px;&amp;quot;&amp;gt;&lt;br /&gt;
欢迎来到 &#039;&#039;&#039;三三百科&#039;&#039;&#039;！这里汇集了信奥常用小知识、比赛题解、以及常用工具导航。&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;main-page-grid&amp;quot;&amp;gt;&lt;br /&gt;
{{NavBox&lt;br /&gt;
| title = Wiki 数学&lt;br /&gt;
| color = #ab5a6b&lt;br /&gt;
| icon = ✨&lt;br /&gt;
| content =&lt;br /&gt;
* [[乘法逆元]]&lt;br /&gt;
* [[质数判断]]&lt;br /&gt;
* [[欧拉函数]]&lt;br /&gt;
* [[计算几何]]&lt;br /&gt;
* [[高精度模板]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{NavBox&lt;br /&gt;
| title = Wiki 页面&lt;br /&gt;
| color = #ab5a6b&lt;br /&gt;
| icon = ✨&lt;br /&gt;
| content =&lt;br /&gt;
* [[基础语法大纲]]&lt;br /&gt;
* [[初学者常用内容]]&lt;br /&gt;
* [[STL容器库常用内容]]&lt;br /&gt;
* [[STL例子]]&lt;br /&gt;
* [[33OJ评测机]]&lt;br /&gt;
* [[33OJ题面规范]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{NavBox&lt;br /&gt;
| title = 常用 OJ 平台&lt;br /&gt;
| color = #27ae60&lt;br /&gt;
| icon = 🚀&lt;br /&gt;
| content =&lt;br /&gt;
* [https://oj.33dai.cn 33OJ]&lt;br /&gt;
* [https://luogu.com.cn 洛谷]&lt;br /&gt;
* [https://codeforces.com CodeForces]&lt;br /&gt;
* [https://atcoder.jp AtCoder]&lt;br /&gt;
* [https://htoj.hetao101.com/cpp/ 核桃周赛]&lt;br /&gt;
* [https://bs.daimayuan.top/ 代码源挑战赛]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{NavBox&lt;br /&gt;
| title = 信息查询&lt;br /&gt;
| color = #e67e22&lt;br /&gt;
| icon = 📚&lt;br /&gt;
| content =&lt;br /&gt;
* [https://www.noi.cn NOI 官网]&lt;br /&gt;
* [https://ioinformatics.org/ IOI官网]&lt;br /&gt;
* [https://board.xcpcio.com/ XCPC榜单]&lt;br /&gt;
* [https://oier.baoshuo.dev/ OIerDB]&lt;br /&gt;
* [http://oiwiki.org/ OI Wiki]&lt;br /&gt;
* [https://oeis.org/ OEIS]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{NavBox&lt;br /&gt;
| title = 常用工具&lt;br /&gt;
| color = #8e44ad&lt;br /&gt;
| icon = 🛠️&lt;br /&gt;
| content =&lt;br /&gt;
* [https://cpp.33dai.wiki C++ 参考手册]&lt;br /&gt;
* [https://py.33dai.wiki Python 文档]&lt;br /&gt;
* [https://visualgo.net/zh/ VISUALGO]&lt;br /&gt;
* [https://csacademy.com/app/graph_editor/ Graph Editor] &lt;br /&gt;
* [https://www.geogebra.org/graphing GeoGebra]&lt;br /&gt;
* [https://github.com/open33oj/wiki33 原&amp;quot;三三文档&amp;quot;内容]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;([\s\S\n\r]*?)&amp;amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot; line&amp;gt;$1&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>33DAI</name></author>
	</entry>
	<entry>
		<id>https://www.33dai.wiki/index.php?title=%E9%A6%96%E9%A1%B5&amp;diff=141</id>
		<title>首页</title>
		<link rel="alternate" type="text/html" href="https://www.33dai.wiki/index.php?title=%E9%A6%96%E9%A1%B5&amp;diff=141"/>
		<updated>2026-02-26T02:26:16Z</updated>

		<summary type="html">&lt;p&gt;33DAI：​&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;main-page-welcome&amp;quot; style=&amp;quot;padding: 20px; background: #f8f9fa; border-radius: 8px; margin-bottom: 20px;&amp;quot;&amp;gt;&lt;br /&gt;
欢迎来到 &#039;&#039;&#039;三三百科&#039;&#039;&#039;！这里汇集了信奥常用小知识、比赛题解、以及常用工具导航。&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;main-page-grid&amp;quot;&amp;gt;&lt;br /&gt;
{{NavBox&lt;br /&gt;
| title = Wiki 页面&lt;br /&gt;
| color = #ab5a6b&lt;br /&gt;
| icon = ✨&lt;br /&gt;
| content =&lt;br /&gt;
* [[乘法逆元]]&lt;br /&gt;
* [[质数判断]]&lt;br /&gt;
* [[欧拉函数]]&lt;br /&gt;
* [[高精度模板]]&lt;br /&gt;
* [[计算几何]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{NavBox&lt;br /&gt;
| title = Wiki 页面&lt;br /&gt;
| color = #ab5a6b&lt;br /&gt;
| icon = ✨&lt;br /&gt;
| content =&lt;br /&gt;
* [[基础语法大纲]]&lt;br /&gt;
* [[初学者常用内容]]&lt;br /&gt;
* [[STL容器库常用内容]]&lt;br /&gt;
* [[STL例子]]&lt;br /&gt;
* [[33OJ评测机]]&lt;br /&gt;
* [[33OJ题面规范]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{NavBox&lt;br /&gt;
| title = 常用 OJ 平台&lt;br /&gt;
| color = #27ae60&lt;br /&gt;
| icon = 🚀&lt;br /&gt;
| content =&lt;br /&gt;
* [https://oj.33dai.cn 33OJ]&lt;br /&gt;
* [https://luogu.com.cn 洛谷]&lt;br /&gt;
* [https://codeforces.com CodeForces]&lt;br /&gt;
* [https://atcoder.jp AtCoder]&lt;br /&gt;
* [https://htoj.hetao101.com/cpp/ 核桃周赛]&lt;br /&gt;
* [https://bs.daimayuan.top/ 代码源挑战赛]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{NavBox&lt;br /&gt;
| title = 信息查询&lt;br /&gt;
| color = #e67e22&lt;br /&gt;
| icon = 📚&lt;br /&gt;
| content =&lt;br /&gt;
* [https://www.noi.cn NOI 官网]&lt;br /&gt;
* [https://ioinformatics.org/ IOI官网]&lt;br /&gt;
* [https://board.xcpcio.com/ XCPC榜单]&lt;br /&gt;
* [https://oier.baoshuo.dev/ OIerDB]&lt;br /&gt;
* [http://oiwiki.org/ OI Wiki]&lt;br /&gt;
* [https://oeis.org/ OEIS]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{NavBox&lt;br /&gt;
| title = 常用工具&lt;br /&gt;
| color = #8e44ad&lt;br /&gt;
| icon = 🛠️&lt;br /&gt;
| content =&lt;br /&gt;
* [https://cpp.33dai.wiki C++ 参考手册]&lt;br /&gt;
* [https://py.33dai.wiki Python 文档]&lt;br /&gt;
* [https://visualgo.net/zh/ VISUALGO]&lt;br /&gt;
* [https://csacademy.com/app/graph_editor/ Graph Editor] &lt;br /&gt;
* [https://www.geogebra.org/graphing GeoGebra]&lt;br /&gt;
* [https://github.com/open33oj/wiki33 原&amp;quot;三三文档&amp;quot;内容]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;([\s\S\n\r]*?)&amp;amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot; line&amp;gt;$1&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>33DAI</name></author>
	</entry>
	<entry>
		<id>https://www.33dai.wiki/index.php?title=%E9%A6%96%E9%A1%B5&amp;diff=140</id>
		<title>首页</title>
		<link rel="alternate" type="text/html" href="https://www.33dai.wiki/index.php?title=%E9%A6%96%E9%A1%B5&amp;diff=140"/>
		<updated>2026-02-26T02:26:06Z</updated>

		<summary type="html">&lt;p&gt;33DAI：​&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;main-page-welcome&amp;quot; style=&amp;quot;padding: 20px; background: #f8f9fa; border-radius: 8px; margin-bottom: 20px;&amp;quot;&amp;gt;&lt;br /&gt;
欢迎来到 &#039;&#039;&#039;三三百科&#039;&#039;&#039;！这里汇集了信奥常用小知识、比赛题解、以及常用工具导航。&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;main-page-grid&amp;quot;&amp;gt;&lt;br /&gt;
{{NavBox&lt;br /&gt;
| title = Wiki 页面&lt;br /&gt;
| color = #ab5a6b&lt;br /&gt;
| icon = ✨&lt;br /&gt;
| content =&lt;br /&gt;
* [[乘法逆元]]&lt;br /&gt;
* [[质数判断]]&lt;br /&gt;
* [[高精度模板]]&lt;br /&gt;
* [[计算几何]]&lt;br /&gt;
* [[欧拉函数]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{NavBox&lt;br /&gt;
| title = Wiki 页面&lt;br /&gt;
| color = #ab5a6b&lt;br /&gt;
| icon = ✨&lt;br /&gt;
| content =&lt;br /&gt;
* [[基础语法大纲]]&lt;br /&gt;
* [[初学者常用内容]]&lt;br /&gt;
* [[STL容器库常用内容]]&lt;br /&gt;
* [[STL例子]]&lt;br /&gt;
* [[33OJ评测机]]&lt;br /&gt;
* [[33OJ题面规范]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{NavBox&lt;br /&gt;
| title = 常用 OJ 平台&lt;br /&gt;
| color = #27ae60&lt;br /&gt;
| icon = 🚀&lt;br /&gt;
| content =&lt;br /&gt;
* [https://oj.33dai.cn 33OJ]&lt;br /&gt;
* [https://luogu.com.cn 洛谷]&lt;br /&gt;
* [https://codeforces.com CodeForces]&lt;br /&gt;
* [https://atcoder.jp AtCoder]&lt;br /&gt;
* [https://htoj.hetao101.com/cpp/ 核桃周赛]&lt;br /&gt;
* [https://bs.daimayuan.top/ 代码源挑战赛]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{NavBox&lt;br /&gt;
| title = 信息查询&lt;br /&gt;
| color = #e67e22&lt;br /&gt;
| icon = 📚&lt;br /&gt;
| content =&lt;br /&gt;
* [https://www.noi.cn NOI 官网]&lt;br /&gt;
* [https://ioinformatics.org/ IOI官网]&lt;br /&gt;
* [https://board.xcpcio.com/ XCPC榜单]&lt;br /&gt;
* [https://oier.baoshuo.dev/ OIerDB]&lt;br /&gt;
* [http://oiwiki.org/ OI Wiki]&lt;br /&gt;
* [https://oeis.org/ OEIS]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{NavBox&lt;br /&gt;
| title = 常用工具&lt;br /&gt;
| color = #8e44ad&lt;br /&gt;
| icon = 🛠️&lt;br /&gt;
| content =&lt;br /&gt;
* [https://cpp.33dai.wiki C++ 参考手册]&lt;br /&gt;
* [https://py.33dai.wiki Python 文档]&lt;br /&gt;
* [https://visualgo.net/zh/ VISUALGO]&lt;br /&gt;
* [https://csacademy.com/app/graph_editor/ Graph Editor] &lt;br /&gt;
* [https://www.geogebra.org/graphing GeoGebra]&lt;br /&gt;
* [https://github.com/open33oj/wiki33 原&amp;quot;三三文档&amp;quot;内容]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;([\s\S\n\r]*?)&amp;amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot; line&amp;gt;$1&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>33DAI</name></author>
	</entry>
	<entry>
		<id>https://www.33dai.wiki/index.php?title=%E6%AC%A7%E6%8B%89%E5%87%BD%E6%95%B0&amp;diff=139</id>
		<title>欧拉函数</title>
		<link rel="alternate" type="text/html" href="https://www.33dai.wiki/index.php?title=%E6%AC%A7%E6%8B%89%E5%87%BD%E6%95%B0&amp;diff=139"/>
		<updated>2026-02-26T02:25:15Z</updated>

		<summary type="html">&lt;p&gt;33DAI：​&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==求单个欧拉函数==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot; line&amp;gt;&lt;br /&gt;
int phi(int n)&lt;br /&gt;
{&lt;br /&gt;
    int ans = n;&lt;br /&gt;
    for (int i = 2; 1LL * i * i &amp;lt;= m; i++)&lt;br /&gt;
        if (n % i == 0)&lt;br /&gt;
        {&lt;br /&gt;
            ans = ans / i * (i - 1);&lt;br /&gt;
            while (n % i == 0)&lt;br /&gt;
                n /= i;&lt;br /&gt;
        }&lt;br /&gt;
    if (n &amp;gt; 1)&lt;br /&gt;
        ans = ans / n * (n - 1);&lt;br /&gt;
    return ans;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==线性筛求欧拉函数==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot; line&amp;gt;&lt;br /&gt;
const int MAXN = 40000;&lt;br /&gt;
bool p[MAXN + 5];&lt;br /&gt;
int phi[MAXN + 5];&lt;br /&gt;
vector&amp;lt;int&amp;gt; pri;&lt;br /&gt;
// 筛出 1~n 中的每个数是否为质数&lt;br /&gt;
// 顺带求出所有欧拉函数&lt;br /&gt;
void get_primes(int n)&lt;br /&gt;
{&lt;br /&gt;
    for (int i = 1; i &amp;lt;= n; i++)&lt;br /&gt;
        p[i] = true;&lt;br /&gt;
    p[0] = p[1] = false;&lt;br /&gt;
    phi[1] = 1;&lt;br /&gt;
    for (int i = 2; i &amp;lt;= n; i++)&lt;br /&gt;
    {&lt;br /&gt;
        if (p[i])&lt;br /&gt;
        {&lt;br /&gt;
            pri.push_back(i);&lt;br /&gt;
            phi[i] = i - 1;&lt;br /&gt;
        }&lt;br /&gt;
        for (int j = 0; j &amp;lt; pri.size(); j++)&lt;br /&gt;
        {&lt;br /&gt;
            // i*pri[j]&lt;br /&gt;
            if (1LL * i * pri[j] &amp;gt; n)&lt;br /&gt;
                break;&lt;br /&gt;
            p[i * pri[j]] = false;&lt;br /&gt;
            if (i % pri[j] == 0)&lt;br /&gt;
            {&lt;br /&gt;
                phi[i * pri[j]] = phi[i] * pri[j];&lt;br /&gt;
                break;&lt;br /&gt;
            }&lt;br /&gt;
            else&lt;br /&gt;
                phi[i * pri[j]] = phi[i] * (pri[j] - 1);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>33DAI</name></author>
	</entry>
	<entry>
		<id>https://www.33dai.wiki/index.php?title=%E6%AC%A7%E6%8B%89%E5%87%BD%E6%95%B0&amp;diff=138</id>
		<title>欧拉函数</title>
		<link rel="alternate" type="text/html" href="https://www.33dai.wiki/index.php?title=%E6%AC%A7%E6%8B%89%E5%87%BD%E6%95%B0&amp;diff=138"/>
		<updated>2026-02-26T02:23:58Z</updated>

		<summary type="html">&lt;p&gt;33DAI：​创建页面，内容为“==线性筛求欧拉函数==  &amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot; line&amp;gt; const int MAXN = 40000; bool p[MAXN + 5]; int phi[MAXN + 5]; vector&amp;lt;int&amp;gt; pri; // 筛出 1~n 中的每个数是否为质数 // 顺带求出所有欧拉函数 void get_primes(int n) {     for (int i = 1; i &amp;lt;= n; i++)         p[i] = true;     p[0] = p[1] = false;     phi[1] = 1;     for (int i = 2; i &amp;lt;= n; i++)     {         if (p[i])         {             pri.push_back(i);             phi[i] = i - 1;…”&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==线性筛求欧拉函数==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot; line&amp;gt;&lt;br /&gt;
const int MAXN = 40000;&lt;br /&gt;
bool p[MAXN + 5];&lt;br /&gt;
int phi[MAXN + 5];&lt;br /&gt;
vector&amp;lt;int&amp;gt; pri;&lt;br /&gt;
// 筛出 1~n 中的每个数是否为质数&lt;br /&gt;
// 顺带求出所有欧拉函数&lt;br /&gt;
void get_primes(int n)&lt;br /&gt;
{&lt;br /&gt;
    for (int i = 1; i &amp;lt;= n; i++)&lt;br /&gt;
        p[i] = true;&lt;br /&gt;
    p[0] = p[1] = false;&lt;br /&gt;
    phi[1] = 1;&lt;br /&gt;
    for (int i = 2; i &amp;lt;= n; i++)&lt;br /&gt;
    {&lt;br /&gt;
        if (p[i])&lt;br /&gt;
        {&lt;br /&gt;
            pri.push_back(i);&lt;br /&gt;
            phi[i] = i - 1;&lt;br /&gt;
        }&lt;br /&gt;
        for (int j = 0; j &amp;lt; pri.size(); j++)&lt;br /&gt;
        {&lt;br /&gt;
            // i*pri[j]&lt;br /&gt;
            if (1LL * i * pri[j] &amp;gt; n)&lt;br /&gt;
                break;&lt;br /&gt;
            p[i * pri[j]] = false;&lt;br /&gt;
            if (i % pri[j] == 0)&lt;br /&gt;
            {&lt;br /&gt;
                phi[i * pri[j]] = phi[i] * pri[j];&lt;br /&gt;
                break;&lt;br /&gt;
            }&lt;br /&gt;
            else&lt;br /&gt;
                phi[i * pri[j]] = phi[i] * (pri[j] - 1);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>33DAI</name></author>
	</entry>
	<entry>
		<id>https://www.33dai.wiki/index.php?title=%E9%A6%96%E9%A1%B5&amp;diff=137</id>
		<title>首页</title>
		<link rel="alternate" type="text/html" href="https://www.33dai.wiki/index.php?title=%E9%A6%96%E9%A1%B5&amp;diff=137"/>
		<updated>2026-02-25T08:22:40Z</updated>

		<summary type="html">&lt;p&gt;33DAI：​&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;main-page-welcome&amp;quot; style=&amp;quot;padding: 20px; background: #f8f9fa; border-radius: 8px; margin-bottom: 20px;&amp;quot;&amp;gt;&lt;br /&gt;
欢迎来到 &#039;&#039;&#039;三三百科&#039;&#039;&#039;！这里汇集了信奥常用小知识、比赛题解、以及常用工具导航。&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;main-page-grid&amp;quot;&amp;gt;&lt;br /&gt;
{{NavBox&lt;br /&gt;
| title = Wiki 页面&lt;br /&gt;
| color = #ab5a6b&lt;br /&gt;
| icon = ✨&lt;br /&gt;
| content =&lt;br /&gt;
* [[乘法逆元]]&lt;br /&gt;
* [[质数判断]]&lt;br /&gt;
* [[高精度模板]]&lt;br /&gt;
* [[计算几何]]&lt;br /&gt;
* [[STL容器库常用内容]]&lt;br /&gt;
* [[STL例子]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{NavBox&lt;br /&gt;
| title = Wiki 页面&lt;br /&gt;
| color = #ab5a6b&lt;br /&gt;
| icon = ✨&lt;br /&gt;
| content =&lt;br /&gt;
* [[基础语法大纲]]&lt;br /&gt;
* [[初学者常用内容]]&lt;br /&gt;
* [[33OJ评测机]]&lt;br /&gt;
* [[33OJ题面规范]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{NavBox&lt;br /&gt;
| title = 常用 OJ 平台&lt;br /&gt;
| color = #27ae60&lt;br /&gt;
| icon = 🚀&lt;br /&gt;
| content =&lt;br /&gt;
* [https://oj.33dai.cn 33OJ]&lt;br /&gt;
* [https://luogu.com.cn 洛谷]&lt;br /&gt;
* [https://codeforces.com CodeForces]&lt;br /&gt;
* [https://atcoder.jp AtCoder]&lt;br /&gt;
* [https://htoj.hetao101.com/cpp/ 核桃周赛]&lt;br /&gt;
* [https://bs.daimayuan.top/ 代码源挑战赛]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{NavBox&lt;br /&gt;
| title = 信息查询&lt;br /&gt;
| color = #e67e22&lt;br /&gt;
| icon = 📚&lt;br /&gt;
| content =&lt;br /&gt;
* [https://www.noi.cn NOI 官网]&lt;br /&gt;
* [https://ioinformatics.org/ IOI官网]&lt;br /&gt;
* [https://board.xcpcio.com/ XCPC榜单]&lt;br /&gt;
* [https://oier.baoshuo.dev/ OIerDB]&lt;br /&gt;
* [http://oiwiki.org/ OI Wiki]&lt;br /&gt;
* [https://oeis.org/ OEIS]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{NavBox&lt;br /&gt;
| title = 常用工具&lt;br /&gt;
| color = #8e44ad&lt;br /&gt;
| icon = 🛠️&lt;br /&gt;
| content =&lt;br /&gt;
* [https://cpp.33dai.wiki C++ 参考手册]&lt;br /&gt;
* [https://py.33dai.wiki Python 文档]&lt;br /&gt;
* [https://visualgo.net/zh/ VISUALGO]&lt;br /&gt;
* [https://csacademy.com/app/graph_editor/ Graph Editor] &lt;br /&gt;
* [https://www.geogebra.org/graphing GeoGebra]&lt;br /&gt;
* [https://github.com/open33oj/wiki33 原&amp;quot;三三文档&amp;quot;内容]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;([\s\S\n\r]*?)&amp;amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot; line&amp;gt;$1&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>33DAI</name></author>
	</entry>
	<entry>
		<id>https://www.33dai.wiki/index.php?title=%E9%A6%96%E9%A1%B5&amp;diff=136</id>
		<title>首页</title>
		<link rel="alternate" type="text/html" href="https://www.33dai.wiki/index.php?title=%E9%A6%96%E9%A1%B5&amp;diff=136"/>
		<updated>2026-02-25T08:22:12Z</updated>

		<summary type="html">&lt;p&gt;33DAI：​&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;main-page-welcome&amp;quot; style=&amp;quot;padding: 20px; background: #f8f9fa; border-radius: 8px; margin-bottom: 20px;&amp;quot;&amp;gt;&lt;br /&gt;
欢迎来到 &#039;&#039;&#039;三三百科&#039;&#039;&#039;！这里汇集了信奥常用小知识、比赛题解、以及常用工具导航。&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{NavBox&lt;br /&gt;
| title = Wiki 页面&lt;br /&gt;
| color = #ab5a6b&lt;br /&gt;
| icon = ✨&lt;br /&gt;
| content =&lt;br /&gt;
* [[乘法逆元]]&lt;br /&gt;
* [[质数判断]]&lt;br /&gt;
* [[高精度模板]]&lt;br /&gt;
* [[计算几何]]&lt;br /&gt;
* [[STL容器库常用内容]]&lt;br /&gt;
* [[STL例子]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{NavBox&lt;br /&gt;
| title = Wiki 页面&lt;br /&gt;
| color = #ab5a6b&lt;br /&gt;
| icon = ✨&lt;br /&gt;
| content =&lt;br /&gt;
* [[基础语法大纲]]&lt;br /&gt;
* [[初学者常用内容]]&lt;br /&gt;
* [[33OJ评测机]]&lt;br /&gt;
* [[33OJ题面规范]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{NavBox&lt;br /&gt;
| title = 常用 OJ 平台&lt;br /&gt;
| color = #27ae60&lt;br /&gt;
| icon = 🚀&lt;br /&gt;
| content =&lt;br /&gt;
* [https://oj.33dai.cn 33OJ]&lt;br /&gt;
* [https://luogu.com.cn 洛谷]&lt;br /&gt;
* [https://codeforces.com CodeForces]&lt;br /&gt;
* [https://atcoder.jp AtCoder]&lt;br /&gt;
* [https://htoj.hetao101.com/cpp/ 核桃周赛]&lt;br /&gt;
* [https://bs.daimayuan.top/ 代码源挑战赛]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{NavBox&lt;br /&gt;
| title = 信息查询&lt;br /&gt;
| color = #e67e22&lt;br /&gt;
| icon = 📚&lt;br /&gt;
| content =&lt;br /&gt;
* [https://www.noi.cn NOI 官网]&lt;br /&gt;
* [https://ioinformatics.org/ IOI官网]&lt;br /&gt;
* [https://board.xcpcio.com/ XCPC榜单]&lt;br /&gt;
* [https://oier.baoshuo.dev/ OIerDB]&lt;br /&gt;
* [http://oiwiki.org/ OI Wiki]&lt;br /&gt;
* [https://oeis.org/ OEIS]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{NavBox&lt;br /&gt;
| title = 常用工具&lt;br /&gt;
| color = #8e44ad&lt;br /&gt;
| icon = 🛠️&lt;br /&gt;
| content =&lt;br /&gt;
* [https://cpp.33dai.wiki C++ 参考手册]&lt;br /&gt;
* [https://py.33dai.wiki Python 文档]&lt;br /&gt;
* [https://visualgo.net/zh/ VISUALGO]&lt;br /&gt;
* [https://csacademy.com/app/graph_editor/ Graph Editor] &lt;br /&gt;
* [https://www.geogebra.org/graphing GeoGebra]&lt;br /&gt;
* [https://github.com/open33oj/wiki33 原&amp;quot;三三文档&amp;quot;内容]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;([\s\S\n\r]*?)&amp;amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot; line&amp;gt;$1&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>33DAI</name></author>
	</entry>
	<entry>
		<id>https://www.33dai.wiki/index.php?title=%E4%B9%98%E6%B3%95%E9%80%86%E5%85%83&amp;diff=135</id>
		<title>乘法逆元</title>
		<link rel="alternate" type="text/html" href="https://www.33dai.wiki/index.php?title=%E4%B9%98%E6%B3%95%E9%80%86%E5%85%83&amp;diff=135"/>
		<updated>2026-02-25T07:22:03Z</updated>

		<summary type="html">&lt;p&gt;33DAI：​/* 扩展欧几里得算法 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==前置==&lt;br /&gt;
&lt;br /&gt;
===快速幂===&lt;br /&gt;
&lt;br /&gt;
====递归版====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot; line&amp;gt;&lt;br /&gt;
// a 的 b 次方在模 p 意义下的结果&lt;br /&gt;
int quick_pow(int a, int b, int p)&lt;br /&gt;
{&lt;br /&gt;
    if (b == 0)&lt;br /&gt;
        return 1;&lt;br /&gt;
    int x = quick_pow(a, b / 2, p);&lt;br /&gt;
    if (b % 2 == 0)&lt;br /&gt;
        return x * x % p;&lt;br /&gt;
    return x * x % p * a % p;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====非递归版====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot; line&amp;gt;&lt;br /&gt;
// a 的 b 次方在模 p 意义下的结果&lt;br /&gt;
int quick_pow(int a, int b, int p)&lt;br /&gt;
{&lt;br /&gt;
    int res = 1;&lt;br /&gt;
    while (b &amp;gt; 0)&lt;br /&gt;
    {&lt;br /&gt;
        if (b % 2 == 1)&lt;br /&gt;
            res = res * a % p;&lt;br /&gt;
        b /= 2;&lt;br /&gt;
        a = a * a % p;&lt;br /&gt;
    }&lt;br /&gt;
    return res;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===扩展欧几里得算法===&lt;br /&gt;
&lt;br /&gt;
====累赘但好懂的写法====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot; line&amp;gt;&lt;br /&gt;
// 返回 ax+by=gcd(a,b) 的解 &amp;lt;x,y&amp;gt;&lt;br /&gt;
pair&amp;lt;int, int&amp;gt; exGCD(int a, int b)&lt;br /&gt;
{&lt;br /&gt;
    // ax+0y=a&lt;br /&gt;
    if (b == 0)&lt;br /&gt;
        return {1, 0};&lt;br /&gt;
    pair&amp;lt;int, int&amp;gt; nxt = exGCD(b, a % b);&lt;br /&gt;
    int xx = nxt.first;&lt;br /&gt;
    int yy = nxt.second;&lt;br /&gt;
    int x = yy;&lt;br /&gt;
    int y = xx - a / b * yy;&lt;br /&gt;
    return {x, y};&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====简化一点的写法====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot; line&amp;gt;&lt;br /&gt;
// 返回 ax+by=gcd(a,b) 的解 &amp;lt;x,y&amp;gt;&lt;br /&gt;
pair&amp;lt;int, int&amp;gt; exGCD(int a, int b)&lt;br /&gt;
{&lt;br /&gt;
    // ax+0y=a&lt;br /&gt;
    if (b == 0)&lt;br /&gt;
        return {1, 0};&lt;br /&gt;
    pair&amp;lt;int, int&amp;gt; nxt = exGCD(b, a % b);&lt;br /&gt;
    return {nxt.second,&lt;br /&gt;
            nxt.first - a / b * nxt.second};&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====常见的写法====&lt;br /&gt;
&lt;br /&gt;
返回 gcd，引用类型的参数传递解&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot; line&amp;gt;&lt;br /&gt;
int exGcd(int a, int b, int &amp;amp;x, int &amp;amp;y)&lt;br /&gt;
{&lt;br /&gt;
    if (b == 0)&lt;br /&gt;
    {&lt;br /&gt;
        x = 1, y = 0;&lt;br /&gt;
        return a;&lt;br /&gt;
    }&lt;br /&gt;
    int xx, yy;&lt;br /&gt;
    int gcd = exGcd(b, a % b, xx, yy);&lt;br /&gt;
    x = yy;&lt;br /&gt;
    y = xx - (a / b) * yy;&lt;br /&gt;
    return gcd;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===通解===&lt;br /&gt;
&lt;br /&gt;
当求出来一组 &amp;lt;math&amp;gt;Ax+By=C&amp;lt;/math&amp;gt; 的解 &amp;lt;math&amp;gt;x_0,y_0&amp;lt;/math&amp;gt; 后，通解为：&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;math&amp;gt;x=x_0+\frac{B}{\gcd(A,B)}k&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;y=y_0-\frac{A}{\gcd(A,B)}k&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==费马小定理求逆元==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot; line&amp;gt;&lt;br /&gt;
// a 在模 p（质数） 意义下的逆元&lt;br /&gt;
int inv(int a, int p)&lt;br /&gt;
{&lt;br /&gt;
    return quick_pow(a, p - 2, p);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==扩欧求逆元==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot; line&amp;gt;&lt;br /&gt;
// a 在模 b 意义下的逆元（gcd(a,b)==1）&lt;br /&gt;
int inv(int a, int b)&lt;br /&gt;
{&lt;br /&gt;
    pair&amp;lt;int, int&amp;gt; ans = exGCD(a, b);&lt;br /&gt;
    // a * ans.first + b * ans.second = 1&lt;br /&gt;
    // a * ans.first === 1 (%b)&lt;br /&gt;
    return (ans.first % b + b) % b;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==线性求逆元==&lt;br /&gt;
&amp;lt;math&amp;gt;p = \lfloor\frac{p}{i}\rfloor\times i+(p \bmod i)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
在 &amp;lt;math&amp;gt;\bmod p&amp;lt;/math&amp;gt; 的意义下&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;0 \equiv \lfloor\frac{p}{i}\rfloor\times i+(p \bmod i)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
两边同时乘以 &amp;lt;math&amp;gt;i^{-1}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;0 \equiv \lfloor\frac{p}{i}\rfloor+(p \bmod i)\times i^{-1}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
两边同时乘以 &amp;lt;math&amp;gt;(p \bmod i)^{-1}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;0 \equiv \lfloor\frac{p}{i}\rfloor\times (p \bmod i)^{-1} +i^{-1}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
所以 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;i^{-1} \equiv -\lfloor\frac{p}{i}\rfloor\times (p \bmod i)^{-1}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot; line&amp;gt;&lt;br /&gt;
inv[1] = 1;&lt;br /&gt;
for (int i = 2; i &amp;lt;= n; i++)&lt;br /&gt;
    inv[i] = (p - p / i) * inv[p % i] % p;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==阶乘的逆元==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;(i!)^{-1}=1^{-1}\times 2^{-1} \times \dots\times i^{-1}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot; line&amp;gt;&lt;br /&gt;
// 预处理1~n的逆元&lt;br /&gt;
inv[1] = 1;&lt;br /&gt;
for (int i = 2; i &amp;lt;= n; i++)&lt;br /&gt;
    inv[i] = (MOD - MOD / i) * inv[MOD % i] % MOD;&lt;br /&gt;
// 预处理1~n的阶乘的逆元&lt;br /&gt;
// invFact[i] = inv[1]*inv[2]*...*inv[i]=invFact[i-1]*inv[i]&lt;br /&gt;
invFact[0] = invFact[1] = 1;&lt;br /&gt;
for (int i = 2; i &amp;lt;= n; i++)&lt;br /&gt;
    invFact[i] = invFact[i - 1] * inv[i] % MOD;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[分类:代码模板]]&lt;/div&gt;</summary>
		<author><name>33DAI</name></author>
	</entry>
	<entry>
		<id>https://www.33dai.wiki/index.php?title=%E5%9F%BA%E7%A1%80%E8%AF%AD%E6%B3%95%E5%A4%A7%E7%BA%B2&amp;diff=134</id>
		<title>基础语法大纲</title>
		<link rel="alternate" type="text/html" href="https://www.33dai.wiki/index.php?title=%E5%9F%BA%E7%A1%80%E8%AF%AD%E6%B3%95%E5%A4%A7%E7%BA%B2&amp;diff=134"/>
		<updated>2026-02-24T04:33:41Z</updated>

		<summary type="html">&lt;p&gt;33DAI：​&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==依赖关系==&lt;br /&gt;
&lt;br /&gt;
# C01-1 高级计算器：输出语句、int 变量、输入语句、加法、减法、乘法、小括号&lt;br /&gt;
#* E01-1 int存不下了：long long 类型、数据范围、整数编码&lt;br /&gt;
#* E01-2 小数怎么办：double 类型、类型转换&lt;br /&gt;
# C01-2 如果那么：不带 else 的 if 语句、除法、取余、相等、不等&lt;br /&gt;
# C01-3 相差多少：带 else 的 if 语句、大于、小于、并且&lt;br /&gt;
#* E01-3 文字与符号：char 类型、字符数字转换&lt;br /&gt;
# C01-4 一直做下去：while 语句、或者、反转&lt;br /&gt;
#* E01-4 花式输入输出：读入到文件末尾、保留 x 位小数&lt;br /&gt;
# C01-5 想做几次做几次：for 语句&lt;br /&gt;
# C01-6 循环套循环：循环嵌套&lt;br /&gt;
#* E01-5 更多运算符：位运算、三目运算符&lt;br /&gt;
#* E01-6 高级控制：break、continue 与 exit(0)&lt;br /&gt;
# C01-7 先存起来：一维数组&lt;br /&gt;
#* E01-7 一串字符：字符串&lt;br /&gt;
#* E01-8 高维结构：多维数组与结构体&lt;br /&gt;
# C01-8 数组妙用：权值数组、无返回值无参数的函数&lt;br /&gt;
# C01-9 功能打包：有参数有返回值函数&lt;br /&gt;
#* E01-9 自己调用自己：简单递归、参数传引用&lt;br /&gt;
&lt;br /&gt;
==核心序列（Core）==&lt;br /&gt;
&lt;br /&gt;
===C01-1 高级计算器===&lt;br /&gt;
&lt;br /&gt;
* 内容&lt;br /&gt;
** 输出语句、字符串字面量&lt;br /&gt;
** int 变量、赋值语句&lt;br /&gt;
** 输入语句&lt;br /&gt;
** 加法、减法、乘法、小括号 &lt;br /&gt;
* 约定&lt;br /&gt;
** 不讲基础框架的细节，只说执行的内容写在花括号里&lt;br /&gt;
** 不讲 endl，使用 \n 换行，转义符也只讲 \n，其他转义符留到 E01-3&lt;br /&gt;
** 数据类型只讲 int&lt;br /&gt;
** 为了极致的简单，不写 return 0;，等到 E01-9 之后再说只有主函数能省略 return 0;。&lt;br /&gt;
&lt;br /&gt;
===C01-2 如果那么===&lt;br /&gt;
&lt;br /&gt;
* 不带 else 的 if 语句&lt;br /&gt;
* 除法、取余&lt;br /&gt;
* 相等、不等&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===C01-3 相差多少===&lt;br /&gt;
&lt;br /&gt;
* 带 else 的 if 语句&lt;br /&gt;
* 大于、小于&lt;br /&gt;
* 并且&lt;br /&gt;
&lt;br /&gt;
===C01-4 一直做下去===&lt;br /&gt;
&lt;br /&gt;
* while 语句&lt;br /&gt;
* 或者、反转&lt;br /&gt;
&lt;br /&gt;
===C01-5 想做几次做几次===&lt;br /&gt;
&lt;br /&gt;
* for 语句&lt;br /&gt;
&lt;br /&gt;
===C01-6 循环套循环===&lt;br /&gt;
&lt;br /&gt;
* 循环嵌套&lt;br /&gt;
&lt;br /&gt;
===C01-7 先存起来===&lt;br /&gt;
&lt;br /&gt;
* 一维数组&lt;br /&gt;
&lt;br /&gt;
===C01-8 数组妙用===&lt;br /&gt;
&lt;br /&gt;
* 权值数组、无返回值无参数的函数&lt;br /&gt;
&lt;br /&gt;
===C01-9 功能打包===&lt;br /&gt;
&lt;br /&gt;
* 有参数有返回值函数&lt;br /&gt;
&lt;br /&gt;
==扩展维度（Extend）==&lt;br /&gt;
&lt;br /&gt;
===E01-1 int存不下了===&lt;br /&gt;
&lt;br /&gt;
* long long 类型&lt;br /&gt;
* 数据范围&lt;br /&gt;
* 整数编码&lt;br /&gt;
&lt;br /&gt;
===E01-2 小数怎么办===&lt;br /&gt;
&lt;br /&gt;
* double 类型&lt;br /&gt;
* 类型转换&lt;br /&gt;
&lt;br /&gt;
===E01-3 文字与符号===&lt;br /&gt;
&lt;br /&gt;
* char 类型&lt;br /&gt;
* 字符数字转换&lt;br /&gt;
&lt;br /&gt;
===E01-4 花式输入输出===&lt;br /&gt;
&lt;br /&gt;
* 读入到文件末尾&lt;br /&gt;
* 保留 x 位小数&lt;br /&gt;
&lt;br /&gt;
===E01-5 更多运算符===&lt;br /&gt;
&lt;br /&gt;
* 位运算&lt;br /&gt;
* 三元运算符&lt;br /&gt;
&lt;br /&gt;
===E01-6 高级控制===&lt;br /&gt;
&lt;br /&gt;
* break、continue&lt;br /&gt;
* exit(0)&lt;br /&gt;
&lt;br /&gt;
===E01-7 一串字符===&lt;br /&gt;
&lt;br /&gt;
* 字符串&lt;br /&gt;
&lt;br /&gt;
===E01-8 高维结构===&lt;br /&gt;
&lt;br /&gt;
* 多维数组&lt;br /&gt;
* 结构体&lt;br /&gt;
&lt;br /&gt;
===E01-9 自己调用自己===&lt;br /&gt;
&lt;br /&gt;
* 简单递归&lt;br /&gt;
* 参数传引用&lt;/div&gt;</summary>
		<author><name>33DAI</name></author>
	</entry>
	<entry>
		<id>https://www.33dai.wiki/index.php?title=%E9%A6%96%E9%A1%B5&amp;diff=133</id>
		<title>首页</title>
		<link rel="alternate" type="text/html" href="https://www.33dai.wiki/index.php?title=%E9%A6%96%E9%A1%B5&amp;diff=133"/>
		<updated>2026-02-24T02:43:11Z</updated>

		<summary type="html">&lt;p&gt;33DAI：​&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;main-page-welcome&amp;quot; style=&amp;quot;padding: 20px; background: #f8f9fa; border-radius: 8px; margin-bottom: 20px;&amp;quot;&amp;gt;&lt;br /&gt;
欢迎来到 &#039;&#039;&#039;三三百科&#039;&#039;&#039;！这里汇集了信奥常用小知识、比赛题解、以及常用工具导航。&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[:分类:代码模板]]&amp;lt;div class=&amp;quot;main-page-grid&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{NavBox&lt;br /&gt;
| title = Wiki 页面&lt;br /&gt;
| color = #ab5a6b&lt;br /&gt;
| icon = ✨&lt;br /&gt;
| content =&lt;br /&gt;
* [[乘法逆元]]&lt;br /&gt;
* [[质数判断]]&lt;br /&gt;
* [[高精度模板]]&lt;br /&gt;
* [[计算几何]]&lt;br /&gt;
* [[STL容器库常用内容]]&lt;br /&gt;
* [[STL例子]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{NavBox&lt;br /&gt;
| title = Wiki 页面&lt;br /&gt;
| color = #ab5a6b&lt;br /&gt;
| icon = ✨&lt;br /&gt;
| content =&lt;br /&gt;
* [[基础语法大纲]]&lt;br /&gt;
* [[初学者常用内容]]&lt;br /&gt;
* [[33OJ评测机]]&lt;br /&gt;
* [[33OJ题面规范]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{NavBox&lt;br /&gt;
| title = 常用 OJ 平台&lt;br /&gt;
| color = #27ae60&lt;br /&gt;
| icon = 🚀&lt;br /&gt;
| content =&lt;br /&gt;
* [https://oj.33dai.cn 33OJ]&lt;br /&gt;
* [https://luogu.com.cn 洛谷]&lt;br /&gt;
* [https://codeforces.com CodeForces]&lt;br /&gt;
* [https://atcoder.jp AtCoder]&lt;br /&gt;
* [https://htoj.hetao101.com/cpp/ 核桃周赛]&lt;br /&gt;
* [https://bs.daimayuan.top/ 代码源挑战赛]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{NavBox&lt;br /&gt;
| title = 信息查询&lt;br /&gt;
| color = #e67e22&lt;br /&gt;
| icon = 📚&lt;br /&gt;
| content =&lt;br /&gt;
* [https://www.noi.cn NOI 官网]&lt;br /&gt;
* [https://ioinformatics.org/ IOI官网]&lt;br /&gt;
* [https://board.xcpcio.com/ XCPC榜单]&lt;br /&gt;
* [https://oier.baoshuo.dev/ OIerDB]&lt;br /&gt;
* [http://oiwiki.org/ OI Wiki]&lt;br /&gt;
* [https://oeis.org/ OEIS]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{NavBox&lt;br /&gt;
| title = 常用工具&lt;br /&gt;
| color = #8e44ad&lt;br /&gt;
| icon = 🛠️&lt;br /&gt;
| content =&lt;br /&gt;
* [https://cpp.33dai.wiki C++ 参考手册]&lt;br /&gt;
* [https://py.33dai.wiki Python 文档]&lt;br /&gt;
* [https://visualgo.net/zh/ VISUALGO]&lt;br /&gt;
* [https://csacademy.com/app/graph_editor/ Graph Editor] &lt;br /&gt;
* [https://www.geogebra.org/graphing GeoGebra]&lt;br /&gt;
* [https://github.com/open33oj/wiki33 原&amp;quot;三三文档&amp;quot;内容]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;([\s\S\n\r]*?)&amp;amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot; line&amp;gt;$1&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>33DAI</name></author>
	</entry>
	<entry>
		<id>https://www.33dai.wiki/index.php?title=%E5%9F%BA%E7%A1%80%E8%AF%AD%E6%B3%95%E5%A4%A7%E7%BA%B2&amp;diff=132</id>
		<title>基础语法大纲</title>
		<link rel="alternate" type="text/html" href="https://www.33dai.wiki/index.php?title=%E5%9F%BA%E7%A1%80%E8%AF%AD%E6%B3%95%E5%A4%A7%E7%BA%B2&amp;diff=132"/>
		<updated>2026-02-24T02:42:58Z</updated>

		<summary type="html">&lt;p&gt;33DAI：​创建页面，内容为“==依赖关系==  # C01-1 高级计算器：输出语句、int 变量、输入语句、加法、减法、乘法、小括号 #* E01-1 int存不下了：long long 类型、数据范围、整数编码 #* E01-2 小数怎么办：double 类型、类型转换 # C01-2 如果那么：不带 else 的 if 语句、除法、取余、相等、不等 # C01-3 相差多少：带 else 的 if 语句、大于、小于、并且 #* E01-3 文字与符号：char 类型、字符数字…”&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==依赖关系==&lt;br /&gt;
&lt;br /&gt;
# C01-1 高级计算器：输出语句、int 变量、输入语句、加法、减法、乘法、小括号&lt;br /&gt;
#* E01-1 int存不下了：long long 类型、数据范围、整数编码&lt;br /&gt;
#* E01-2 小数怎么办：double 类型、类型转换&lt;br /&gt;
# C01-2 如果那么：不带 else 的 if 语句、除法、取余、相等、不等&lt;br /&gt;
# C01-3 相差多少：带 else 的 if 语句、大于、小于、并且&lt;br /&gt;
#* E01-3 文字与符号：char 类型、字符数字转换&lt;br /&gt;
# C01-4 一直做下去：while 语句、或者、反转&lt;br /&gt;
#* E01-4 花式输入输出：读入到文件末尾、保留 x 位小数&lt;br /&gt;
# C01-5 想做几次做几次：for 语句&lt;br /&gt;
# C01-6 循环套循环：循环嵌套&lt;br /&gt;
#* E01-5 更多运算符：位运算、三目运算符&lt;br /&gt;
#* E01-6 高级控制：break、continue 与 exit(0)&lt;br /&gt;
# C01-7 先存起来：一维数组&lt;br /&gt;
#* E01-7 一串字符：字符串&lt;br /&gt;
#* E01-8 高维结构：多维数组与结构体&lt;br /&gt;
# C01-8 数组妙用：权值数组、无返回值无参数的函数&lt;br /&gt;
# C01-9 功能打包：有参数有返回值函数&lt;br /&gt;
#* E01-9 自己调用自己：简单递归、参数传引用&lt;br /&gt;
&lt;br /&gt;
==核心序列（Core）==&lt;br /&gt;
&lt;br /&gt;
===C01-1 高级计算器===&lt;br /&gt;
&lt;br /&gt;
* 输出语句&lt;br /&gt;
* int 变量、赋值语句&lt;br /&gt;
* 输入语句&lt;br /&gt;
* 加法、减法、乘法、小括号 &lt;br /&gt;
&lt;br /&gt;
===C01-2 如果那么===&lt;br /&gt;
&lt;br /&gt;
* 不带 else 的 if 语句&lt;br /&gt;
* 除法、取余&lt;br /&gt;
* 相等、不等&lt;br /&gt;
&lt;br /&gt;
===C01-3 相差多少===&lt;br /&gt;
&lt;br /&gt;
* 带 else 的 if 语句&lt;br /&gt;
* 大于、小于&lt;br /&gt;
* 并且&lt;br /&gt;
&lt;br /&gt;
===C01-4 一直做下去===&lt;br /&gt;
&lt;br /&gt;
* while 语句&lt;br /&gt;
* 或者、反转&lt;br /&gt;
&lt;br /&gt;
===C01-5 想做几次做几次===&lt;br /&gt;
&lt;br /&gt;
* for 语句&lt;br /&gt;
&lt;br /&gt;
===C01-6 循环套循环===&lt;br /&gt;
&lt;br /&gt;
* 循环嵌套&lt;br /&gt;
&lt;br /&gt;
===C01-7 先存起来===&lt;br /&gt;
&lt;br /&gt;
* 一维数组&lt;br /&gt;
&lt;br /&gt;
===C01-8 数组妙用===&lt;br /&gt;
&lt;br /&gt;
* 权值数组、无返回值无参数的函数&lt;br /&gt;
&lt;br /&gt;
===C01-9 功能打包===&lt;br /&gt;
&lt;br /&gt;
* 有参数有返回值函数&lt;br /&gt;
&lt;br /&gt;
==扩展维度（Extend）==&lt;br /&gt;
&lt;br /&gt;
===E01-1 int存不下了===&lt;br /&gt;
&lt;br /&gt;
* long long 类型&lt;br /&gt;
* 数据范围&lt;br /&gt;
* 整数编码&lt;br /&gt;
&lt;br /&gt;
===E01-2 小数怎么办===&lt;br /&gt;
&lt;br /&gt;
* double 类型&lt;br /&gt;
* 类型转换&lt;br /&gt;
&lt;br /&gt;
===E01-3 文字与符号===&lt;br /&gt;
&lt;br /&gt;
* char 类型&lt;br /&gt;
* 字符数字转换&lt;br /&gt;
&lt;br /&gt;
===E01-4 花式输入输出===&lt;br /&gt;
&lt;br /&gt;
* 读入到文件末尾&lt;br /&gt;
* 保留 x 位小数&lt;br /&gt;
&lt;br /&gt;
===E01-5 更多运算符===&lt;br /&gt;
&lt;br /&gt;
* 位运算&lt;br /&gt;
* 三元运算符&lt;br /&gt;
&lt;br /&gt;
===E01-6 高级控制===&lt;br /&gt;
&lt;br /&gt;
* break、continue&lt;br /&gt;
* exit(0)&lt;br /&gt;
&lt;br /&gt;
===E01-7 一串字符===&lt;br /&gt;
&lt;br /&gt;
* 字符串&lt;br /&gt;
&lt;br /&gt;
===E01-8 高维结构===&lt;br /&gt;
&lt;br /&gt;
* 多维数组&lt;br /&gt;
* 结构体&lt;br /&gt;
&lt;br /&gt;
===E01-9 自己调用自己===&lt;br /&gt;
&lt;br /&gt;
* 简单递归&lt;br /&gt;
* 参数传引用&lt;/div&gt;</summary>
		<author><name>33DAI</name></author>
	</entry>
	<entry>
		<id>https://www.33dai.wiki/index.php?title=%E9%A6%96%E9%A1%B5&amp;diff=131</id>
		<title>首页</title>
		<link rel="alternate" type="text/html" href="https://www.33dai.wiki/index.php?title=%E9%A6%96%E9%A1%B5&amp;diff=131"/>
		<updated>2026-02-24T02:41:22Z</updated>

		<summary type="html">&lt;p&gt;33DAI：​&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;main-page-welcome&amp;quot; style=&amp;quot;padding: 20px; background: #f8f9fa; border-radius: 8px; margin-bottom: 20px;&amp;quot;&amp;gt;&lt;br /&gt;
欢迎来到 &#039;&#039;&#039;三三百科&#039;&#039;&#039;！这里汇集了信奥常用小知识、比赛题解、以及常用工具导航。&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[:分类:代码模板]]&amp;lt;div class=&amp;quot;main-page-grid&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{NavBox&lt;br /&gt;
| title = Wiki 页面&lt;br /&gt;
| color = #ab5a6b&lt;br /&gt;
| icon = ✨&lt;br /&gt;
| content =&lt;br /&gt;
* [[乘法逆元]]&lt;br /&gt;
* [[质数判断]]&lt;br /&gt;
* [[高精度模板]]&lt;br /&gt;
* [[计算几何]]&lt;br /&gt;
* [[STL容器库常用内容]]&lt;br /&gt;
* [[STL例子]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{NavBox&lt;br /&gt;
| title = Wiki 页面&lt;br /&gt;
| color = #ab5a6b&lt;br /&gt;
| icon = ✨&lt;br /&gt;
| content =&lt;br /&gt;
* [[新范式信奥:简单语法]]&lt;br /&gt;
* [[初学者常用内容]]&lt;br /&gt;
* [[33OJ评测机]]&lt;br /&gt;
* [[33OJ题面规范]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{NavBox&lt;br /&gt;
| title = 常用 OJ 平台&lt;br /&gt;
| color = #27ae60&lt;br /&gt;
| icon = 🚀&lt;br /&gt;
| content =&lt;br /&gt;
* [https://oj.33dai.cn 33OJ]&lt;br /&gt;
* [https://luogu.com.cn 洛谷]&lt;br /&gt;
* [https://codeforces.com CodeForces]&lt;br /&gt;
* [https://atcoder.jp AtCoder]&lt;br /&gt;
* [https://htoj.hetao101.com/cpp/ 核桃周赛]&lt;br /&gt;
* [https://bs.daimayuan.top/ 代码源挑战赛]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{NavBox&lt;br /&gt;
| title = 信息查询&lt;br /&gt;
| color = #e67e22&lt;br /&gt;
| icon = 📚&lt;br /&gt;
| content =&lt;br /&gt;
* [https://www.noi.cn NOI 官网]&lt;br /&gt;
* [https://ioinformatics.org/ IOI官网]&lt;br /&gt;
* [https://board.xcpcio.com/ XCPC榜单]&lt;br /&gt;
* [https://oier.baoshuo.dev/ OIerDB]&lt;br /&gt;
* [http://oiwiki.org/ OI Wiki]&lt;br /&gt;
* [https://oeis.org/ OEIS]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{NavBox&lt;br /&gt;
| title = 常用工具&lt;br /&gt;
| color = #8e44ad&lt;br /&gt;
| icon = 🛠️&lt;br /&gt;
| content =&lt;br /&gt;
* [https://cpp.33dai.wiki C++ 参考手册]&lt;br /&gt;
* [https://py.33dai.wiki Python 文档]&lt;br /&gt;
* [https://visualgo.net/zh/ VISUALGO]&lt;br /&gt;
* [https://csacademy.com/app/graph_editor/ Graph Editor] &lt;br /&gt;
* [https://www.geogebra.org/graphing GeoGebra]&lt;br /&gt;
* [https://github.com/open33oj/wiki33 原&amp;quot;三三文档&amp;quot;内容]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;([\s\S\n\r]*?)&amp;amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot; line&amp;gt;$1&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>33DAI</name></author>
	</entry>
	<entry>
		<id>https://www.33dai.wiki/index.php?title=%E9%A6%96%E9%A1%B5&amp;diff=128</id>
		<title>首页</title>
		<link rel="alternate" type="text/html" href="https://www.33dai.wiki/index.php?title=%E9%A6%96%E9%A1%B5&amp;diff=128"/>
		<updated>2026-02-12T08:55:31Z</updated>

		<summary type="html">&lt;p&gt;33DAI：​&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;main-page-welcome&amp;quot; style=&amp;quot;padding: 20px; background: #f8f9fa; border-radius: 8px; margin-bottom: 20px;&amp;quot;&amp;gt;&lt;br /&gt;
欢迎来到 &#039;&#039;&#039;三三百科&#039;&#039;&#039;！这里汇集了信奥常用小知识、比赛题解、以及常用工具导航。&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[:分类:代码模板]]&amp;lt;div class=&amp;quot;main-page-grid&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{NavBox&lt;br /&gt;
| title = Wiki 页面&lt;br /&gt;
| color = #ab5a6b&lt;br /&gt;
| icon = ✨&lt;br /&gt;
| content =&lt;br /&gt;
* [[乘法逆元]]&lt;br /&gt;
* [[质数判断]]&lt;br /&gt;
* [[高精度模板]]&lt;br /&gt;
* [[计算几何]]&lt;br /&gt;
* [[STL容器库常用内容]]&lt;br /&gt;
* [[STL例子]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{NavBox&lt;br /&gt;
| title = Wiki 页面&lt;br /&gt;
| color = #ab5a6b&lt;br /&gt;
| icon = ✨&lt;br /&gt;
| content =&lt;br /&gt;
* [[初学者常用内容]]&lt;br /&gt;
* [[33OJ评测机]]&lt;br /&gt;
* [[33OJ题面规范]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{NavBox&lt;br /&gt;
| title = 常用 OJ 平台&lt;br /&gt;
| color = #27ae60&lt;br /&gt;
| icon = 🚀&lt;br /&gt;
| content =&lt;br /&gt;
* [https://oj.33dai.cn 33OJ]&lt;br /&gt;
* [https://luogu.com.cn 洛谷]&lt;br /&gt;
* [https://codeforces.com CodeForces]&lt;br /&gt;
* [https://atcoder.jp AtCoder]&lt;br /&gt;
* [https://htoj.hetao101.com/cpp/ 核桃周赛]&lt;br /&gt;
* [https://bs.daimayuan.top/ 代码源挑战赛]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{NavBox&lt;br /&gt;
| title = 信息查询&lt;br /&gt;
| color = #e67e22&lt;br /&gt;
| icon = 📚&lt;br /&gt;
| content =&lt;br /&gt;
* [https://www.noi.cn NOI 官网]&lt;br /&gt;
* [https://ioinformatics.org/ IOI官网]&lt;br /&gt;
* [https://board.xcpcio.com/ XCPC榜单]&lt;br /&gt;
* [https://oier.baoshuo.dev/ OIerDB]&lt;br /&gt;
* [http://oiwiki.org/ OI Wiki]&lt;br /&gt;
* [https://oeis.org/ OEIS]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{NavBox&lt;br /&gt;
| title = 常用工具&lt;br /&gt;
| color = #8e44ad&lt;br /&gt;
| icon = 🛠️&lt;br /&gt;
| content =&lt;br /&gt;
* [https://cpp.33dai.wiki C++ 参考手册]&lt;br /&gt;
* [https://py.33dai.wiki Python 文档]&lt;br /&gt;
* [https://visualgo.net/zh/ VISUALGO]&lt;br /&gt;
* [https://csacademy.com/app/graph_editor/ Graph Editor] &lt;br /&gt;
* [https://www.geogebra.org/graphing GeoGebra]&lt;br /&gt;
* [https://github.com/open33oj/wiki33 原&amp;quot;三三文档&amp;quot;内容]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;([\s\S\n\r]*?)&amp;amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot; line&amp;gt;$1&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>33DAI</name></author>
	</entry>
	<entry>
		<id>https://www.33dai.wiki/index.php?title=%E8%B4%A8%E6%95%B0%E5%88%A4%E6%96%AD&amp;diff=127</id>
		<title>质数判断</title>
		<link rel="alternate" type="text/html" href="https://www.33dai.wiki/index.php?title=%E8%B4%A8%E6%95%B0%E5%88%A4%E6%96%AD&amp;diff=127"/>
		<updated>2026-02-12T08:55:11Z</updated>

		<summary type="html">&lt;p&gt;33DAI：​创建页面，内容为“==判断单个质数==  &amp;lt;math&amp;gt;O(\sqrt{x})&amp;lt;/math&amp;gt;  &amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot; line&amp;gt; bool is_prime(long long x) {     if (x &amp;lt; 2)         return false;     for (long long i = 2; i * i &amp;lt;= x; i++)         if (x % i == 0)             return false;     return true; } &amp;lt;/syntaxhighlight&amp;gt;  ==筛法==  ===埃氏筛===  &amp;lt;math&amp;gt;O(n\log \log n)&amp;lt;/math&amp;gt;  &amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot; line&amp;gt; const int MAXN = 10&amp;#039;000&amp;#039;000; bool p[MAXN + 1]; //筛出 1~n 中的每个数是否为质数…”&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==判断单个质数==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;O(\sqrt{x})&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot; line&amp;gt;&lt;br /&gt;
bool is_prime(long long x)&lt;br /&gt;
{&lt;br /&gt;
    if (x &amp;lt; 2)&lt;br /&gt;
        return false;&lt;br /&gt;
    for (long long i = 2; i * i &amp;lt;= x; i++)&lt;br /&gt;
        if (x % i == 0)&lt;br /&gt;
            return false;&lt;br /&gt;
    return true;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==筛法==&lt;br /&gt;
&lt;br /&gt;
===埃氏筛===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;O(n\log \log n)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot; line&amp;gt;&lt;br /&gt;
const int MAXN = 10&#039;000&#039;000;&lt;br /&gt;
bool p[MAXN + 1];&lt;br /&gt;
//筛出 1~n 中的每个数是否为质数&lt;br /&gt;
void get_primes(int n)&lt;br /&gt;
{&lt;br /&gt;
    //初始化&lt;br /&gt;
    p[0] = p[1] = false;&lt;br /&gt;
    for (int i = 2; i &amp;lt;= n; i++)&lt;br /&gt;
        p[i] = true;&lt;br /&gt;
    //筛&lt;br /&gt;
    for (int i = 2; i &amp;lt;= n; i++)&lt;br /&gt;
        if (p[i])&lt;br /&gt;
            for (int j = i + i; j &amp;lt;= n; j += i)&lt;br /&gt;
                p[j] = false;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===线性筛/欧拉筛===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;O(n)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot; line&amp;gt;&lt;br /&gt;
const int MAXN = 10&#039;000&#039;000;&lt;br /&gt;
bool p[MAXN + 1];&lt;br /&gt;
vector&amp;lt;int&amp;gt; pri;&lt;br /&gt;
// 筛出 1~n 中的每个数是否为质数&lt;br /&gt;
void get_primes(int n)&lt;br /&gt;
{&lt;br /&gt;
    for (int i = 1; i &amp;lt;= n; i++)&lt;br /&gt;
        p[i] = true;&lt;br /&gt;
    p[0] = p[1] = false;&lt;br /&gt;
    for (int i = 2; i &amp;lt;= n; i++)&lt;br /&gt;
    {&lt;br /&gt;
        if (p[i])&lt;br /&gt;
            pri.push_back(i);&lt;br /&gt;
        for (int j = 0; j &amp;lt; pri.size(); j++)&lt;br /&gt;
        {&lt;br /&gt;
            // i*pri[j]&lt;br /&gt;
            if (i * pri[j] &amp;gt; n)&lt;br /&gt;
                break;&lt;br /&gt;
            p[i * pri[j]] = false;&lt;br /&gt;
            if (i % pri[j] == 0)&lt;br /&gt;
                break;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>33DAI</name></author>
	</entry>
	<entry>
		<id>https://www.33dai.wiki/index.php?title=%E5%88%9D%E5%AD%A6%E8%80%85%E5%B8%B8%E7%94%A8%E5%86%85%E5%AE%B9&amp;diff=126</id>
		<title>初学者常用内容</title>
		<link rel="alternate" type="text/html" href="https://www.33dai.wiki/index.php?title=%E5%88%9D%E5%AD%A6%E8%80%85%E5%B8%B8%E7%94%A8%E5%86%85%E5%AE%B9&amp;diff=126"/>
		<updated>2026-02-12T08:17:08Z</updated>

		<summary type="html">&lt;p&gt;33DAI：​/* 筛法 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;补充中&lt;br /&gt;
&lt;br /&gt;
==保留 3 位小数==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot; line&amp;gt;&lt;br /&gt;
cout &amp;lt;&amp;lt; fixed &amp;lt;&amp;lt; setprecision(3) &amp;lt;&amp;lt; 1.0 / 3; &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==最大公因数/最小公倍数==&lt;br /&gt;
&lt;br /&gt;
比赛时允许使用 C++ 自带的 {{ic|code=__gcd(a,b)}}  函数求最大公因数。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot; line&amp;gt;&lt;br /&gt;
int gcd(int a, int b)&lt;br /&gt;
{&lt;br /&gt;
    if (b == 0)&lt;br /&gt;
        return a;&lt;br /&gt;
    return gcd(b, a % b);&lt;br /&gt;
}&lt;br /&gt;
int lcm(int a, int b)&lt;br /&gt;
{&lt;br /&gt;
    return a / gcd(a, b) * b;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==判断质数==&lt;br /&gt;
&lt;br /&gt;
===判断单个质数===&lt;br /&gt;
&lt;br /&gt;
* 如果小于 &amp;lt;math&amp;gt;2&amp;lt;/math&amp;gt; 肯定不是质数&lt;br /&gt;
* 检查 &amp;lt;math&amp;gt;2\sim \sqrt{n}&amp;lt;/math&amp;gt;，如果有因子，肯定不是质数&lt;br /&gt;
* 通过了前面的检查就肯定是质数&lt;br /&gt;
&lt;br /&gt;
===筛法===&lt;br /&gt;
&lt;br /&gt;
核心都是对于质数 &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; 与任意数 &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt;，把 &amp;lt;math&amp;gt;p\times i&amp;lt;/math&amp;gt; 标记为合数。&lt;br /&gt;
&lt;br /&gt;
* 埃氏筛法：&amp;lt;math&amp;gt;O(n\log \log n)&amp;lt;/math&amp;gt; 把筛出来的质数的倍数标记为合数。&lt;br /&gt;
* 欧拉筛法：&amp;lt;math&amp;gt;O(n)&amp;lt;/math&amp;gt; 把每个数的质数倍标记为合数，如果当前质数是因子，就不用考虑更大的质数了（肯定会可以由一个更大的数乘以那个作为因子的质数）&lt;br /&gt;
&lt;br /&gt;
欧拉筛法能保证每个数只被最小质因子筛，可以用来处理一些积性函数求解。&lt;br /&gt;
&lt;br /&gt;
==广搜核心逻辑==&lt;br /&gt;
&lt;br /&gt;
# 多测要清空&lt;br /&gt;
# 起点入队&lt;br /&gt;
# 重复取出队头并扩散&lt;br /&gt;
&lt;br /&gt;
==动态规划经典思路==&lt;br /&gt;
&lt;br /&gt;
# 大胆猜测状态&lt;br /&gt;
## 求最大长度：“前 i 项的最大长度”、“以第 i 项结尾的最大长度”&lt;br /&gt;
## 求方案数：“前 i 项的方案数”、“以第 i 项结尾的方案数”&lt;br /&gt;
## 求最大收益：“前 i 个物品的最大收益”&lt;br /&gt;
## 求最少操作次数：“s 的前 i 项与 t 的前 j 项的最少操作次数”&lt;br /&gt;
# 大胆猜测决策&lt;br /&gt;
## 选不选第 i 项&lt;br /&gt;
## 上一项选谁&lt;br /&gt;
# 不好求就加维度&lt;br /&gt;
## 前 i 个物品的最大收益：前 i 个物品在 j 体积下的最大收益&lt;/div&gt;</summary>
		<author><name>33DAI</name></author>
	</entry>
	<entry>
		<id>https://www.33dai.wiki/index.php?title=%E5%88%9D%E5%AD%A6%E8%80%85%E5%B8%B8%E7%94%A8%E5%86%85%E5%AE%B9&amp;diff=125</id>
		<title>初学者常用内容</title>
		<link rel="alternate" type="text/html" href="https://www.33dai.wiki/index.php?title=%E5%88%9D%E5%AD%A6%E8%80%85%E5%B8%B8%E7%94%A8%E5%86%85%E5%AE%B9&amp;diff=125"/>
		<updated>2026-02-12T08:16:49Z</updated>

		<summary type="html">&lt;p&gt;33DAI：​&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;补充中&lt;br /&gt;
&lt;br /&gt;
==保留 3 位小数==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot; line&amp;gt;&lt;br /&gt;
cout &amp;lt;&amp;lt; fixed &amp;lt;&amp;lt; setprecision(3) &amp;lt;&amp;lt; 1.0 / 3; &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==最大公因数/最小公倍数==&lt;br /&gt;
&lt;br /&gt;
比赛时允许使用 C++ 自带的 {{ic|code=__gcd(a,b)}}  函数求最大公因数。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot; line&amp;gt;&lt;br /&gt;
int gcd(int a, int b)&lt;br /&gt;
{&lt;br /&gt;
    if (b == 0)&lt;br /&gt;
        return a;&lt;br /&gt;
    return gcd(b, a % b);&lt;br /&gt;
}&lt;br /&gt;
int lcm(int a, int b)&lt;br /&gt;
{&lt;br /&gt;
    return a / gcd(a, b) * b;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==判断质数==&lt;br /&gt;
&lt;br /&gt;
===判断单个质数===&lt;br /&gt;
&lt;br /&gt;
* 如果小于 &amp;lt;math&amp;gt;2&amp;lt;/math&amp;gt; 肯定不是质数&lt;br /&gt;
* 检查 &amp;lt;math&amp;gt;2\sim \sqrt{n}&amp;lt;/math&amp;gt;，如果有因子，肯定不是质数&lt;br /&gt;
* 通过了前面的检查就肯定是质数&lt;br /&gt;
&lt;br /&gt;
===筛法===&lt;br /&gt;
&lt;br /&gt;
核心都是对于质数 &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; 与任意数 &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt;，把 &amp;lt;math&amp;gt;p\times i&amp;lt;/math&amp;gt; 标记为合数。&lt;br /&gt;
&lt;br /&gt;
* 埃氏筛法：&amp;lt;math&amp;gt;O(n\log \log n)&amp;lt;/math&amp;gt;把筛出来的质数的倍数标记为合数。&lt;br /&gt;
* 欧拉筛法：&amp;lt;math&amp;gt;O(n)&amp;lt;/math&amp;gt;把每个数的质数倍标记为合数，如果当前质数是因子，就不用考虑更大的质数了（肯定会可以由一个更大的数乘以那个作为因子的质数）&lt;br /&gt;
&lt;br /&gt;
欧拉筛法能保证每个数只被最小质因子筛，可以用来处理一些积性函数求解。&lt;br /&gt;
==广搜核心逻辑==&lt;br /&gt;
&lt;br /&gt;
# 多测要清空&lt;br /&gt;
# 起点入队&lt;br /&gt;
# 重复取出队头并扩散&lt;br /&gt;
&lt;br /&gt;
==动态规划经典思路==&lt;br /&gt;
&lt;br /&gt;
# 大胆猜测状态&lt;br /&gt;
## 求最大长度：“前 i 项的最大长度”、“以第 i 项结尾的最大长度”&lt;br /&gt;
## 求方案数：“前 i 项的方案数”、“以第 i 项结尾的方案数”&lt;br /&gt;
## 求最大收益：“前 i 个物品的最大收益”&lt;br /&gt;
## 求最少操作次数：“s 的前 i 项与 t 的前 j 项的最少操作次数”&lt;br /&gt;
# 大胆猜测决策&lt;br /&gt;
## 选不选第 i 项&lt;br /&gt;
## 上一项选谁&lt;br /&gt;
# 不好求就加维度&lt;br /&gt;
## 前 i 个物品的最大收益：前 i 个物品在 j 体积下的最大收益&lt;/div&gt;</summary>
		<author><name>33DAI</name></author>
	</entry>
	<entry>
		<id>https://www.33dai.wiki/index.php?title=%E5%88%9D%E5%AD%A6%E8%80%85%E5%B8%B8%E7%94%A8%E5%86%85%E5%AE%B9&amp;diff=124</id>
		<title>初学者常用内容</title>
		<link rel="alternate" type="text/html" href="https://www.33dai.wiki/index.php?title=%E5%88%9D%E5%AD%A6%E8%80%85%E5%B8%B8%E7%94%A8%E5%86%85%E5%AE%B9&amp;diff=124"/>
		<updated>2026-02-12T06:36:12Z</updated>

		<summary type="html">&lt;p&gt;33DAI：​&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;补充中&lt;br /&gt;
&lt;br /&gt;
==保留 3 位小数==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot; line&amp;gt;&lt;br /&gt;
cout &amp;lt;&amp;lt; fixed &amp;lt;&amp;lt; setprecision(3) &amp;lt;&amp;lt; 1.0 / 3; &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==最大公因数/最小公倍数==&lt;br /&gt;
&lt;br /&gt;
比赛时允许使用 C++ 自带的 {{ic|code=__gcd(a,b)}}  函数求最大公因数。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot; line&amp;gt;&lt;br /&gt;
int gcd(int a, int b)&lt;br /&gt;
{&lt;br /&gt;
    if (b == 0)&lt;br /&gt;
        return a;&lt;br /&gt;
    return gcd(b, a % b);&lt;br /&gt;
}&lt;br /&gt;
int lcm(int a, int b)&lt;br /&gt;
{&lt;br /&gt;
    return a / gcd(a, b) * b;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==广搜核心逻辑==&lt;br /&gt;
&lt;br /&gt;
# 多测要清空&lt;br /&gt;
# 起点入队&lt;br /&gt;
# 重复取出队头并扩散&lt;br /&gt;
&lt;br /&gt;
==动态规划经典思路==&lt;br /&gt;
&lt;br /&gt;
# 大胆猜测状态&lt;br /&gt;
## 求最大长度：“前 i 项的最大长度”、“以第 i 项结尾的最大长度”&lt;br /&gt;
## 求方案数：“前 i 项的方案数”、“以第 i 项结尾的方案数”&lt;br /&gt;
## 求最大收益：“前 i 个物品的最大收益”&lt;br /&gt;
## 求最少操作次数：“s 的前 i 项与 t 的前 j 项的最少操作次数”&lt;br /&gt;
# 大胆猜测决策&lt;br /&gt;
## 选不选第 i 项&lt;br /&gt;
## 上一项选谁&lt;br /&gt;
# 不好求就加维度&lt;br /&gt;
## 前 i 个物品的最大收益：前 i 个物品在 j 体积下的最大收益&lt;/div&gt;</summary>
		<author><name>33DAI</name></author>
	</entry>
</feed>