cf18B Platforms (贪心策略_好题)
题意:给出n快板,间隔一定长度(已知),且每块板的长度相等(已知),一个青蛙从原点0起跳,每次跳d距离远,问最后青蛙会落在哪里(没落在板子上就结束跳跃)....
贪心策略,我是这么认为的,从小到大枚举板子的长度,然后每次先判断,如果青蛙落在板子前面,那么一定已经落水了,如果没有,使青蛙每次都落在当前板子的后面...
Description
In one one-dimensional world there are n platforms. Platform with index k (platforms are numbered from 1) is a segment with coordinates [(k - 1)m, (k - 1)m + l], and l < m. Grasshopper Bob starts to jump along the platforms from point 0, with each jump he moves exactly d units right. Find out the coordinate of the point, where Bob will fall down. The grasshopper falls down, if he finds himself not on the platform, but if he finds himself on the edge of the platform, he doesn't fall down.
Input
The first input line contains 4 integer numbers n, d, m, l (1 ≤ n, d, m, l ≤ 106, l < m) — respectively: amount of platforms, length of the grasshopper Bob's jump, and numbers m and l needed to find coordinates of the k-th platform: [(k - 1)m, (k - 1)m + l].
Output
Output the coordinates of the point, where the grosshopper will fall down. Don't forget that if Bob finds himself on the platform edge, he doesn't fall down.
Sample Input
Input2 2 5 3Output
4Input
5 4 11 8Output
20
#include
using namespace std;
int main()
{long long n,d,m,l,ans,i;cin>>n>>d>>m>>l;ans=0;for(i=1;i<=n;i++) {if(ans<((i-1)*m)) break;while(ans<=(i-1)*m+l) ans=(((i-1)*m+l)/d)*d+d;}cout<
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
