思路:直接按同餘最短路的方式建最短路找出最小剩餘系;
然後找出滿足條件的餘數進行操作即可
1 #include2view code#define ll long long
3#define inf 0x3f3f3f3f
4#define n 1000010
5using
namespace
std;
6ll first[n],nxt[n],go[n],cost[n],tot;
7ll dist[n],vis[n],h,x,y,z,ans;
8void
add_edge(ll u,ll v,ll w)
14void
spfa()
1532}33
}34}35
}36intmain()
37//
可以直接到任何樓層
40for(int i=0;i<=x-1;i++)
44spfa();
45for(int i=0;i<=x-1;i++)55}
56}57}
58}59return0;
60 }
同餘最短路小記
前幾天 mns 的時候遇到被卡科技了,然後墊底了 雖說是個極其簡單的東西,但是出於學乙個演算法必須要寫學習筆記的強迫症,還是寫幾行字吧。考慮問題 給定正整數 a 有哪些非負整數能被 a 由非負整數權線性表出。n 2 exgcd?完全揹包?我們發現若 x 可以,則 x ka 1 k in n 也可以。...
演算法模版 同餘最短路
當我們解決形如 sum n a ix i k 的時候,我們可以使用同餘最短路來解決。我們選擇乙個最小的 a i 作為base,然後把其他的 a 表示成 base p left 的形式。我們定義 f i 代表湊出 bmod base 餘 i 的數最小需要多少個 base 而乙個數 p 能被湊出當且僅當...
HDU 6071(同餘最短路)
給你四個點,相鄰兩個點之間有一條連邊。現在問你從 2 號點走到 2 號點的至少為 k 的最短路的長度。因為題目中的 k 比較大,因此一些亂搞的演算法顯然無法通過,而鑑於點數相對來說比較少,因此我們得研究一下這幾個點所蘊涵的性質。我們發現,對於 2 號結點,它有兩條可行的邊,我們設這兩條邊的距離分別為...