当前位置: 首页 > news >正文

题解:CF1292E Rin and The Unknown Flower

传送门

一道有趣的思维题。

我们从最简单的情况开始考虑:如果还剩下 \(2\) 格电呢?

那么直接询问 \(\texttt{O}\)\(\texttt{H}\),剩下的位置就是 \(\texttt{C}\)

从以上的朴素做法中我们得到启发:能不能通过耗电量更低的方式来确定三个字母的所有位置?

询问一个长度为 \(t\) 的串的耗电量是 \(\frac{1}{t^2}\),注意到分母越小(即询问的字符串长度越短)耗电量越大,因此我们希望尽可能加长询问的串的长度。

考虑询问 \(\texttt{CC,CH,CO}\),这样我们可以确定(除了最后一个字母以外)所有 \(\texttt{C}\) 的位置。再询问 \(\texttt{OO,HO}\),这样我们可以确定(除了第一个字母以外)所有 \(\texttt{O}\) 的位置。这时我们消耗了 \(1.25\) 格电量。

现在我们至多只剩下第一个字母和最后一个字母不确定,因此我们至多再进行三次询问就能够确定完整的串是什么。具体地,第一个字母只有可能是 \(\texttt{H,O}\) 两种情况(如果是 \(\texttt{C}\) 已经在以上的第 \(1\)\(3\) 个询问中被问出来了),最后一个字母只有可能是 \(\texttt{C,H}\) 两种情况(如果是 \(\texttt{O}\) 已经在以上的第 \(3\)\(5\) 个询问中被问出来了)。

经过计算,当字符串长度大于 \(4\) 的时候,总耗电量是小于 \(1.4\) 的(长度为 \(4\) 时总耗电量为 \(1.4375\),长度为 \(5\) 时总耗电量为 \(1.37\))。

因此我们以下考虑字符串长度等于 \(4\) 的情况。

首先还是要询问 \(\texttt{CC,CH,CO}\),如果三个中有至少一个出现了,那么就已经有至少两个位置确定了。并且如果字符串中还有 \(\texttt{C}\) 没有被问出,则这个 \(\texttt{C}\) 只有可能在最后一位。

此时如果最后一位已经被确定,则一共有 \(4\) 种可能的情况(以最后两位已经被确定为例,分别为 \(\texttt{HH**,HO**,OH**,OO**}\)\(\texttt{*}\) 处为已经被确定的字母)。如果最后一位没有被确定,则一共有 \(6\) 种可能的情况(以前两位已经被确定为例,分别为 \(\texttt{**HC,**OC,**HH,**OH,**HO,**OO}\))。则至多只需进行 \(5\) 次询问,最多耗电量为 \(1.0625\)

如果以上三者都未出现,再询问 \(\texttt{HO}\),如果出现过,则至多有 \(6\) 种可能的情况,与以上同理,最多耗电量为 \(1.3125\)

如果以上四者都未出现,再询问 \(\texttt{OO}\),如果出现过,此时原字符串有可能是 \(\texttt{OOOO}\)\(\texttt{OOO?}\)\(\texttt{OOH?}\)\(\texttt{?}\) 处为未确定的字母)。如果是第一种情况,则此时已经确定,询问结束,总耗电量为 \(1.25\);如果是第二种情况,则前三位已经确定,再询问一次即可(因为最后一位不能是 \(\texttt{C}\)),总耗电量为 \(1.3125\);如果不是前两种情况,则第三位也已经确定是 \(\texttt{H}\),与第二种情况同理,再询问一次即可。

如果以上五者都未出现,则该字符串一定是 \(\texttt{?HH?}\) 的形式(因为如果中间两位出现 \(\texttt{C,O}\),应当在前五次询问中被问出),此时第一位可能是 \(\texttt{C}\)\(\texttt{H}\),最后一位可能是 \(\texttt{O}\)\(\texttt{H}\)。此时询问 \(\texttt{HHH}\),则所有 \(\texttt{H}\) 的位置都已被问出,那么根据排除法就能确定第一位和最后一位的位置。总耗电量约为 \(1.3611\)

将以上两种情况合起来,本题就完成了。

本题分讨比较复杂,蒟蒻只会暴力地写一大堆条件判断,导致代码很不优美,就不放了,大家可以看其他大佬更加简洁的实现方式。

http://www.rkmt.cn/news/17000.html

相关文章:

  • 深入解析:SpringBoot-Thymeleaf
  • UCB-CS70_离散数学_个人笔记:Proofs 和 EECS 的联系及几种常见证明方法 - Zeeh
  • 博弈论dp复习笔记
  • 10.7阅读笔记
  • 多线程和网络总结
  • 详细介绍:ASR技术(自动语音识别)深度解析
  • 1.1 采样问题 Sampling and Bandits
  • 【题解】10.6 国庆中秋 提高组 热身赛
  • UCB-CS70个人笔记:至少和至多 - Zeeh
  • vscode使用“EIDE”和“Cortex-Debug”插件利用st-link插件达成程序烧写以及调试工作
  • C#中数据绑定的简单例子 - 详解
  • Spring Boot整合Druid与Dynamic-Datasource多数据源安装:从错误到完美解决
  • 用 Perl 实现验证码图像识别
  • cnblog Test
  • Claude 封杀中国后,我终于找到了平替!
  • pandoc使用
  • Exp2-后门原理与实践
  • DirectX-Graphics-Samples
  • 数学之美感悟。
  • 十所高校角逐对话式AI任务机器人挑战赛
  • SCIM漏洞挖掘实战指南
  • 虚拟文件系统
  • 代码随想录算法训练营第十天 | leetcode 232 225 20 1047
  • 2025冲压件厂家权威推荐榜:冲压件/新能源冲压件/光伏冲压件/精密冲压件/异形冲压件/五金冲压件/铝冲压件/汽配冲压件/不锈钢冲压件/家具冲压件厂家公司精密制造与品质保障实力之选
  • 简单搭建Ajax基础应用
  • 修改注册表,实现电脑小键盘开机自启(NumLock灯常亮)
  • 完整教程:nav2笔记-250603
  • 点云的遮挡剔除
  • 自制带得分和推荐走法的象棋视频
  • 深入解析:展会聚焦丨漫途科技亮相2025西北水务博览会!