hdu 5417 Victor and Machine 思考题

题意:Victor有一个机器,这个机器每次开启的瞬间会弹出一个小球,之后每隔ww秒会弹出一个小球。因为机器不是很完善,该机器每开启xx秒就得关闭yy秒进行调整,在机器关闭的瞬间可能会有小球弹出,关闭之后一直到下一次开启之前都不会有小球弹出。
0时刻,机器第一次开启,Victor想要知道第nn个小球弹出的时刻,你能够告诉他吗?

推下公式就行了

//author: CHC
//First Edit Time: 2015-08-22 23:13
#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <set>
#include <vector>
#include <map>
#include <queue>
#include <set>
#include <algorithm>
#include <limits>
using namespace std;
typedef long long LL;
int x,y,w,n;
int main()
{
    while(~scanf("%d%d%d%d",&x,&y,&w,&n)){
        int t=x/w+1;
        int times;
        if(n%t==0){
            times=(x+y)*(n/t-1)+(t-1)*w;
        }
        else {
            times=(x+y)*(n/t)+(n%t-1)*w;
        }
        printf("%d\n",times);
    }
    return 0;
}

你可能感兴趣的:(YY)