【牛客】寒假训练营1 I-It‘s bertrand paradox. Again! 题解

传送门:It’s bertrand paradox. Again!
标签:随机

题目大意

有两个人分别用两种方式在二维平面上随机生成1e5个圆,每个圆上的每一个点(x,y)都满足-100<x<100且-100<y<100,现在将某个人生成的1e5个圆的圆心和半径告诉你,问你这个人是谁。两个人生成圆的方式分别为:(1)1、随机等概率地从开区间(-100,100)生成两个整数x,y。
2、随机等概率地从闭区间[1,100]中生成一个r。3、判断(x,y )为圆心、r为半径的圆是否满足要求,若不满足,返回步骤2重新生成r,若满足,则将该圆加入到结果中。(2)1、随机等概率地从开区间(-100,100)生成两个整数x,y,随机等概率地从闭区间[1,100]中生成一个r。2、判断(x, y)为圆心、r为半径的圆是否满足要求,若不满足,返回步骤1重新生成x,y,r,若满足,则将该圆加入到结果中。
输入:第一行一个正整数n=1e5,代表圆的总数。接下来n行每行三个整数x,y,r(-100<x,y<100,0<r<100),分别代表圆心的坐标和半径。
输出:如果这些圆是第一个人生成的,输出“bit-noob”,否则输出“buaa-noob”。

算法分析

  • 显然这题跟随机有关,我们只要暴力跑100个数据找规律就行了(不是)。好吧看来并不需要,因为这题实在太简单了。我们先看两种生成方法有什么区别,最明显的就是第一种方法要三步而第二种方法只要两步。观察多出来的一步我们会发现,第一种方法的圆心和半径是分开生成的,而第二种方法的圆心和半径是在同一步中同时生成的。
  • 因为两种方法都是随机的,所以都有可能生成不符合要求的圆。遇到这种情况,第一个人将半径重新生成直到圆符合要求,第二个人则是将整个圆重新生成,即圆心坐标和半径都替换。那么很容易看出,第一个人生成的所有的圆的圆心坐标都是一次确定的,只通过半径来调整圆的大小。所以他生成的1e5个圆的圆心位置是均匀分布在(-100,100)中的,这种情况下一些靠近边缘的圆的半径一定很小。
  • 第二种方法每次都生成一个圆心坐标、半径都随机的圆形,那么我们可以大胆地将每个圆半径都假设为其期望,再思考圆心的位置。半径为50的情况下,能符合条件的圆的圆心一定更靠近(0,0)。所以根据统计学的知识,两种方法生成的圆的圆心到(0,0)的距离的平均值一定不同,且第二种方法距离更小。
  • 那很显然存在一个标准值,如果圆心到原点的距离大于这个值就是第一种方法生成的,否则就是第二种方法生成的。要猜这个值也很简单,因为圆心在均匀分布的条件下到原点的距离期望是50根号2,也就是大概70左右,如果比这个值小很多那肯定是第二种方法生成的。保守估计在1e5的数据量下平均值不会比期望偏差超过10,故将标准值定为60。

代码实现

#include <iostream>
using namespace std;
#include <algorithm>
#include <cstring>
#include <map>
#include <iomanip>
#include <cmath>
map<pair<long long,long long>,bool> mp;
long long n,m,T;
int ans;
int main(){long long i,j,l,r,x,y,c,d,h,w,mid,t,sum=0;ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);cin>>n;for(i=1;i<=n;i++){cin>>x>>y>>c;sum+=sqrt(x*x+y*y);}sum/=n;if(sum<60)cout<<"buaa-noob";else cout<<"bit-noob";
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/689076.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

云原生之容器编排实践-在K8S集群中使用Registry2搭建私有镜像仓库

