题解 | #一个经典概率问题#

一个经典概率问题

https://ac.nowcoder.com/acm/contest/11215/F

一个经典概率问题

解法其实已经写在题目里了,分别实现两种方法,然后根据两者不同的特征判断是哪一个方法生成的。

B的生成方法就不说了,L的生成方法由于每条半径生成方法是相同的,所以选哪一条半径其实都一样,不如直接固定选一个半径。

然后考虑使用均值判断,由于算出来两者相差还蛮大的,就直接用就行了。

#include <bits/stdc++.h>
using namespace std;
#ifdef BACKLIGHT
#include "debug.h"
#else
#define debug(...)
#endif

const int T = 1e5;
const int N = 1e5;

mt19937_64 rng(chrono::steady_clock::now().time_since_epoch().count());
inline int rnd(int l, int r) { return l + rng() % (r - l + 1); }

double MB() {
  double mean = 0, r = N;
  for (int i = 0; i < T; ++i) {
    double x, y;
    while (true) {
      x = rnd(0, N);
      y = rnd(0, N);
      if (x * x + y * y <= r * r) break;
    }
    double a = sqrt(x * x + y * y);
    double b = 2 * sqrt(r * r - a * a);
    mean += b / N;
  }
  return mean / T;
}

double ML() {
  double mean = 0, r = N;
  for (int i = 0; i < T; ++i) {
    double a = rnd(0, N);
    double b = 2 * sqrt(r * r - a * a);
    mean += b / N;
  }
  return mean / T;
}

void solve(int Case) {
  double mb = MB();
  double ml = ML();

  int n;
  cin >> n;
  double d, mean = 0, std = 2 * 4 / acos(-1.0);
  for (int i = 0; i < n; ++i) cin >> d, mean += d;
  mean /= n;

  double db = abs(mean - mb);
  double dl = abs(mean - ml);

  debug(mean, mb, ml, db, dl);

  cout << (dl < db ? "L" : "B") << "\n";
}

int main() {
#ifdef BACKLIGHT
  freopen("a.in", "r", stdin);
#endif
  ios::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);
  int T = 1;
  // cin >> T;
  for (int t = 1; t <= T; ++t) solve(t);
  return 0;
}
全部评论

相关推荐

不愿透露姓名的神秘牛友
07-23 14:10
柴子木:找个工作你还发上脾气了🤣
点赞 评论 收藏
分享
机械打工仔:不管啥专业,找工作改简历的第一课先把你那排版改了,简历上不要写个人简历四个字,找你要简历的谁不知道这个是简历?而且还占那么多空间,直接把自己名字和基础信息写上面,整体字体大一些。 还有这种经典两页简历一页大空白,导出PDF的时候多了一页几乎全是白的你自己看着不难受吗随手的事为啥不能改掉呢,这是态度问题,你试想一下你是HR你打开简历看到格式都没调整过会是什么感受?你自己都不重视你的简历,HR更不会在意。 然后内容你那个做两年咖啡就别往里写了,简历在精不在多,你在往你的简历里打字的时候就要想好这东西对你要找的工作有没有帮助。自我评价写一行就行了,不如给专业技能单开一栏。核心课程均分90这个真别写了,把你上过的有用的专业课列出来也行。有很多地方废话很多的精炼一下,比如你校内项目第一个写的那些,全然没有重点。 好好修改一下,我看你内容也挺优秀的,别被一个随便做的简历耽误了,我一个同专业的打工人看了都揪心更别说一天看几百份简历的HR
听劝,我这个简历该怎么改...
点赞 评论 收藏
分享
认真搞学习:28小登的建议,投算法岗不要写什么物理竞赛,互联网+,多写点项目,用什么算法做了什么。还有本科算法是不可能的开发你这个也没有项目啊
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
昨天 17:55
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务