hdu6071 最短路 解不等式 2017多校4

2022-08-15 14:54:22 字數 807 閱讀 9304

求出所有,從2走到x所需的花費在對 t = 2*min(d1,2, d2,3) 模運算下,  所有剩餘系的最短路即可(把乙個點拆成 t 個點, 每個點代表一種剩餘系), 知道了所有剩餘系就可以湊出答案。

dis[ 2 ][ 0 ] 到 dis[ 2 ][ t - 1 ] 代表的即為對 t 取模的所有剩餘系的最短路 。

假設任意路線走回 2 點的話費是 k0  , 那麼必定存在一種 k0+ t 花費(在min(d1,2, d2,3) 來回跑一次)的方案, 那麼就是用最短路解不等式了,有點線性規劃的感覺。

/*

hdu6071[最短路+同餘優化] 2017多校4

*/#include

using

namespace

std;

typedef

long

long

ll;typedef pair

int>p;

int g[5][5

];int

t, n, a, b, c, d;

ll cnt = 0

;ll t, k, dis[

5][60005

];void

init() priority_queue

, greater>pq;

void dij(int

u) }

}}void

solve()

else

}printf(

"%lld\n

", ans);

}int

main()

HDU 6071(同餘最短路)

給你四個點,相鄰兩個點之間有一條連邊。現在問你從 2 號點走到 2 號點的至少為 k 的最短路的長度。因為題目中的 k 比較大,因此一些亂搞的演算法顯然無法通過,而鑑於點數相對來說比較少,因此我們得研究一下這幾個點所蘊涵的性質。我們發現,對於 2 號結點,它有兩條可行的邊,我們設這兩條邊的距離分別為...

不等式解集怎麼取 不等式的解集怎麼求

不等式的解集怎麼求2019 09 21 10 28 28文 宋則賢 求不等式的解集可以先把各個不等式的解集表示在數軸上,觀察公共部分。然後去括號,移項,合併同類項,係數化為一時要注意到底是除以了乙個正數還是負數。一.步驟 去分母 注意乘以乙個正數的公分母,這樣就不變號 去括號,移項,合併同類項,係數...

穿線法解多次不等式

我們先來看這個不等式 x 1 x 1 0 這是在初中階段,我們就已經學習過的一元二次不等式。解這個不等式也非常簡單 畫圖。而解多次不等式也運用了類似的思想。例題 解不等式 x 3 x 1 x 2 0 對於本題,我們可以先令 y x 3 x 1 x 2 再畫出其影象進行求解。在直線 x 0 上方的部分...