Hacked Exam-Google Codejam 2021 Round 1A第三题

There is an exam with Q(1 ≤\leq≤ Q ≤\leq≤ 120)true or false questions. The correct answer to each question is either T or F. Each student taking the exam selects either T or F for each question, and the student’s score is the number of questions they answer correctly.
There are N(1 ≤\leq≤ N ≤\leq≤ 3) students who have already taken this exam. For each of those students, you know the answers they gave to each question and their final score. Assuming that any sequence of answers that is consistent with all of those students’ scores has the same probability of being the correct sequence of answers, you want to maximize your own expected score. Determine what that expected score is and how to answer the questions so that you achieve it.

题目大意

一次考试有Q个判断题(1 ≤\leq≤ Q ≤\leq≤ 120)。现在你知道N(1 ≤\leq≤ N ≤\leq≤ 3)个考生每道题的回答及总得分(即回答正确的题目),输出一种答题方案,使得期望得分最高。

题目解析

先考虑两个学生的情况:对于某一道题,他们的答案要么是相同的,要么是不同的。假设这两名学生有mmm道题答案相同,其中kkk道题答案正确。设两名学生的得分为x,yx,yx,y,由于两人答案不同的题目必定一人对一人错,那么(x−k)+(y−k)=Q−m,k=x+y−Q+m2(x-k)+(y-k)=Q-m,k=\frac{x+y-Q+m}{2}(x−k)+(y−k)=Q−m,k=2x+y−Q+m​。因此,作答情况为TTTTTT答案为TTT的几率和作答情况为FFFFFF答案为FFF的几率为km\frac{k}{m}mk​,作答情况为TFTFTF答案为TTT的几率和作答情况为FTFTFT答案为FFF的几率为s1−kQ−m\frac{s_1-k}{Q-m}Q−ms1​−k​。对于每道题,选期望得分更高的选项即可。

现在考虑3个学生的情况:对于每一道题,这三个学生的答题情况有23=8种情况。 假设这三名学生得分分别是s1,s2,s3。s_1,s_2,s_3。s1​,s2​,s3​。
假设三名学生作答情况为[TTT,TTF,TFT,TFF,FTT,FTF,FFT,FFF]分别有[x1,x2,⋯,x8][TTT,TTF,TFT,TFF,FTT,FTF,FFT,FFF]\\分别有[x_1,x_2,\cdots,x_8][TTT,TTF,TFT,TFF,FTT,FTF,FFT,FFF]分别有[x1​,x2​,⋯,x8​]道题目,[t1,t2,⋯,t8][t_1,t_2,\cdots,t_8][t1​,t2​,⋯,t8​]道题目答案为TTT。根据之前的观察,作答情况完全相反的两道题答案为TTT的概率是互补的。那么:
{t1x1+t8x8=1t2x2+t7x7=1t3x3+t6x6=1t4x4+t5x5=1t1+t2+t3+t4+x5+x6+x7+x8=s1+t5+t6+t7+t8t1+t2+t5+t6+x3+x4+x7+x8=s2+t3+t4+t7+t8t1+t3+t5+t7+x2+x4+x6+x8=s3+t2+t4+t6+t8\begin{cases} \frac{t_1}{x_1}+\frac{t_8}{x_8}=1\\ \frac{t_2}{x_2}+\frac{t_7}{x_7}=1\\ \frac{t_3}{x_3}+\frac{t_6}{x_6}=1\\ \frac{t_4}{x_4}+\frac{t_5}{x_5}=1\\ t_1+t_2+t_3+t_4+x_5+x_6+x_7+x_8=s_1+t_5+t_6+t_7+t_8\\ t_1+t_2+t_5+t_6+x_3+x_4+x_7+x_8=s_2+t_3+t_4+t_7+t_8\\ t_1+t_3+t_5+t_7+x_2+x_4+x_6+x_8=s_3+t_2+t_4+t_6+t_8\\ \end{cases} ⎩⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎧​x1​t1​​+x8​t8​​=1x2​t2​​+x7​t7​​=1x3​t3​​+x6​t6​​=1x4​t4​​+x5​t5​​=1t1​+t2​+t3​+t4​+x5​+x6​+x7​+x8​=s1​+t5​+t6​+t7​+t8​t1​+t2​+t5​+t6​+x3​+x4​+x7​+x8​=s2​+t3​+t4​+t7​+t8​t1​+t3​+t5​+t7​+x2​+x4​+x6​+x8​=s3​+t2​+t4​+t6​+t8​​
一共7个方程,8个未知数。我们可以将t2t_2t2​到t8t_8t8​用t1t_1t1​表示出来,再代入t1t_1t1​的可能值,这样我们就可以统计出每种题选TTT的期望得分,之后我们只需要比较其与0.5的大小来决定选TTT还是FFF便可以了,总期望即每道题期望值和,时间复杂度是O(Q)O(Q)O(Q)的。

本题作为该轮最后一题,有一定思维难度。

Hacked Exam-Google Codejam 2021 Round 1A相关推荐

  1. [CodeJam 2021 Round 3] Square Free(调整法 / 字典序最小解网络流)

    CodeJam 2021 Round3 Square Free problem solution code code-std problem 神奈子是个很爱打麻将的老婆婆,有一天她把她的麻将放进了一个 ...

  2. Google Code Jam Round 1A 2015 解题报告

    题目链接:https://code.google.com/codejam/contest/4224486/ Problem A. Mushroom Monster 这题题意就是,有N个时间点,每个时间 ...

  3. 【贪心】Google Code Jam Round 1A 2018 Waffle Choppers

    题意:给你一个矩阵,有些点是黑的,让你横切h刀,纵切v刀,问你是否能让切出的所有子矩阵的黑点数量相等. 设黑点总数为sum,sum必须能整除(h+1),进而sum/(h+1)必须能整除(v+1). 先 ...

  4. [CodeJam 2019 Round 3] Rancake Pyramid(笛卡尔树)

    CodeJam 2019 Round 3 Rancake Pyramid problem solution code problem 神奈子是个很爱打麻将的老婆婆,有一天她把她的麻将放成了 nnn 堆 ...

  5. 从成功到夺目: Google Play 2021 年度中国开发者最佳榜单

    Google Play 2021 年度最佳榜单异彩纷呈,我们不仅领略到了今年应用与游戏的绝佳风采,更对开发者们的无限创造力赞叹不已.开发者们永葆热情,在对作品一次次的打磨中实现追求,也为用户带来了无与 ...

  6. Google DevFest 2021即将开始,赶紧来参加吧

    2021 DevFest上海谷歌开发者节正快马加鞭地赶来! 作为热爱谷歌技术的你我,如何在变革加速的时代 用数字创新应对挑战,让自己和更多人的生活更美好呢? 11月28日,浦东喜来登由由大酒店 让我们 ...

  7. Hacked Exam 14pts 2021Google codejam round1A

    https://codingcompetitions.withgoogle.com/codejam/round/000000000043585d/0000000000754750#analysis 只 ...

  8. Google Code Jam 2015 Round 1A Mushroom Monster 水

    题意:每10秒扫描一下盘子,查看盘子里面的面包个数,问你主角用两种吃法可能吃得的最少的面包. 1)任意吃. 2)每秒以恒定速度. 解题思路:暴力,找差值. 解题代码: 1 // File Name: ...

  9. Google Code Jam 2015 Round 1A Haircut 二分

    题意:给你每个理发师的理发时间,问你排在队列中的第N个位置,问你应该被哪个理发师剪发. 解题思路:二分时间,看这个时间到第几个人理发了,然后找到临界值,看这个值的时候有那些理发师接待了新旅客的,即可找 ...

