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\)的情况,肯定回 ...
随机推荐
- 转:C#读取PDF、TXT内容
//读取PDF内容 private void button2_Click(object sender, EventArgs e) { label3.Text = OnCreated("D:\ ...
- 富文本编辑器-SpringBoot
目录 简介 Editor.md 基础工程搭建 数据库设计 基础项目搭建 文章编辑整合(重点) 图片上传问题 表情包问题 文章展示 简介 项目地址:https://gitee.com/zwtgit/ri ...
- (8)java Spring Cloud+Spring boot+mybatis企业快速开发架构之SpringCloud-Spring Cloud Eureka是什么?
Spring Cloud Eureka 是 Spring Cloud Netflix 微服务套件的一部分,基于 Netflix Eureka 做了二次封装,主要负责实现微服务架构中的服务治理功能. ...
- python 小鸡飞行小游戏
python 小鸡飞行小游戏 用空格键控制小鸡飞行 代码 import pygame.freetype import sys import random pygame.init() screen = ...
- jvm运行过程
------------恢复内容开始------------ 把文件编译成字节码文件的叫编译器的前端, 线程共享的方法去和堆,非线程共享的:java虚拟机栈,本地方法栈,还有程序计数器 都是每个线程独 ...
- prometheus、node_exporter设置开机自启动
方法一.写入rc.local 在/etc/rc.local文件中编辑需要执行的脚本或者命令,我个人习惯用这个,因人而异,有的项目可能需要热加载配置文件,用服务会更好 #普罗米修斯启动,需要后面接con ...
- css宽度+字体+颜色+边框+文本+光标+伪类选择器
常用属性: width:宽 height:高 min-width:最小宽度 :可以设置如果宽度变小了,有个滑动效果(常常在我们布局的过程中需要去设置) min-height;最小高度 max-widt ...
- python+selenium之浏览器滚动条操作
from selenium import webdriver import time #访问百度 driver=webdriver.Ie() driver.get("http://www.b ...
- 防刷功能的实现(thinkphp5)
$seconds = '3'; //时间段[秒] $refresh = '3';//最大次数 $cur_time = time(); if(Session::get('refresh_times')) ...
- [转载]使用postgresql安装wordpress
1. 环境安装sudo apt-get install apache2sudo apt-get install postgresql-9.1sudo apt-get install php5sudo ...