背景 基于前面搭建的3节点 Kubernetes 集群&#xff0c;今天我们使用 Registry2 搭建私有镜像仓库&#xff0c;这在镜像安全性以及离线环境下运维等方面具有重要意义。 Note: 由于是测试环境&#xff0c;以下创建了一个 local-storage 的 StorageClass &#xff0c;并使用本地…

机器学习算法的最新进展

前言 随着技术的不断发展&#xff0c;机器学习&#xff08;Machine Learning, ML&#xff09;已经从理论研究的象牙塔走向了实际应用的前线。现代机器学习算法不仅在诸多领域取得了显著的成就&#xff0c;更是推动了人工智能&#xff08;Artificial Intelligence, AI&…

【设计模式】4、策略模式

文章目录 一、问题二、解决方案2.1 真实世界的类比2.2 策略模式结构2.3 适用场景2.4 实现方式2.5 优缺点2.6 与其他模式的关系 三、示例代码3.1 go3.2 rust 策略模式是一种行为设计模式&#xff0c;它能定义一系列算法&#xff0c;把每种算法分别放入独立的类中&#xff0c;以是…

【动态规划:最短编辑路径】的应用:excel diff功能

开篇说明 如果在这里获得过启发和思考&#xff0c;希望点赞支持&#xff01;对于内容有不同的看法欢迎来信交流。 技术栈 >> java 邮箱 >> 15673219519163.com 描述 在游戏行业中通常使用excel做配表&#xff0c;修改配表是一个频繁的操作。在修改之后&#xff…

政安晨:【完全零基础】认知人工智能(三)【超级简单】的【机器学习神经网络】—— 三层神经网络示例

知识准备 咱们还没有演示过使用矩阵进行计算得到经由神经网络馈送的信号&#xff0c;我们也没有演示过多于2层的神经网络示例&#xff0c;在这篇文章里&#xff0c;咱们将构建一个三层神经网络的示例&#xff0c;并观察如何处理中间层的输出以作为最后第三层的输入&#xff0c…

【CSS】设置文字(文本)的渐变色

# 渐变色 文字 第一步 设置渐变颜色 background: linear-gradient(278.83deg, #5022bd 31.42%, #8636d1 75.55%); // 先设置渐变色背景&#xff1b; 第二步 设置颜色的使用范围 background-clip: text; // 背景被裁剪成文字的前景色。 -webkit-background-clip: text; 第三步…

ARP攻击原理

ARP攻击&#xff08;Address Resolution Protocol Attack&#xff09;是一种利用ARP协议的安全漏洞来进行的网络攻击。ARP协议是将网络层的IP地址映射到链路层的MAC地址的协议。 ARP攻击的原理如下&#xff1a; 1. ARP欺骗&#xff1a;攻击者通过发送伪造的ARP请求和ARP响应来…

Java学习笔记2024/2/18

1.API 1.1API概述 什么是API API (Application Programming Interface) &#xff1a;应用程序编程接口 java中的API 指的就是 JDK 中提供的各种功能的 Java类&#xff0c;这些类将底层的实现封装了起来&#xff0c;我们不需要关心这些类是如何实现的&#xff0c;只需要学习这…

go依赖注入库samber/do使用

英语版本 介绍 以简单和高效而闻名的Go语言在其1.18版本中引入了泛型&#xff0c;这可以显着减少大量代码生成的需要&#xff0c;使该语言更加强大和灵活。如果您有兴趣&#xff0c; Go 泛型教程 是很好的学习资源。 通过使用 Go 的泛型&#xff0c;samber/do库为依赖注入 (…

【性能测试】分布式压测之locust和Jmeter的使用

受限于单台机器的配置问题&#xff0c;我们在单台机器上达不到一个很高的压测并发数&#xff0c;那这个时候就需要引入分布式压测 分布式压测原理&#xff1a; 一般通过局域网把不同测试计算机链接到一起&#xff0c;达到测试共享、分散操作、集中管理的目的。 选择一台作为…

用c语言写扫雷游戏

