1 条题解

  • 0
    @ 2025-8-24 22:57:50

    自动搬运

    查看原文

    来自洛谷,原作者为

    avatar yitian_
    高估 T3 以至于打个深搜就睡觉去了/kel

    搬运于2025-08-24 22:57:50,当前版本为作者最后更新于2024-05-10 13:12:03,作者可能在搬运后再次修改,您可在原文处查看最新版

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

    以下是正文


    题目分析

    1. 试题 A:握手问题

      在一次 5050 个人的会议中大家进行了握手交流,其中有 77 个没有相互握手,我们需要求出这些人之间一共进行了多少次握手。

    2. 试题 B:小球反弹

      有一个小球在一个长方形内部左上角顶点开始运动,我们需要求出从小球出发到其第一次回到左上角顶点这段时间里,小球运动的路程为多少单位长度。

    思路

    1. 试题 A:握手问题

      5050 个人,其中 77 个人没有互相握手,所以其他的 4343 人都是与 4242 个人握了手。

      因为 AABB 握手的同时也意味着 BBAA 握手了,算作一次握手。所以要算这 4343 人的握手次数,相当于从 4343 人中选出 22 人进行组合。即 C432C_{43}^2

      需要注意的是,那 77 人不是没有跟任何人握手,而是 77 人之间没有握手,每个人都与其他的 4343 人握了手。所以这 77 人总共的握手次数为 7×43=3017 \times 43 = 301 次。

      所以答案为 $C_{43}^2 + 301 = \dfrac{43 \times 42}{2 \times 1} + 301 = 1204$ 次。

    2. 试题 B:小球反弹

      长方形的长 xx343720343720,宽 yy233333233333。小球分解到长宽两个方向上的速率之比为 dx:dy=15:17dx : dy = 15 : 17

      因为水平方向来回的路程为 2x2x,竖直方向为 2y2y

      所以小球在左上角时,水平走了 2x×k12x \times k_1 个单位长度,竖直走了 2y×k22y \times k_2 个单位长度。假设小球运动回左上角的时间为 aa

      由题得 a×dxa \times dx00 除以 2x2x 的余数相同,a×dya \times dy00 除以 2y2y 的余数相同。

      也就是说 $\begin{cases} a \times dx = k_1 \times 2x\\ a \times dy = k_2 \times 2y \end{cases}$

      并且 k1,k2k_1,k_2 都是整数。

      $\therefore a = \dfrac{k_1 \times 2x}{dx} = \dfrac{k_2 \times 2y}{dy}$

      $\therefore \dfrac{k_1 \times 2x}{dx} \times dx \times dy = \dfrac{k_2 \times 2y}{dy} \times dx \times dy $

      $\therefore k_1 \times 2x \times dy = k_2 \times 2y \times dx$

      $\therefore\dfrac{k_1}{k_2} = \dfrac{2y \times dx}{2x \times dy}$

      $\therefore\dfrac{k_1}{k_2} = \dfrac{y \times dx}{x \times dy}$

      k1k2=15y17x\therefore\dfrac{k_1}{k_2} = \dfrac{15y}{17x}

      k1,k2k_1,k_2 最小时 2x×k12x \times k_12y×k22y \times k_2 分别为出发后第一次回到左上角时水平方向和竖直方向走的路程。

      此时求出 15y15y17x17x 的最大公因数 bb33053305。然后 15y15y17x17x 分别除以 bb,就能得到 $k_1 = \dfrac{15y}{b}=\dfrac{15y}{3305}=1059,k_2=\dfrac{17x}{b}=\dfrac{17x}{3305}=1768$。

      k1=1059,k2=1768k_1 = 1059,k_2=1768 代入 $a =\dfrac{k_1 \times 2x}{dx} = \dfrac{k_2 \times 2y}{dy}$,得出 $a\times dx=7.27998960 \times 10^8,a \times dy = 8.25065488 \times 10^8$。

      那么就能算出总路程为 $\sqrt{(a \times dx)^2 + (a \times dy)^2}=1.10032519977 \times 10^9$。

    C++ 代码实现

    #include<bits/stdc++.h>
    using namespace std;
    
    int main() 
    {
        string ans [] = 
        {
            "1204",
            "1100325199.77", 
        };
        char T;
        cin >> T;
        cout << ans[T - 'A'] << endl;
        return 0;
    }
    
    • 1

    信息

    ID
    10209
    时间
    1000ms
    内存
    512MiB
    难度
    2
    标签
    递交数
    0
    已通过
    0
    上传者