当前位置: 首页 > news >正文

week4-[循环结构]生日悖论-new

week4-[循环结构]生日悖论-new

题目背景

小明最近学习了生日悖论。生日悖论是说,在不少于23人的班级中,存在两个人在同一天生日的概率大于50%。小明感到这很有趣,于是他进一步考虑下面的问题。

题目描述

小红、小方和小明是好朋友,他们正好都在 2012 年 3 月出生。现在需要考虑他们三个人是否存在生日悖论的现象。

现在知道小红的生日日期为 aaabbb 之间一个数(包括 aaabbb),小方的生日日期为 cccddd 之间的一个数(包括 cccddd),小明的生日日期为 eeefff 之间的一个数(包括 eeefff)。

现在想知道,三个人中,有多少种情况满足至少有两个人在同一天生日呢?

输入格式

输入包括 333 行,每行包括 222 个整数,数字之间使用一个空格隔开。
第一行包含整数 a,ba,ba,b,表示小红的生日为 333aaa 日到 333bbb 日之间一个数;
第二行包含整数 c,dc,dc,d,表示小方的生日为 333ccc 日到 333ddd 日之间一个数;
第三行包含整数 e,fe,fe,f,表示小明的生日为 333eee 日到 333fff 日之间一个数。

输出格式

输出只有一行,该行只有1个整数,表示有多少种情况满足至少有两个人在同一天生日

样例 #1

样例输入 #1

3 4 
2 3 
4 5

样例输出 #1

4

样例 #2

样例输入 #2

1 5 
6 10 
11 15

样例输出 #2

0

样例 #3

样例输入 #3

1 28 
1 10 
11 20

样例输出 #3

200

样例 #4

样例输入 #4

3 5
3 9
1 10

样例输出 #4

66

提示

样例解释1

小红、小方和小明的生日日期全部可能性包括以下8种:

小红小方小明是否有两人生日相同
3 日2 日4 日
3 日2 日5 日
3 日3 日4 日
3 日3 日5 日
4 日2 日4 日
4 日2 日5 日
4 日3 日4 日
4 日3 日5 日

其中有 444 种情况满足至少有两个人在同一天生日

数据范围

对于所有数据,满足 a,b,c,d,e,fa,b,c,d,e,fa,b,c,d,e,f111313131 之间的一个整数,且满足 a≤ba\le babc≤dc\le dcde≤fe\le fef

这道题其实是一个枚举 + 计数的问题。因为日期范围最大是 31 天,三个人各自的生日区间最多长度 31,所以最多情况数为 313=2979131^3=29791313=29791,完全可以直接暴力枚举。


🔎 解题思路

  1. 输入三个人各自的生日范围:
    • 小红:a∼ba \sim ba∼b
    • 小方:c∼dc \sim dc∼d
    • 小明:e∼fe \sim fe∼f
  2. 枚举三重循环:
    • x 遍历 a∼ba \sim ba∼b(小红生日)
    • y 遍历 c∼dc \sim dc∼d(小方生日)
    • z 遍历 e∼fe \sim fe∼f(小明生日)
  3. 判断是否满足至少两个人生日相同
    • 条件为 (x == y) || (y == z) || (x == z)
    • 如果满足,就让计数器 cnt++
  4. 输出 cnt

📝 C++ 实现

#include <iostream>
using namespace std;int main() {int a, b, c, d, e, f;cin >> a >> b;cin >> c >> d;cin >> e >> f;int cnt = 0;for (int x = a; x <= b; x++) {for (int y = c; y <= d; y++) {for (int z = e; z <= f; z++) {if (x == y || y == z || x == z) {cnt++;}}}}cout << cnt << endl;return 0;
}
http://www.xdnf.cn/news/1354249.html

相关文章:

  • Dubbo vs Feign
  • Python 学习(十六) 下一代 Python 包管理工具:UV
  • More Effective C++ 条款04:非必要不提供默认构造函数
  • Day58 Java面向对象13 instanceof 和 类型转换
  • OCR、文档解析工具合集(下)
  • Text2API与Text2SQL深度对比:自然语言驱动的数据交互革命
  • 【51单片机】【protues仿真】基于51单片机冰箱系统
  • 嘉立创EDA快捷键汇总
  • 每日一题8.23
  • Windows应急响应一般思路(三)
  • 从词源和输出生成等角度详细解析PHP中常用文件操作类函数
  • BEVDet/BEVDet4D
  • 【40页PPT】数据安全动态数据脱敏解决方案(附下载方式)
  • LeetCode 分类刷题:2529. 正整数和负整数的最大计数
  • 【大语言模型 16】Transformer三种架构深度对比:选择最适合你的模型架构
  • XCVM1802-2MSEVSVA2197 XilinxAMD Versal Premium FPGA
  • flink常见问题之超出文件描述符限制
  • android studio配置 build
  • VS Code 中创建和开发 Spring Boot 项目
  • JWT实现Token登录验证
  • Nacos-11--Nacos热更新的原理
  • 语义普遍性与形式化:构建深层语义理解的统一框架
  • C++算法题—— 小C的细菌(二维偏序离线 + 树状数组 + 坐标压缩)
  • 使用Proxifier+vmware碰到的一些问题
  • JUC之虚拟线程
  • 论文阅读:Inner Monologue: Embodied Reasoning through Planning with Language Models
  • 173-基于Flask的微博舆情数据分析系统
  • 数据结构 之 【AVL树的简介与部分实现】(部分实现只涉及AVL树的插入问题,包括单旋((右单旋、左单旋))、双旋(左右单旋、右左单旋)等操作)
  • SAP FI 应收应付账龄分析
  • leetcode26:删除有序数组中的重复项Ⅰ(快慢指针解法)