从前往后扫描,如果当前的这个可以作为一条危险的道路的第三个,则把这个点关闭。
那为什么这是对的呢?
首先这样肯定就不会存在危险道路了,那么关闭的个数是多少呢?
如果所有被选中的点表示为集合
S
1
S_1
S1,那么每一个点肯定有前面一个点指向他们,指向他们的点记作
S
2
S_2
S2,同理指向
S
2
S_2
S2的集合
S
3
S_3
S3
由于每一个点的出度
≤
2
\leq2
≤2所以
∣
S
1
∣
≤
2
∗
∣
S
2
∣
,
∣
S
2
∣
≤
2
∗
∣
S
3
∣
,
|S_1|\leq2*|S_2|,|S2|\leq2*|S3|,
∣S1∣≤2∗∣S2∣,∣S2∣≤2∗∣S3∣,可以发现也就是
n
≥
∣
S
1
∣
+
∣
S
2
∣
+
∣
S
3
∣
≥
∣
S
1
∣
+
∣
S
1
∣
/
2
+
∣
S
1
∣
/
4
⇒
7
/
4
∣
S
1
∣
≤
n
⇒
∣
S
1
∣
≤
(
4
/
7
)
∗
n
n\geq |S_1|+|S_2|+|S_3|\geq |S_1|+|S_1|/2+|S_1|/4 \Rightarrow 7/4|S_1|\leq n \Rightarrow |S_1|\leq (4/7)*n
n≥∣S1∣+∣S2∣+∣S3∣≥∣S1∣+∣S1∣/2+∣S1∣/4⇒7/4∣S1∣≤n⇒∣S1∣≤(4/7)∗n
总结:
对于这一类题目,可以先假设做法,然后证明!