最新文章

  1. linux下查看进程占用端口和端口占用进程命令
  2. 【MM模块】Cycle Counting 周期盘点
  3. .NET Core 使用 K8S ConfigMap的正确姿势
  4. linux container框架,理解和配置LinuxContainerExecutor
  5. python判断水仙花数
  6. ubuntu server自动关闭屏幕背景灯_certbot-auto申请https证书,自动续期
  7. linux编程之指针
  8. 什么软件能测试显卡功耗,如何在win10中检查计算机的显卡功耗
  9. JAVA实现发短信功能
  10. 大数据技术框架有哪些类型?大数据技术栈包括哪些框架?
  11. 我的校招季大概也是结束了。
  12. tws蓝牙耳机哪个牌子好?2022蓝牙耳机排行榜
  13. 本科毕设课题之OJ开发(1)--评测机
  14. 计算机科学与技术专业导论3500,计算机科学与技术专业导论.docx
  15. 「THUWC 2017」在美妙的数学王国中畅游
  16. 新版H5盲盒商城系统源码(前端uniapp后端thinkphp)+详细安装教程+数据库
  17. AttributeError: ‘HistGradientBoostingClassifier‘ object has no attribute ‘_n_features‘
  18. 夜神模拟器apk超过2g安装失败,mumu模拟器可以安装
  19. 【PAT】Rational Sum
  20. 数据透视表(图)中添加公式计算与汇总--计算项和计算字段

热门文章

  1. 网站制作教程:PageAdmin建站系统在win2012上的安装
  2. 计算机开机进不去桌面,电脑开机直接跳过启动界面进去电脑桌面,想进bios进不去怎么办...
  3. 浙江大学《概率论与数理统计》
  4. 监控io性能、free命令、ps命令、查看网络状态、linux下抓包
  5. 伪造邮件***,看我如何给网易邮箱APP发送垃圾邮件【二】
  6. RetinaNet模型在DDSM数据集的应用问题(2)
  7. iOS让屏幕保持常亮,不自动锁屏
  8. 怎么在苹果手机上进行时间管理?
  9. HTML 几种特别分割线特效
  10. 双11到了,月薪5千的人如何赚到2万?这里有5个技巧!