蓝桥杯省赛真题C++B组2024-握手问题

ops/2025/3/14 20:24:52/

一、题目

【问题描述】

  小蓝组织了一场算法交流会议,总共有 50 人参加了本次会议。在会议上,大家进行了握手交流。按照惯例他们每个人都要与除自己以外的其他所有人进行一次握手(且仅有一次)。但有 7 个人,这 7 人彼此之间没有进行握手(但这 7 人与除这 7 人以外的所有人进行了握手)。请问这些人之间一共进行了多少次握手?
注意 A 和 B 握手的同时也意味着 B 和 A 握手了,所以算作是一次握手。              

二、思路

方法一:

        对于这种题,我一般是来找规律,我们从最简单的开始,有2个人的话,我们需要握手1次,3个人我们需要握手3次,四个人需要握手6次,5个人需要握手10次,6个人需要15次

人数握手次数
21
33=2+1
46=3+2+1
510=4+3+2+1
615=5+4+3+2+1

        我们不难找到一些规律,握手次数是  人数-1 开始向下逐个相加到1,3个人就是3-1向下开始相加(2+1)

        但是题中说7个人是不相互握手的,我们假设3个人不握手,看上面的表,3个人将不握手3次(2+1),7个人将不握手6+5+4+3+2+1=21次

        50个人握手49+48+47+...+2+1=1225次

        又7个人不握手,1225-7=1204次

方法二:(代码)

三、代码

#include<iostream>
using namespace std;
int main(){
//	总握手次数计算:如果没有任何限制,50人两两握手的次数为组合数C(50, 2)。
//排除7人之间的握手次数:这7人之间没有握手,因此需要从总次数中减去C(7, 2)。int  total = 50;int subtract = 7;int  total_hands = total * (total - 1)/2;int subtract_hands = subtract * (subtract - 1)/2;cout<< total_hands-subtract_hands << endl;return 0;
} 

四、反思

组合

  • 每次握手是 无序的(A 和 B 握手与 B 和 A 握手是同一件事)。

  • 组合数 C(n,2) 正是用来计算 无序且不重复的两两配对 的数量,

排列数 A(n, m) 与组合数 C(n, m) 的求法_排列组合-CSDN博客


http://www.ppmy.cn/ops/165758.html

相关文章

Uniapp当中的scroll-view滚动条不出现或者触底刷新事件不触发

一、未正确设置容器高度 问题描述 scroll-view 未设置明确高度或高度值无效&#xff0c;导致无法形成有效滚动区域。 解决方案 • 使用行内样式直接设置 height&#xff08;如 style"height: 500rpx;"&#xff09;&#xff0c;避免类名样式被覆盖。 • 动态计算高度…

计算机视觉算法实战——手势识别(主页有源码)

✨个人主页欢迎您的访问 ✨期待您的三连 ✨ ✨个人主页欢迎您的访问 ✨期待您的三连 ✨ ✨个人主页欢迎您的访问 ✨期待您的三连✨ ​ ​​​ 1. 领域简介&#xff1a;手势识别的价值与挑战 手势识别是连接人类自然行为与数字世界的核心交互技术&#xff0c;在智能设备控制、…

代码随想录 DP day2

746. 使用最小花费爬楼梯 - 力扣&#xff08;LeetCode&#xff09; 思路&#xff1a;递推公式和爬楼梯类似&#xff0c;都是思考第i层由什么得来的呢&#xff1f;即i-1和i-2加上对应的cost。 class Solution { public:int minCostClimbingStairs(vector<int>& cost…

科技创新:改变生活的力量与未来趋势

人工智能在智能客服中的应用越来越普遍。它改变了传统的客服模式。AI可以快速回答用户的问题&#xff0c;提高了客服效率和服务质量。 首先&#xff0c;人工智能能够处理大量信息。智能客服可以在几秒钟内回应客户的请求。这比人工客服快得多。客户不需要等待很久就能得到答案…

Visual Studio关闭警告

Visual Studio关闭警告信息 下面的例子基于VS2019, 其他版本类似。 新建项目之后&#xff0c;在里面写一些会产生警告的代码&#xff0c;如&#xff1a; char c 666; 编译器会警告&#xff1a; 除了警告&#xff0c;运行结果也会有问题。可以考虑把警告信息关掉&#xff1a; …

详细解析 ListView_GetEditControl()

书籍&#xff1a;《Visual C 2017从入门到精通》的2.3.8 Win32控件编程 环境&#xff1a;visual studio 2022 内容&#xff1a;【例2.28】支持主项可编辑的列表视图控件 说明&#xff1a;以下内容大部分来自腾讯元宝。 ​函数原型 HWND ListView_GetEditControl(HWND hwndL…

git使用命令总结

文章目录 Git 复制创建提交步骤Git 全局设置:创建 git 仓库:已有仓库? 遇到问题解决办法&#xff1a;问题一先git pull一下&#xff0c;具体流程为以下几步&#xff1a; 详细步骤 Git 复制 git clone -b RobotModelSetting/develop https://gitlab.123/PROJECT/123.git创建提…

llamaindex实现企业级RAG应用(一)

在上一篇文章中使用Qwen2进行RAG代码实践&#xff0c;手动实现了一版简易的RAG应用&#xff0c;在实际工作中通常都用会使用langchain或llamaindex架构来搭建rag应用&#xff0c;并且会非常复杂。 RAG是个很神奇的应用&#xff0c;可以很简单&#xff0c;也可以很复杂。在llam…