URAL – 2105 Alice and Bob are on Bikes 整体处理、相遇问题

ProLightsfx 2017-11-30 134 11/30

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

- THE END -

ProLightsfx

11月15日00:27

最后修改:2024年11月15日
0

非特殊说明,本博所有文章均为博主原创,未经许可不得转载。

共有 0 条评论