題目傳送門
套路題,同餘最短路。
先只考慮y、z進行連邊,再在mod x的意義下進行計算。
這裡的「距離」dis[i]指的是,在所有滿足a mod x=i的a裡,能到達的最小的a是多少。
顯然只要能到達dis[i],每次加x即可到達dis[i]上面所有mod x=i的樓層。
最後根據計算出來的dis來統計答案。
統計到mod x=i的情況時,答案為(h-dis[i])/x+1。
其意義是,dis[i]到h的所有樓層,所有mod x=i的都可到達,即每x個就有乙個可到達。
這麼分析一波,這道題就很簡單了。
然而我寫dijkstra的時候,把小於號過載反了,wa聲一片......
1 #include2 #include3 #include4 #include5#define ll long long
6using
namespace
std;78
ll h,ans;
9int
x,y,z,ec;
10int hd[100005],nx[200005],to[200005
];11 ll dis[100005],len[200005
];12
bool v[100005
];13
14void edge(int af,int
at,ll el)
1521
22struct
data
2330
};31
32 priority_queueqq;
3334
void
dijkstra()
35);
39while(!qq.empty())
40);51}
52}53}
54}5556
intmain()
5764
dijkstra();
65for(int i=0;i)
66if(dis[i]<=h)
67 ans+=(h-dis[i])/x+1
;68 printf("
%lld
",ans);
69return0;
70 }
洛谷P3403 跳樓機
srwudi 的家是一幢 h 層的摩天大樓。由於前來學習的蒟蒻越來越多,srwudi 改造了乙個跳樓機,使得訪客可以更方便的上樓。經過改造,srwudi 的跳樓機可以採用以下四種方式移動 向上移動 x 層 向上移動 y 層 向上移動 z 層 回到第一層。乙個月黑風高的大中午,djl 來到了 srwu...
洛谷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即可。然鵝直接...