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即可。然鵝直接...