1 条题解

  • 0
    @ 2025-8-24 22:30:27

    自动搬运

    查看原文

    来自洛谷,原作者为

    avatar phigy
    互关,私信。 What is mind?No matter.What is matter?Never mind.

    搬运于2025-08-24 22:30:27,当前版本为作者最后更新于2021-04-07 15:31:40,作者可能在搬运后再次修改,您可在原文处查看最新版

    自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多

    以下是正文


    给定区间 [a,b][a,b][c,d][c,d] ,求从其中各等概率选择一个整数,和等于 ee 的概率。

    输出答案乘 (ba+1)(dc+1)(b-a+1)(d-c+1) 的结果 。

    (ba+1)(dc+1)(b-a+1)(d-c+1) 就是从 [a,b][a,b][c,d][c,d] 各取一个整数的方案数 。

    所以就是求 [a,b][a,b][c,d][c,d] 从中各取一个整数,和等于 ee 的方案数 。

    就是求 [a,b][a,b] 中有几个整数 xx 满足 cexdc\leq e-x\leq d

    exe-x 也是整数,而其范围为 [eb,ea][e-b,e-a]

    只需要求出 [eb,ea][e-b,e-a][c,d][c,d] 交集中整数个数 。

    其交集就是 [max(eb,c),min(ea,c)][max(e-b,c),min(e-a,c)]

    那么答案就是 min(ea,c)max(eb,c)+1min(e-a,c)-max(e-b,c)+1

    但是答案不可能小于 00 ,需要特判 。

    #include <iostream>
    
    using namespace std;
    
    int t;
    long long a,b,c,d,e;
    
    int main()
    {
        int i,j,k;
        cin>>t;
        while(t--)
        {
            cin>>a>>b>>c>>d>>e;
            cout<<max(min(e-a,d)-max(e-b,c)+1,(long long)0)<<endl;
        }
        return 0;
    }
    
    • 1

    信息

    ID
    6325
    时间
    1000ms
    内存
    128MiB
    难度
    1
    标签
    (无)
    递交数
    0
    已通过
    0
    上传者