题目链接:http://codeforces.com/problemset/problem/148/B点击打开链接
主要在于如何处理龙追公主那段路程
我们把每次龙追上公主设为一次计算的节点
那么在计算龙从洞穴出发到追上公主这段 位置就加了
dis+=dis/(vd/vp-1);
然后用循环判断是否到c即可
#include <bits/stdc++.h>
using namespace std;
int main()
{
double vp,vd,f,t,c;
int ans=0;
cin >> vp >> vd >> t >> f >> c;
double dis=t*vp;
dis+=dis/(vd/vp-1);
if(vd<=vp)
{
cout<<"0"<<endl;
return 0;
}
while(dis<c)
{
ans++;
dis+=dis/vd*vp;
dis+=f*vp;
dis+=dis/(vd/vp-1);
}
cout << ans << endl;
}