p?題解
By NTUCSIE 系學會學術部 陳家陞
重新解釋一下題目
遍歷所有點 回到起點的最短路
但是有一些限制
符合限制的最佳解
距離的算法也不太一樣
1
5
13
25
1
3
5
7
1
1
1
1
2
1
0
0
1
2
3
dist(2^1,3)
最直觀的做法
跑過所有可能的排列
用「表格法」算出每種距離
1
5
13
1
3
5
1
1
1
1
z
c
1
y
b
1
x
a
...
然後挑最近的那一條
時間複雜度是……
(n-1)!
×
n^2
×
n^k × n × n
排列數
×
檢查
×
路線距離
(
19
-1)! ×
19
^2 ×
19
^(
1e6+7
) ×
19
×
19
代入 n =
19
, k =
1e6+7
大概是 3 × 10^1278783
假設電腦 10^8指令 /sec
就只要跑
3×10^1278775秒而己哦
好方法
拆成兩個部份
有相依關係的
旅行銷售員
問題
德拉努瓦
(Delannoy)數
旅行銷售員
With 相依關係
動態規劃解法
目標:
(n-1)!
to
2^(n-1)
6e15
v.s.
262144
狀態
dp[
x
][
S
]
從
x
開始
經過
S
中所有的元素
到起點的最短距離
轉移式
dp[
x
][
S
]
= min(dist(
x
,
i
) + dp[
i
][
S
-{
x
}])
for all
i
in
S
-{
x
}
德拉努瓦
數 加上 初等數論
Delannoy = (0,0)->(n,m) 路徑數
把↗看成是→↑的變種
假設一個造型有
i
組→↑
那變種的數量就是
2^i
經過一番理解
可以知道總路徑數為
但是
當M = 19^(1e6+7)
怎麼找組合數?
遙遠的數學
用一般的乘法來理解
有餘數的乘法
二項式
怎麼求模的乘法反元素?
費馬小定理
費馬小定理
原式變成
回到這張圖
大功告成
總結做法
先對距離建表
德拉努瓦數
+
費馬小定理
再用建出來的距離
做
2^n
個狀態的
DP
Made with Slides.com