1 条题解
-
0
自动搬运
来自洛谷,原作者为

yitian_
高估 T3 以至于打个深搜就睡觉去了/kel搬运于
2025-08-24 22:57:50,当前版本为作者最后更新于2024-05-10 13:12:03,作者可能在搬运后再次修改,您可在原文处查看最新版自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多
以下是正文
题目分析
-
试题 A:握手问题
在一次 个人的会议中大家进行了握手交流,其中有 个没有相互握手,我们需要求出这些人之间一共进行了多少次握手。
-
试题 B:小球反弹
有一个小球在一个长方形内部左上角顶点开始运动,我们需要求出从小球出发到其第一次回到左上角顶点这段时间里,小球运动的路程为多少单位长度。
思路
-
试题 A:握手问题
共 个人,其中 个人没有互相握手,所以其他的 人都是与 个人握了手。
因为 和 握手的同时也意味着 和 握手了,算作一次握手。所以要算这 人的握手次数,相当于从 人中选出 人进行组合。即 。
需要注意的是,那 人不是没有跟任何人握手,而是 人之间没有握手,每个人都与其他的 人握了手。所以这 人总共的握手次数为 次。
所以答案为 $C_{43}^2 + 301 = \dfrac{43 \times 42}{2 \times 1} + 301 = 1204$ 次。
-
试题 B:小球反弹
长方形的长 为 ,宽 为 。小球分解到长宽两个方向上的速率之比为 。
因为水平方向来回的路程为 ,竖直方向为 。
所以小球在左上角时,水平走了 个单位长度,竖直走了 个单位长度。假设小球运动回左上角的时间为 。
由题得 和 除以 的余数相同, 和 除以 的余数相同。
也就是说 $\begin{cases} a \times dx = k_1 \times 2x\\ a \times dy = k_2 \times 2y \end{cases}$
并且 都是整数。
$\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}$
当 最小时 和 分别为出发后第一次回到左上角时水平方向和竖直方向走的路程。
此时求出 和 的最大公因数 为 。然后 和 分别除以 ,就能得到 $k_1 = \dfrac{15y}{b}=\dfrac{15y}{3305}=1059,k_2=\dfrac{17x}{b}=\dfrac{17x}{3305}=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
- 上传者