首页 > 其他分享 >[AGC019F] Yes or No

[AGC019F] Yes or No

时间:2024-08-14 14:55:07浏览次数:16  
标签:AGC019F 局面 yes 期望 No frac Yes binom 2k

[AGC019F] Yes or No

首先期望的重要性质,注意\(X\)为随机变量

\(E(aX)=aE(X)\)

\(E(X+Y)=E(X)+E(Y)\)

\(XY\)独立时\(E(XY)=E(X)E(Y)\)

题面翻译

有 \(N+M\) 个问题,其中有 \(N\) 个问题的答案是 YES,\(M\) 个问题的答案是 NO。当你回答一个问题之后,会知道这个问题的答案,求最优策略下期望对多少。

答案对 \(998244353\) 取模。

题解

首先考虑暴力dp,考虑运用性质2,设\(f(n,m)\)表示n,m时的期望,我们选择n,m中最多的来选择,此随机变量分为两部分:当前选的和之后选的;当前选因为最大的,可以得出当前选的期望为:$ \frac{\max (n,m)}{m+n}\(,之后选的有可能这个是少了一个yes或少了一个no,考虑用概率来考虑之后选的,期望为:\)\frac{n}{m+n} f(n-1,m)+\frac{m}{m+n}f(n,m-1)$。

所以总递推式子为\(f(n,m)=\frac{\max (n,m)}{m+n}+\frac{n}{m+n} f(n-1,m)+\frac{m}{m+n}f(n,m-1)\)。

尝试优化,设\(m\leq n\),我们可以仍然考虑单个给我们带来的期望,当前局面若为 YES,猜对了有贡献;当前局面若为 NO,没猜对无贡献但是我们却可以让m减小,也就是NO时n仍然可以保持最大。考虑期望最坏的情况,此时我们一直没有猜对,\(m\)一直减小减小到了0,最后全是\(n\),这样就可以猜对n次,而其它不同的情况的猜对次数肯定比这个高,所以期望保底有n。

需要注意的是,即使前期一直猜对导致\(n=m\),期望仍不会低于\(n\),因为\(m>n\)的局面我们只需转化为\(n>m\)的局面来看待发现期望的变化仍然一样。

这是我们的出来了由\(n>m\)局面得来的保底期望,剩下的便是\(n=m\)时的局面,\(n=m\)时我们选择哪一个的概率都是\(\frac{1}{2}\),所以若是单次选择,期望便是\(\frac{1}{2}\)。

考虑这种局面的总期望,由于选择对错的随机变量和局面数的随机变量无关,由\(E(XY)=E(X)E(Y)\),我们可以得出来\(n=m\)所带来的贡献。其实就是拿“期望出现的 \(n=m\) 的局面数”乘上“期望单次选择对错"(即\(\frac{1}{2}\))。

那么我们现在的问题就只差求出来“期望出现的 \(n=m\) 的局面数”,这个东西改咋子求嘞?可以轻易发现这东西就是出现\(n=m\) 的局面的概率(因为不出现\(n=m\) 的局面的概率乘上0没了)。设这个点为\((k,k)\),也就是说我们通过减n或m减到了\((k,k)\),也就是说总共减去了\(n-k+m-k\),而我们究竟有多少种方案走到这个地方呢?可以知道有\(n-k\)次yes,所以我们可以得出有\(\binom{n-k+m-k}{n-k}\)种方案走到(当然要是你考虑从no出发了话下面就是\(m-k\)),但是因为是要求全程的方案(也就是经过,而不只是到达),所以我们又要从\((k,k)\)走到\((0,0)\),这个好求,总距离\(2k\),\(k\)个yes,即\(\binom{2k}{k}\)。综上,经过的总方案为\(\binom{n-k+m-k}{n-k}\binom{2k}{k}\).

只需要再除去总路径的方案数就大功告成了。总距离为\(n+m\),选yes的有\(n\),也就是说总方案数为\(\binom{n+m}{n}\)。所以得出“期望出现的 \(n=m\) 的局面数”为\(\sum_{k=1}^{min(m,n)}\frac{\binom{n-k+m-k}{n-k}\binom{2k}{k}}{\binom{n+m}{n}}\)

ok总结一下吧,总共期望就是:

\(max(n,m)+\frac{1}{2}\sum_{k=1}^{min(m,n)}\frac{\binom{n-k+m-k}{n-k}\binom{2k}{k}}{\binom{n+m}{n}}\)

