2023NOIP A层联测25 T2 游戏
2023NOIP A层联测25 T2 游戏
优秀且新颖的期望题。
思路
分析问题,由于双方都是最优策略,所以可以说学生知道老师会选择那些教室设置概率(概率设置好就不能改变),老师也知道学生会怎样选择教室(不是知道一定会去那个)。
设老师选择的集合是 \(S\)。
那么老师在学生不清空的情况下,老师的期望为 \(\sum_{i\in S} p_ia_i\)(\(p_i\) 是概率)。
学生知道每一项 \(i\) 的贡献,所以由于学生要使老师的期望最小,那么学生肯定选 \(\max(p_ia_i)\)。
于是答案为 \(\sum_{i\in S} p_ia_i-\max(p_ia_i)\)。
对于最大的那一项 \(p_ia_i\) 来说,由于他们肯定会被选走,所以说老师不妨把 \(p_i\) 改小一点,多出来的概率分给其他的数,虽然总和减小了,但被减掉的部分也减小了,而且不会被减掉的部分增加了,所以答案将获得最优。
那么最好情况下,我们要使得 \(\sum_{i \in S} p_i=1\) 且对于任意 \(i\) 而言 \(p_ia_i\) 相等。
可以构造
\]
这个 \(p_k\) 是符合条件的。
现在问题变为要怎样是答案最大。
答案最大要是 \(p_i\) 最小,\(p_i\) 最小要使 \(\sum_{i \in S} \frac{1}{a_i}\) 最小,也就是使 \(\sum a_i\) 最大。
设集合 \(S\) 有 \(m\) 个数,那么取最大 \(m\) 个即可。
而且这样答案合式可化为:
\]
对答案排序后,枚举 \(m\) 即可。
CODE
#include<bits/stdc++.h>
using namespace std;
int n;
int a[55];
double ans,sum;
bool cmp(int a,int b){return a>b;}
int main()
{
scanf("%d",&n);
for(int i=1;i<=n;i++) scanf("%d",&a[i]);
sort(a+1,a+n+1,cmp);
for(int i=1;i<=n;i++) sum+=1.0/a[i],ans=max(ans,(i-1)/sum);
printf("%.12lf",ans);
}
2023NOIP A层联测25 T2 游戏的更多相关文章
- Valve开源了Direct3D到OpenGL的转译层,方便开发者迁移游戏到Linux(面向游戏玩家的六款最佳 Linux 发行版)
Valve开源了Direct3D到OpenGL的转译层,方便开发者迁移游戏到Linux:https://github.com/ValveSoftware/ToGL Valve SteamBox主机系统 ...
- Wannafly挑战赛23 T2游戏 SG函数
哎,被卡科技了,想了三个小时,最后还是大佬给我说是\(SG\)函数. \(SG\)函数,用起来很简单,证明呢?(不可能的,这辈子都是不可能的) \(SG\)定理 游戏的\(SG\)函数就是各个子游戏的 ...
- HTML5学习+javascript学习:打飞机游戏简介以及Model层
本着好记性不如烂博客以及分享成功的喜悦和分享失败的苦楚,今天我来分享下一个练手项目:打飞机游戏~从小就自己想做游戏,可是一直没有机会.HTML5给了我们这个平台,这个平台可以有很多以前想都不敢想的东西 ...
- 转:高层游戏引擎——基于OGRE所实现的高层游戏引擎框架
高层游戏引擎——基于OGRE所实现的高层游戏引擎框架 这是意念自己的毕业论文,在一个具体的实践之中,意念主要负责的是物件和GUI之外的其他游戏系统.意念才学疏陋,望众位前辈不吝赐教.由于代码质量不高. ...
- cocos2d-x中的导演、场景、层和精灵
场景(Scenes) 场景在cocos2d-x中是CCScene类实现的,是应用程序流中独立的一部分.一个cocos2dx应用程序可以有许多场景,但是在某一时刻,只有一个场景在运行. 比如,你有一个游 ...
- 游戏行业DDoS攻击解决方案
行业综述 根据全球游戏和全球移动互联网行业第三方分析机构Newzoo的数据显示:2017年上半年,中国以275亿美元的游戏市场收入超过美国和日本,成为全球榜首. 游戏行业的快速发展.高额的攻击利润.日 ...
- 阿里云:游戏行业DDoS攻击解决方案
转自:http://www.gamelook.com.cn/2018/01/319420 根据全球游戏和全球移动互联网行业第三方分析机构Newzoo的数据显示:2017年上半年,中国以275亿美元的游 ...
- coco2d-x游戏逻辑结构
在Cocos2d-x中开发游戏的主要逻辑和结构是:先创建场景,在场景上添加一层或多层,然后可以在指定层上添加精灵.菜单.文字等,可以为精灵.文字执行某个动作(或者移动),检测玩家触屏事件,开启任务调度 ...
- cocos2d-x游戏引擎核心之三——主循环和定时器
一.游戏主循环 在介绍游戏基本概念的时候,我们曾介绍了场景.层.精灵等游戏元素,但我们却故意避开了另一个同样重要的概念,那就是游戏主循环,这是因为 Cocos2d 已经为我们隐藏了游戏主循环的实现.读 ...
- Cocos2d-x3.0游戏实例之《别救我》第八篇——TiledMap实现关卡编辑器
版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/musicvs/article/details/25368273 好吧.我真心全然搞不懂.我如今仅仅只 ...
随机推荐
- 【原创】VSCode 快捷键汇总(已整理成一张 A4 纸大小,方便打印)
由于经常记不住 VSCode 的快捷键,每次查找不方便,于是乎做了一份 VSCode 快捷键汇总,已整理成一张 A4 纸大小,方便打印,这样查找就直观多了~ 直接保存图片,横向打印即可.
- WinForm DevExpress 添加行内按钮
1.在设计器里面添加一列,设置单元格不可编辑.只读属性 2. 在所在GridView属性里面添加CustomDrawCell事件与RowCellClick事件 private void gvMain_ ...
- 树上启发式合并——dsu on tree
参考文章: 树上启发式合并 [dsu on tree]树上启发式合并总结 树上启发式合并の详解 启发式合并 启发式算法是什么呢? 启发式算法是基于人类的经验和直观感觉,对一些算法的优化. 举个例子,最 ...
- Gluon 编译 JavaFx -> android apk
Gluon 编译 JavaFx -> android apk 本文的内容属 在linux服务器上 搭建 Gluon 编译 android-apk 环境 这一篇文章直接跟着官网操作一次性成功 虚拟 ...
- android ImageView 设定宽度铺满,高度自定义
问题:imageView 宽度铺满,高度自定义,会出现上下留白的现象(一般比例的还好) 解决: <xxx.xxx.xxx.xxx.FullWidthImageView android:id=&q ...
- Cannot add task 'wrapper' as a task with that name already exists.
写gradle项目的运行模板脚本 直接执行gradle clean build会报错 将原本的: task wrapper(type: Wrapper) { gradleVersion = '4.10 ...
- pgsql 查询及更新json字段的某个属性
pgsql 查询及更新json字段的某个属性 一.查询json字段中的某个属性 查询 t_user 表中json 字段 info 中的 name 属性 select info ->> 'n ...
- JavaScript – Proxy
参考 阮一峰 – Proxy 介绍和使用 Proxy 的作用是代理对象, 消费者不直接使用对象, 而是使用代理对象. 一般上做代理的目的就是想拦截对象访问做一些别的事情. 比如当对象改变以后, 同步 ...
- QT网络编程之如何使用QT6框架QTcpServer和QTcpSocket网络编程实现变长数据包收发:以用户注册和登录为实例讲解
QT网络编程之如何使用QT6框架QTcpServer和QTcpSocket网络编程实现变长数据包收发:以用户注册和登录为实例讲解 简介 本文将介绍如何使用QT6框架QTcpServer和QTcpSoc ...
- 系统编程-进程-当fork遇到管道,可能碰撞出什么?
第一部分 1. 直接上代码 #include <stdio.h> #include <unistd.h> #include <stdlib.h> int globv ...