洛谷P3403 跳樓機

2022-05-16 06:46:20 字數 1033 閱讀 9328

srwudi 的家是一幢 h 層的摩天大樓。由於前來學習的蒟蒻越來越多,srwudi 改造了乙個跳樓機,使得訪客可以更方便的上樓。

經過改造,srwudi 的跳樓機可以採用以下四種方式移動:

向上移動 x 層;

向上移動 y 層;

向上移動 z 層;

回到第一層。

乙個月黑風高的大中午,djl 來到了 srwudi 的家,現在他在 srwudi 家的第一層,碰巧跳樓機也在第一層。djl 想知道,他可以乘坐跳樓機前往的樓層數。

第一行乙個整數 h,表示摩天大樓的層數。

第二行三個正整數,分別表示題目中的 x, y, z。

一行乙個整數,表示 djl 可以到達的樓層數。

154 7 9

\(h\le 2^-1,x,y,z\le 10^5\)

不妨只考慮第二和第三兩種操作,設 \(f_i\) 表示僅用二三操作能夠到達的 \(\bmod x=1\) 的最小樓層。那麼我們可以利用 \(f_i\) 將屬於 \(x\) 剩餘系的樓層到達。至於怎麼求,我們有乙個顯然的dp:

\[f_=f_i+y\\f_=f_i+z

\]但範圍太大。我們可以把這個轉化成最短路就能保證複雜度了。

#include #include #include #include #define n 100002

#define m 1000002

#define int long long

using namespace std;

int head[n],ver[m*2],nxt[m*2],edge[m*2],l;

int n,x,y,z,i,dis[n];

void insert(int x,int y,int z)

void dijkstra()

} }}signed main()

for(i=0;idijkstra();

int ans=0;

for(i=0;iprintf("%lld\n",ans);

return 0;

}

洛谷P3403 跳樓機

題目傳送門 套路題,同餘最短路。先只考慮y z進行連邊,再在mod x的意義下進行計算。這裡的 距離 dis i 指的是,在所有滿足a mod x i的a裡,能到達的最小的a是多少。顯然只要能到達dis i 每次加x即可到達dis i 上面所有mod x i的樓層。最後根據計算出來的dis來統計答案...

洛谷P3403 跳樓機(最短路)

題目背景djl為了避免成為乙隻鹹魚,來找srwudi學習壓 的技巧。題目描述srwudi的家是一幢h層的摩天大樓。由於前來學習的蒟蒻越來越多,srwudi改造了乙個跳樓機,使得訪客可以更方便的上樓。經過改造,srwudi的跳樓機可以採用以下四種方式移動 向上移動x層 向上移動y層 向上移動z層 回到...

P3403 跳樓機 同餘最短路

傳送門 題意 思路 轉換一下題目就是用若干x,y zx,y,z x,y,z能湊出來多少個 h h h 的數。先考慮兩個數y,z y,zy,z的情況,我們如果能求出來這兩個數能湊出來的數設為sum sumsu m,讓後sum kx h sum kx h sum kx h 求出來有多少個k即可。然鵝直接...