蓝桥杯 2024 国 B【选数概率】(AC)

server/2024/12/22 13:36:18/

题目描述

一个数组中有 a a a 1 1 1 b b b 2 2 2 c c c 3 3 3。设 P i , j P_{i,j} Pi,j 表示在数组中随机选取两个数,其中一个数为 i i i,另一个数为 j j j 的概率。比如 P 1 , 2 = a b C ( a + b + c , 2 ) P_{1,2} = \dfrac{ab}{C(a+b+c,2)} P1,2=C(a+b+c,2)ab,其中 C ( N , M ) C(N, M) C(N,M) 为组合数,表示从 N N N 个不同元素中任取 M M M 个的方案数。

a = ? , b = ? , c = ? a=\text{?},b=\text{?},c=\text{?} a=?,b=?,c=? 时,满足 P 1 , 2 = 517 2091 , P 2 , 3 = 2632 10455 , P 1 , 3 = 308 2091 P_{1,2}=\dfrac{517}{2091},P_{2,3}=\dfrac{2632}{10455},P_{1,3}=\dfrac{308}{2091} P1,2=2091517,P2,3=104552632,P1,3=2091308,且 a + b + c a + b + c a+b+c 最小。保证 a + b + c a + b + c a+b+c 最小的解是唯一的。

你需要提交一个格式为 a , b , c a,b,c a,b,c 的字符串。例如假设你计算的结果是 a = 12 , b = 34 , c = 56 a =12, b = 34, c = 56 a=12,b=34,c=56,那么你需要提交的字符串是 12,34,56

输入格式

这是一道结果填空题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。

输出格式

这是一道结果填空题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。

解题思路

已知 P 1 , 2 = a b C ( a + b + c , 2 ) P_{1,2} = \dfrac {ab}{C(a + b + c, 2)} P1,2=C(a+b+c,2)ab,那么 P 1 , 3 = a c C ( a + b + c , 2 ) P_{1,3} = \dfrac {ac}{C(a + b + c, 2)} P1,3=C(a+b+c,2)ac P 2 , 3 = b c C ( a + b + c , 2 ) P_{2,3} = \dfrac {bc}{C(a + b + c, 2)} P2,3=C(a+b+c,2)bc

我们知道 C n m = n ! m ! ⋅ ( n − m ) ! C_n^m = \dfrac {n!}{m! \cdot (n-m)!} Cnm=m!(nm)!n!,那么 C n 2 = n ! 2 ! ⋅ ( n − 2 ) ! = n × ( n − 1 ) 2 C_n^2=\dfrac {n!}{2! \cdot (n-2)!}=\dfrac{n \times (n - 1)}{2} Cn2=2!(n2)!n!=2n×(n1)

那么接下来,我们只需要去枚举 a , b , c a, b, c a,b,c 即可得出答案。

AC_Code

#include <iostream>
#include <cstring>
#include <algorithm>
#include <cstdio>using namespace std;int calc(int x)
{return x * (x - 1) / 2;
}bool equal(int x1, int y1, int x2, int y2)
{int t = x1 / x2;if (x1 % x2)return false;return t * y2 == y1;
}int main()
{for (int i = 1; i <= 200; ++ i )for (int j = 1; j <= 200; ++ j )for (int k = 1; k <= 200; ++ k )if (equal(i * j, calc(i + j + k), 517, 2091))if (equal(j * k, calc(i + j + k), 2632, 10455))if (equal(i * k, calc(i + j + k), 308, 2091))cout << i << ',' << j << ',' << k << endl;return 0;
}

http://www.ppmy.cn/server/152242.html

相关文章

使用JUnit进行集成测试

在软件开发中&#xff0c;集成测试是一个非常重要的环节。 它可以确保不同模块之间的协作正确性&#xff0c;同时也可以发现系统的潜在问题。 JUnit是一个流行的Java测试框架&#xff0c;它可以帮助我们编写和运行各种类型的测试&#xff0c;包括单元测试和集成测试。 本文将…

如何高效调试复杂布局?Layout Inspector 的 Toggle Deep Inspect 完全解析

Layout Inspector 是 Android Studio 提供的一个强大工具&#xff0c;用于分析和调试 Android 应用的 UI 布局。前置条件是app是debug调试状态&#xff0c;它允许你在应用运行时实时查看布局层次结构、UI 元素的属性&#xff0c;并帮助你诊断 UI 渲染问题。 Toggle Deep Inspe…

Hadoop HA高可用搭建

Hadoop HA高可用搭建 原理说明 这个步骤不用做&#xff0c;目前大数据虚拟机已经配置好了&#xff01; echo DNS18.8.8.8 >> /etc/sysconfig/network-scripts/ifcfg-ens33 systemctl restart networkping www.baidu.com安装软件 node1/node2/node3&#xff1a; yum …

论文解读之Chain-of-Thought Prompting Elicits Reasoning in Large Language Models(CoT)

最近以及本篇博客将记录博主最近接触的提升LLM的较新方法&#xff0c;总结其核心以备面试及其他场景回顾时所需。 一、简介 CoT的核心在于在prompt中使得模型将较大的问题输入拆解逐步的思维链的输出方案&#xff0c;属于prompt中的技巧&#xff0c;可以提升LLM在复杂问题上的…

python subplot函数应用 - 创建多个子图

subplot语法&#xff1a; plt.subplot 是 Matplotlib 库中的一个非常有用的函数&#xff0c;用于在一个图形窗口中创建多个子图 plt.subplot 函数用于在当前图形窗口中创建并激活一个子图。其基本语法如下&#xff1a; plt.subplot(nrows, ncols, index) 参数详解&#xff…

数据仓库有哪些?

数据仓库有多种类型&#xff0c;每种类型都有其特定的应用场景和优势。以下是一些常见的数据仓库类型&#xff1a; 企业数据仓库&#xff08;EDW&#xff09;&#xff1a; 是最为关键的数据仓库类型&#xff0c;提供一个集中的存储库&#xff0c;集成来自不同来源的数据&#x…

MicroPython+ESP32:五.PC远程控制LED灯

1. 整体思路 2. 代码 # 整体流程 # 1. 链接wifi # 2. 启动网络功能&#xff08;UDP&#xff09; # 3. 接收网络数据 # 4. 处理接收的数据import socket import time import network import machinedef do_connect():wlan network.WLAN(network.STA_IF)wlan.active(True)if no…