来自黄赫哲的md笔记。

标签:AGC019F,局面,yes,期望,No,frac,Yes,binom,2k
From: https://www.cnblogs.com/huanghezhe/p/18359000

相关文章

  • Python轻量级 NoSQL 数据库之tinydb使用详解
    概要在现代应用开发中,使用数据库来存储和管理数据是非常常见的需求。对于简单的数据存储需求,关系型数据库可能显得过于复杂。TinyDB是一个纯Python实现的轻量级NoSQL数据库,专为嵌入式场景设计,适用于小型项目、原型开发和教学等场景。本文将详细介绍TinyDB库,包括其安......
  • 一个Web服务器及python作web开发的框架:Tornado 托内科及python提示报错:ImportError:
    一、一个Web服务器及python作web开发的框架:Tornado托内科    tornado,是使用Python编写的一个强大的、可扩展的Web服务器及Python作web开发框架。网上说Tornado和现在的主流Web服务器框架(包括大多数Python的框架)有着明显的区别:它是非阻塞式服务器,而且速度相当快。得利......
  • Synopsys 全套lab
    DocSTCL12004.12DocsTCL22004.12DocsTCL32004.12LabsDC2013.12-SP3LabsDC2015.06LabsDC2016.03-SP5LabsDC2016.12-SP3LabsDC2017.09-SP4LabsDC2DCT2013.12-SP3LabsDFTC2013.12-SP3LabsDFTC2016.03-SP1LabsDFTC2017.09-SP3LabsFPGAProt......
  • Node.js中做定时任务
    用node-cron这个库:https://github.com/kelektiv/node-cron例子://import{CronJob}from'cron';constCronJob=require('cron').CronJob;constjob=newCronJob( '******',//crontime function(){ console.log('Youwill......
  • InnoDB-数据字典
    Version:8.0.32INFORMATION_SCHEMA压缩INNODB_CMP和INNODB_CMP_RESET提供有关压缩操作的数量和执行压缩所花费的时间的信息。INNODB_CMPMEM和INNODB_CMPMEM_RESET提供有关内存分配用于压缩的方式的信息。事务和锁INNODB_TRX:这个INFORMATION_SCHEMA表提供了当前在InnoD......
  • InnoDB之统计信息
    一、InnoDB统计信息简介InnoDB统计信息分为持久化统计信息和非持久化统计信息。持久化统计信息将统计信息存储在磁盘(mysql库下),在数据库重启后保证统计信息的持久访问;非持久化统计信息在数据库重启或一些特定操作后会丢失,再次使用该表时会从新计算。innodb_stats_auto_rec......
  • 在K8S中,node数量增多会有什么影响吗?
    在Kubernetes(K8S)中,增加节点的数量会对集群产生多方面的影响。这些影响既包括正面的也有负面的,具体取决于集群的具体配置和工作负载的需求。以下是一些主要的影响:1.正面影响提高可用性增加节点数量可以提高系统的冗余性,即使某些节点出现故障,其他节点仍然可以继续处理请......
  • 关于Pytorch中net.eval()和torch.no_grad()的意义理解
    Q:defevaluate_accuracy(net,data_iter):#@save"""计算在指定数据集上模型的精度"""ifisinstance(net,torch.nn.Module):net.eval()#将模型设置为评估模式metric=Accumulator(2)#正确预测数、预测总数withtorch.no_grad():......
  • M3KE: A Massive Multi-Level Multi-Subject Knowledge Evaluation Benchmark for Chi
    文章目录题目摘要简介相关工作M3KE实验结论题目M3KE:面向中文大型语言模型的海量多层次多学科知识评估基准论文地址:https://arxiv.org/abs/2305.10263项目地址:https://github.com/tjunlp-lab/M3KE摘要    大型语言模型最近在跨任务泛化、指令跟随等多个......
  • 解决 CentOS Cannot find a valid baseurl for repo
    参考:Fix"Cannotfindavalidbaseurlforrepo"inCentOS-DEVCommunity背景由于CentOS7镜像被移动到vault。当执行yum时,会报错“Cannotfindavalidbaseurlforrepo:base/7/x86_64”。解决将/etc/yum.repos.d/CentOS-Base.repo中的原有内容删除,将其设置为如......