AGC019F
题目大意
$n$ + $m$ 个问题,其中$n$ 个答案是$YES$,$m$个是$NO$的,你依次答题,每答一道,就可以立刻知道这道题的答案,求在最优策略下答错次数的期望,对$998244353$取模.
分析
很显然,如果当前有$i$个答案是$YES$,$j$个答案是$NO$,如果$i!=j$那么我们肯定选择剩余答案多的那个回答,如果$i=j$,我们只能随便猜一个回答.
容易发现,我们猜测$n+m$次答案的过程,可以抽象成在平面上从$(n,m)$走到$(0,0)$的过程,我们假定$YES$为向左,$NO$为向下.
当我们不经过$y=x$这条直线时,$i$和$j$的大小关系是不会改变的,因此我们只会一直向一个方向走.
因此,假设我从$(n,m) (n!=m)$第一次经过$y=x$是在点$(v,v)$,那么因为我只会向一个方向走,所以一定是答对了$max(n, m)-v$道问题.
考虑$n=m$的情况,显然,只要任意走一步,它就变成了刚才的$n!=m$的情况,走到下一个$y=x$的地方,假设是$(u,u)$,
也一定答对了$n - u$道题.
因此,如果不考虑在对角线处选择的答案的正误,从$(n,m)$走到$(0,0)$的期望步数就是$max(n,m)$的.
现在我们来考虑对角线的情况,在对角线上有$1/2$的概率产生$1$的贡献
我们只要暴力枚举通过对角线上每一个点的概率即可.
AGC019F的更多相关文章
- 【agc019F】Yes or No
Portal -->agc019F Description 给你\(n+m\)个询问,其中\(n\)个的答案是\(Yes\),\(m\)个的答案是\(No\),现在依次回答这些询问,每回答一个询 ...
- 【agc019f】AtCoder Grand Contest 019 F - Yes or No
题意 有n个问题答案为YES,m个问题答案为NO. 你只知道剩下的问题的答案分布情况. 问回答完N+M个问题,最优策略下的期望正确数. 解法 首先确定最优策略, 对于\(n<m\)的情况,肯定回 ...
随机推荐
- Lambda表达式——注重过程的编程思想
一.使用匿名内部类的匿名对象创建线程和Lambda表达式写法 Lambda表达式写法不用去定义一个Runable接口的实现类: 二.方法入参是一个接口或者接口的实现类 三.对某个类的一些对象实例进行排 ...
- vue页面跳转以及传参和取参
vue中this.$router.push()路由传值和获取的两种常见方法 1.路由传值 this.$router.push() (1) 想要导航到不同的URL,使用router.push()方法 ...
- 线程调用BeginInvoke
线程异步调用 Thread objThread = new Thread(new ThreadStart(delegate { Dispatch ...
- 运行FreeSWITCH的命令行参数
一般来说,FreeSWITCH 不需要任何命令行参数就可以启动,但在某些情况下,你需要以一些特殊的参数启动.在此,仅作简单介绍.如果你知道是什么意思,那么你就可以使用,如果不知道,多半你用不到. 使用 ...
- Collections集合工具类和可变参数
Collections常用的API: public static <T> boolean addAll(Collection<? super T> c, T... elemen ...
- 使用SQL SERVER存储过程实现历史数据迁移
今天讲下软件开发中最常见的历史数据迁移方式.在讲迁移之前,先简单介绍下几个基本概念. 1.什么是历史数据迁移? 简单直白地说:就是将一些创建时间比较久而且不常用的历史数据,存储到另一个地方(可以是另一 ...
- 洛谷P1309——瑞士轮(归并排序)
https://www.luogu.org/problem/show?pid=1309#sub 题目背景 在双人对决的竞技性比赛,如乒乓球.羽毛球.国际象棋中,最常见的赛制是淘汰赛和循环赛.前者的特点 ...
- 网页兼容最新IE声明meta方法
第三种,总是使用最新版本文档模式. 以下是例子: <meta http-equiv="X-UA-Compatible" content="IE=edge" ...
- Shell系列(8)- 变量与变量分类(1)
变量命名规则 开头为字符或下划线,名字中间中能有字母.数字和下划线组成; 变量的长度不超过255个字符; 变量名在有效的范围内必须是唯一的; 如再次定义则会替换上一个变量的值 在Bash中,变量的默认 ...
- docker挂载目录问题:touch: cannot touch '/var/jenkins_home/copy_reference_file.log': Permission denied
docker 运行后, 执行docker logs -f myjenkins时报错:touch: cannot touch '/var/jenkins_home/copy_reference_file ...