URAL - 2105
F - Alice and Bob are on Bikes 整体处理、相遇问题
My Solution
题意:ab从同一个位置开始相向的沿着一个圈跑,ab各自会停下来一段时间,问0~t这个过程中他们总共相遇多少次。
整体处理、相遇问题
写了很久模拟发现可以一次性处理,中间过程可以相互抵消掉很多东西,写了模拟就懂,Y ^_^ Y。
只要找出 a总运动路程长度,b总运动路程长度,ans = (a + b) / l;
复杂度 O(n)
#include
#include
#include
using namespace std;
typedef long long LL;
const int maxn = 1e6 + 8;
int main()
{
#ifdef LOCAL
freopen("f.txt", "r", stdin);
//freopen("f.out", "w", stdout);
int T = 4;
while(T--){
#endif // LOCAL
ios::sync_with_stdio(false); cin.tie(0);
LL l, t, va, vb, n, pi, ti, di, ans = 0, a = 0, b = 0, rt = 0, dt;
cin >> l >> t >> va >> vb;
cin >> n;
for(int i = 0; i < n; i++){ cin >> pi >> ti >> di;
dt = ti - rt;
a += va * dt;
b += vb * dt;
if(pi == 1) {b += vb * di;}
else { a += va * di;}
rt = ti + di;
}
dt = t - rt;
a += va * dt;
b += vb * dt;
cout << (a+b) / l << endl;
#ifdef LOCAL
cout << endl;
}
#endif // LOCAL
return 0;
}
非特殊说明,本博所有文章均为博主原创,未经许可不得转载。
https://www.prolightsfxjh.com/
Thank you!
------from ProLightsfx
非特殊说明,本博所有文章均为博主原创,未经许可不得转载。
如经许可后转载,请注明出处:https://prolightsfxjh.com/article/ural-2105-alice-and-bob-are-on-bikes/
共有 0 条评论