uva 11722 - Joining with Friend(概率)

942 篇文章 2 订阅
202 篇文章 0 订阅

题目连接:uva 11722 - Joining with Friend

题目大意:你和朋友乘火车,并且都会路过A市,给定两人可能到达A市的时段,火车会停w,问说两人可以见面的概率。

解题思路:y = x + w 和y = x - w在给定时间内围成的面积除以时间的总面积,就是求面积的时候要分情况处理。

#include <cstdio>
#include <cstring>
#include <algorithm>

using namespace std;
int t1, t2, s1, s2, w;
double sum;

double solve (int k) {

    double ret = 0;

    if (s2 > t2 + k && s1 > t1 + k) {

        double r = max(t2 + k - s1, 0);
        ret = sum - r * r / 2; 
    } else if (s2 > t2 + k) {

        double r = 2 * s2 - t1 - t2 - 2 * k;
        ret = r * (t2 - t1) / 2;
    } else if (s1 > t1 + k) {

        double r = s2 + s1 - 2 * k - 2 * t1;
        ret = r * (s2 - s1) / 2;
    } else {

        double r = max(s2 - k - t1, 0);
        ret = r * r / 2;
    }

    if (k < 0)
        ret = sum - ret;
    return ret;
}

int main () {
    int cas;
    scanf("%d", &cas);
    for (int kcas = 1; kcas <= cas; kcas++) {
        scanf("%d%d%d%d%d", &t1, &t2, &s1, &s2, &w);

        sum = 1.0 * (t2 - t1) * (s2 - s1);
        double ans = solve(w) + solve(-w);
        printf("Case #%d: %.8lf\n", kcas, 1 - ans / sum);
    }
    return 0;
}
Collectors.joining() 是Java 8中的一个流收集器方法,用于将流中的元素拼接成一个字符串。该方法可以接受可选的前缀和后缀,并可以指定拼接字符串的分隔符。\[1\]通过使用Collectors.joining()方法,可以更优雅地连接字符串,实现函数式编程的方式。\[3\]例如,可以将一个字符串列表转换为逗号拼接的字符串,或者将其拼接成形如\[x, y, z\]或x | y | z的形式。\[3\]可以根据需要自由配置分隔符、前缀和后缀字符串。\[3\] #### 引用[.reference_title] - *1* [Collectors.joining()](https://blog.csdn.net/L_fly_J/article/details/120097000)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [03、Java 8 - Collectors.joining() 详解](https://blog.csdn.net/qq_33291299/article/details/128550458)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [Java8中字符串连接(join)收集器 Collectors.joining](https://blog.csdn.net/CharlesYooSky/article/details/114698837)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值