前言&#xff1a; 今天我们讲的扫雷游戏&#xff0c;在此过程中&#xff0c;我们会经常提两个字&#xff0c;纵横 接下来&#xff0c;正片开始 在开始讲解扫雷游戏之前&#xff0c;我们先来思考一个问题&#xff1a;我们之前的代码是不是都是写在一个源文件里面&#xff1f;那…

提升企业竞争力:精益生产培训简介——张驰咨询

精益生产&#xff08;Lean Production&#xff09;是一种管理哲学&#xff0c;最早源于日本丰田汽车公司的丰田生产系统&#xff08;Toyota Production System,TPS&#xff09;。这套理念的核心在于最大程度地减少生产过程中的浪费&#xff0c;同时保证产品质量&#xff0c;通过…

sora的理解

1、背景 近期, openai紧跟Runway、 Google、Meta等公司, 发布了视频生成模型Sora, 全面进军视频领域。官网的视频效果炸裂&#xff0c;连贯性优秀&#xff0c;生成视频时长可达60秒&#xff0c;但模拟复杂物理场景仍有瑕疵。相对Pika、Runway的效果还是有进一步提升。考虑到这…

2024年首发!高级界面控件Kendo UI全新发布2024 Q1

Kendo UI是带有jQuery、Angular、React和Vue库的JavaScript UI组件的最终集合&#xff0c;无论选择哪种JavaScript框架&#xff0c;都可以快速构建高性能响应式Web应用程序。通过可自定义的UI组件&#xff0c;Kendo UI可以创建数据丰富的桌面、平板和移动Web应用程序。通过响应…

AI界一夜变天

没有丝毫预热和剧透&#xff0c;Open AI深夜直接丢下核弹炸了街&#xff0c;从业者深感要变天。 2月16日凌晨&#xff0c;Open AI发布了首个“文生视频”模型Sora。官方介绍&#xff0c;Sora能根据文字指令创造出包含丰富细节的逼真场景、角色&#xff0c;且能用多角度镜头&am…

爬虫工作量由小到大的思维转变---<第四十七章 Scrapy 随机请求头(补)>

前言: 之前漏了一篇关于随机请求头的文章,现在补上; 日后,大家伙遇到请求头问题,直接拿就是了!! 正文: 在Scrapy中&#xff0c;使用随机请求头是一种常见的反爬虫策略&#xff0c;可以帮助你的爬虫模拟不同用户的请求&#xff0c;以降低被目标网站识别和封锁的风险。要在Sc…

Python print函数

在Python编程中&#xff0c;print()函数是一个非常基础但也非常重要的函数&#xff0c;用于将文本或其他对象输出到控制台或文件中。本文将深入探讨Python中的print()函数&#xff0c;包括基本用法、格式化输出、输出重定向、实际应用场景&#xff0c;并提供丰富的示例代码来帮…

探索前端框架的世界:一场前端之旅

在网络世界中&#xff0c;网页开发领域的一颗明星是前端框架。这些框架为开发者提供了丰富的工具和技术&#xff0c;帮助他们构建出漂亮、高效的网页应用。现在&#xff0c;让我们随着小明的故事一起来探索一下吧。 小明的梦想 小明是一位年轻有为的前端开发者&#xff0c;他…

栈的应用(表达式求值)C++(Acwing)

代码&#xff1a; #include <iostream> #include <cstring> #include <algorithm> #include <stack> #include <unordered_map>using namespace std;stack<int> num; stack<char> op;void eval()//求值 {auto b num.top(); num.po…

mysql3.7之触发器

1.触发器的定义 触发器是由事件来触发某个操作&#xff0c;这些事件包括INSERT、UPDATE、DELETE事件。所谓事件就是指用户的动作或者触发某项行为。如果定义了触发程序&#xff0c;当数据库执行这些语句时候&#xff0c;就相当于事件发生了&#xff0c;就会自动激发触发器执行…