这是一个好东西->作者主页
T1 开车旅行
题目大意:有两个人,他们去旅行,轮流开车。两个人都有不同的喜好,第一个人喜欢开到东边第二近的城市,第二个人喜欢开到第一个。需要回答两个问题:1. 给定行驶路程,求从哪里开始,两个人的路程比最小;2. 给定行驶路程和开始城市,求路程比。
思路:
- 预处理出每个城市第一、二近的城市,然后暴力跑一遍第一问,再暴力跑第二问。
时间复杂度: O ( n 2 ) O(n^2) O(n2) - 通过排序+链表,将预处理降到
O
(
n
l
o
g
n
)
O(nlogn)
O(nlogn),然后倍增跑第一问和第二问。
时间复杂度: O ( n l o g n ) O(nlogn) O(nlogn)
T2 同余方程
题目:求
a
x
≡
1
(
m
o
d
ax≡1 (mod
ax≡1(mod
b
)
b)
b)的
x
x
x的最小正整数解,保证一定有解。
思路:
a
x
≡
1
(
m
o
d
ax≡1 (mod
ax≡1(mod
b
)
b)
b)
a
x
≡
b
y
+
1
ax≡by+1
ax≡by+1
a
x
−
b
y
=
1
ax-by=1
ax−by=1
当
y
y
y为负数时,
a
x
+
b
y
=
1
ax+by=1
ax+by=1
又因为
a
a
a
m
o
d
mod
mod
b
=
1
b=1
b=1
所以
g
c
d
(
a
,
b
)
=
1
gcd(a,b)=1
gcd(a,b)=1
所以
a
x
+
b
y
=
g
c
d
(
a
,
b
)
ax+by=gcd(a,b)
ax+by=gcd(a,b)
详见
扩
展
欧
几
里
得
算
法
扩展欧几里得算法
扩展欧几里得算法
T3 借教室
题目大意:给你
n
n
n个数,每次选一个区间减掉同一个数,求是否会出现负数。如果会,输出
−
1
-1
−1和出现负数的时间;如果不会,输出
0
0
0。
思路:
- 线段树模板,维护区间最小值,注意 卡常
- 差分+二分
T4 疫情控制
题目大意:给你一棵树,有些节点有军队,现在要让军队看管所有叶节点(根节点无法到达),但不能在根节点停留。求最少时间。
思路:
二分+倍增+贪心
完成情况
- T1
- T2
- T3
- T4