


第1题 加法原理
若一项任务可从两种互斥的方案中选择一种完成,其中方案A有a种做法,方案B有b种做法,则总做法数为a+b。
✅ 答案:正确(√)
1、为什么?
(1)这是排列组合最基础的两大原理之一。
假设今天放学有两种方式:
(2)方案A:
骑自行车
有3辆可以骑
(3)方案B:
坐公交车
有2条线路
(4)注意:
骑车和坐公交不能同时进行。
(4)因此:
总方案
=
3+2
=
5
2、这就是
加法原理(分类计数原理)
3、记忆口诀
互斥(只能选一个) → 相加。
第2题 圆排列
n个不同元素围成一圈,只把旋转视为相同,翻转不同,方案数为(n−1)!。
✅ 答案:正确(√)
1、为什么?
(1)排成一圈时:
例如
ABCDE
旋转以后
BCDEA
视为没有区别。
(2)所以固定一个人。
剩下
n-1
个人排列。
因此:
(n-1)!
2、注意陷阱
(1)如果题目说:
旋转、翻转都一样。
(2)那答案就是:
(n-1)!/2
这是考试喜欢出的坑。
第3题 可重复组合
从n个不同元素中可重复地选k个且不考虑顺序,方案数为C(n+k,k)。
答案:错误(❌️)
1、这是经典:
插板法(Stars and Bars)
2、例如:
(1)三种水果:
苹果
香蕉
橘子
可以买4个。
(2)可以买:
苹果 苹果 苹果 苹果
(3)也可以买:
苹果 香蕉 香蕉 橘子
......
公式就是:
也是
两种写法一样。
第4题 杨辉三角
1、杨辉三角DP转移公式:
答案:错误(❌️)
2、这就是
杨辉三角递推
(1)例如:
1
1 1
1 2 1
1 3 3 1
为什么3出现?
(2)因为:
1+2=3
每一个数字:
都是:
左上 + 右上。
所以组合数DP全部来自这里。
第5题 快速幂
快速幂可以在O(logn)时间计算aⁿ。
✅ 答案:正确(√)
1、很多同学会写:
long long ans=1;
for(int i=1;i<=n;i++)
ans*=a;
这是:
O(n)
2、快速幂:
不断平方。
3、例如:
3^13
不用乘13次。
(1)指数:
13
↓
6
↓
3
↓
1
↓
0
不断减半。
(2)因此:
时间复杂度:
O(logn)
4、记忆口诀
指数减半。
底数平方。
奇数乘答案。
第6题 Dijkstra
只要没有负权环,Dijkstra就一定正确。
❌ 答案:错误(×)
1、这是八级经典陷阱。
很多同学容易和Bellman-Ford混。
2、Dijkstra要求
必须:
所有边权非负。
哪怕只有:
一条负边
都有可能算错。
3、例如:
A→B =2
A→C =5
C→B =-10
(1)真正最短:
A→C→B
=-5
(2)但Dijkstra可能先确定B,
以后就不会修改。
因此:
错误。
4、谁能处理负边?
Bellman-Ford
SPFA
Floyd
都可以。
第7题 最小生成树唯一
连通图所有边权互不相同,则MST唯一。
✅ 答案:正确(√)
1、为什么?
(1)Kruskal排序以后:
边权:
1
2
3
4
没有任何两条边一样。
(2)所以:
每一步:
选谁
没有争议。
因此:
最终树唯一。
2、如果:
有很多
权值一样
可能出现:
很多种MST。
第8题 圆内判断
判断是否在圆内,可以比较x²+y²和r²,不需要开平方。
✅ 答案:正确(√)
1、这就是前面选择题第8题。
(1)因为:
(2)平方以后:
2、比赛里经常这样写。
因为:
更快
没误差
第9题 二分答案
check(x)不满足单调性,也一定可以二分答案。
❌ 答案:错误(×)
1、这是整个二分答案最重要条件。
为什么?
(1)例如:
答案:
1 2 3 4 5 6
(2)check:
F
F
T
T
T
T
(3)这就是:
单调。
二分才能找。
2、如果不满足单调性:
就不能二分。
第10题 归并排序
归并排序是一种稳定排序,复杂度O(nlogn)。
✅ 答案:正确(√)
1、归并排序:
(1)每层:
O(n)
(2)高度:
logn
(3)因此:
O(nlogn)
2、为什么稳定?
(1)例如:
5A
5B
两个5。
(2)归并时:
如果相等,
总是:
先放左边。
于是:
A仍然在B前面。
(3)所以:
相对顺序不会改变。
这就是:
稳定排序。
本套判断题总结
| 题号 | 答案 | 核心考点 | 是否高频 |
|---|---|---|---|
| 1 | √ | 加法原理(分类计数) | ⭐⭐⭐⭐ |
| 2 | √ | 圆排列公式 | ⭐⭐⭐⭐ |
| 3 | × | 可重复组合(插板法) | ⭐⭐⭐⭐⭐ |
| 4 | × | 杨辉三角递推 | ⭐⭐⭐⭐⭐ |
| 5 | √ | 快速幂 O(logn) |
⭐⭐⭐⭐⭐ |
| 6 | × | Dijkstra不能处理负边 | ⭐⭐⭐⭐⭐ |
| 7 | √ | 边权互异 ⇒ MST唯一 | ⭐⭐⭐⭐ |
| 8 | √ | 圆内判断比较平方 | ⭐⭐⭐ |
| 9 | × | 二分答案必须满足单调性 | ⭐⭐⭐⭐⭐ |
| 10 | √ | 归并排序稳定且 O(nlogn) |
⭐⭐⭐⭐⭐ |
请重点记忆下面五句话:
互斥事件用加法原理,独立步骤用乘法原理。
Dijkstra 只能处理非负权图,遇到负边就不能保证正确。
二分答案的前提是
check()函数具有单调性。线性筛能够保证每个合数只被它的最小质因子筛去一次,因此时间复杂度为 (O(n))。
归并排序既是稳定排序,时间复杂度也是 (O(n\log n))。








