NOIP2023模拟12联测33 B. 游戏

NOIP2023模拟12联测33 B. 游戏

题目大意

231101_5PtkSBXNaX.png (654×896) (hszxoj.com)

231101_h7i2m6CitQ.png (654×487) (hszxoj.com)

期望题

思路

二分答案 m i d mid mid ,我们只关注学生是否能够使得被抓的人数 ≤ m i d \le mid mid

那我们就只关心 a > m i d a > mid a>mid 的房间就行了。

设学生有 p p p 的概率进入第 i i i 个房间,那么老是去抓第 i i i 个房间的概率为 ( 1 − p ) ∗ a i (1 - p) * a_i (1p)ai ,满足 ( 1 − p ) ∗ a i ≤ m i d (1 - p) *a_i \le mid (1p)aimid ,即: p ≥ 1 − m i d / a i p \ge 1 - mid / a_i p1mid/ai 对后者求和,如果小于 1 1 1 ,就说明他还能使得被抓的人数变少。

code

#include <bits/stdc++.h>
#define fu(x , y , z) for(int x = y ; x <= z ; x ++)
using namespace std;
const double eps = 1e-10;
int n , a[35];
double ans;
bool ck (double x) {
    double ans = 0;
    fu (i , 1 , n) {
        if (a[i] > x) {
            ans += 1 - x / (1.0 * a[i]);
        }
    }
    if (ans > 1) return 1;
    else return 0;
}   
int main () {
    freopen ("game.in" , "r" , stdin);
    freopen ("game.out" , "w" , stdout);
    scanf ("%d" , &n);
    fu (i , 1 , n) scanf ("%d" , &a[i]);
    double mid , l = 0 , r = 120;
    while (r - l >= eps) {
        mid = (l + r) * 0.5;
        if (ck (mid)) l = mid;
        else r = mid;
    }
    printf ("%.12f" , r);
    return 0;
}
  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
该资源内项目源码是个人的课程设计、毕业设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 该资源内项目源码是个人的课程设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值