社区讨论

......

B4351[信息与未来 2025] 成语接龙参与者 5已保存回复 4

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
4 条
当前快照
1 份
快照标识符
@mhphu306
此快照首次捕获于
2025/11/08 07:35
3 个月前
此快照最后确认于
2025/11/09 02:26
3 个月前
查看原帖
0分怎么办
CPP
#include <iostream>
#include <algorithm>
using namespace std;

// 计算最大公约数
long long gcd(long long a, long long b) {
    return b == 0 ? a : gcd(b, a % b);
}

int main() {
    long long l, v1, v2, t;
    cin >> l >> v1 >> v2 >> t;
    
    // 确保v1 <= v2
    if (v1 > v2) swap(v1, v2);
    
    // 如果v1为0,只计算v2的相遇次数
    if (v1 == 0) {
        cout << (v2 * t + l) / (l * 2) << endl;
        return 0;
    }
    
    // 计算相向和同向相遇次数之和
    long long ans = ((v1 + v2) * t + l) / (l * 2) + ((v2 - v1) * t + l) / (l * 2);
    
    // 计算最大公约数
    long long GCD = gcd(v1, v2);
    
    // 如果奇偶性不同,减去端点相遇次数
    if (((v1 / GCD) & 1) != ((v2 / GCD) & 1)) {
        ans -= (GCD * t + l) / (l * 2);
    }
    
    cout << ans << endl;
    return 0;
}

回复

4 条回复,欢迎继续交流。

正在加载回复...