【QED】原始部落的试验

2023-12-10 04:28
文章标签 试验 qed 原始部落

本文主要是介绍【QED】原始部落的试验,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 题目描述
  • 交互格式
  • 测试样例
    • 样例说明
    • 附录
  • 思路
  • 核心代码

题目描述

注:这是一道交互题。

公元前2077年,X部落的酋长正在谋划升级改造他们的投石车。现用的投石车杀伤力实在太弱,他希望换用更大的石头,以确保在部落冲突中能够击毁敌方的城墙。

根据"力大砖飞"的信仰,他坚信,石头体积越大,杀伤力越强;若是使用大小为 1 0 6 10^6 106 的石头,则必然能够摧毁敌方城墙。然而,为了节约成本,他又希望使用的石头体积尽可能地小。

现在他将这个问题交给了作为部落研发主管的你,你需要通过试验替他找出,在能够摧毁敌方城墙的前提下,可以选用的石头体积最小为多少?由于研发经费有限,你只能进行最多 24 24 24 次试验。你需要在若干次试验后,向酋长提交你的答案。

由于原始部落加工精度有限,你只能选用体积大小为正整数的石头,因此,你也只需将答案精确到个位数即可。

交互格式

这是一道交互题。请务必在每次输出后 换行 \textbf{换行} 换行 刷新输出缓冲区 \textbf{刷新输出缓冲区} 刷新输出缓冲区。刷新缓冲区的一种可行代码将会在题目末尾给出。

你需要以? x的格式输出,以代表选用大小为 x x x 的石头进行一次试验。你需要确保每次试验的 x x x 是正整数且满足 1 ≤ x ≤ 1 0 6 1 \leq x \leq 10^6 1x106,你最多能够进行 24 24 24 次这样的输出。

紧随其后,你需要从标准输入中读入一个字符串。该字符串代表了本次试验的结果,它只可能是FailedSucceeded。前者代表大小为 x x x的石头未能摧毁敌方城墙,后者代表大小为 x x x的石头成功摧毁了敌方城墙。

在你认为能够确认答案后,你可以随时以! x的格式输出。其中 x x x 代表你的答案,即在能够摧毁敌方城墙的前提下,可以选用的最小石头体积。该次输出后不会有任何输入,你务必在该次输出后立即结束你的程序。

测试样例

FailedFailedFailedFailedFailedFailedFailedFailedFailedFailedFailedFailedFailedFailedFailedFailedFailedFailedFailedSucceededSucceededSucceededSucceededSucceeded
? 1? 2? 3? 4? 5? 6? 7? 8? 9? 10? 11? 12? 13? 14? 15? 16? 17? 18? 19? 20? 21? 22? 23? 24! 20

样例说明

设最终答案为 a n s ans ans,上述样例展示了 a n s = 20 ans=20 ans=20 时一种可行的交互示例,仅作展示输入输出格式用,并不代表正确的解题思路。

题目保证最终答案 a n s ans ans 满足 1 ≤ a n s ≤ 1 0 6 1 \leq ans \leq 10^6 1ans106

附录

请务必在每次输出后换行并刷新输出缓冲区,否则可能会出现错误。

各语言中刷新输出缓冲区的代码语句如下:

  • 对于 C:fflush(stdout);
  • 对于 C++:std::cout<<std::flush;
  • 对于 Java:System.out.flush();
  • 对于 Python:
    import sys           #在源代码首行添加此语句
    sys.stdout.flush()   #在需要刷新缓冲区时使用
    

思路

这道题目就是要一个经典的二分查找,只不过是一个交互类型的题目,注意每一次输出之后一定要输入对应的语句刷新缓冲区

核心代码

void solve()
{int left=1,right=1e6;string s;while(left<right){int mid=(left+right)>>1;printf("? %d\n",mid);std::cout<<std::flush;cin>>s;if(s[0]=='S')right=mid;else if(s[0]=='F')left=mid+1;}cout<<"! "<<left<<endl;
}

这篇关于【QED】原始部落的试验的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/476009

相关文章

电磁兼容(EMC):群脉冲抗扰度试验深度解读(四)

目录 1. 电快速瞬变脉冲群是如何产生的? 2. 尖峰幅度 3. 上升时间 4. 尖峰持续时间 5. 尖峰重复率 6. 每个尖峰脉冲群的个数和脉冲群持续时间 7. 总结 1. 电快速瞬变脉冲群是如何产生的?        电快速瞬变脉冲群是由于切换感性负载而产生的。该切换瞬变通常被称为快速瞬变,可从以下几个方面来描述:        脉冲群的持续时间:主要由切换前存储

2024年【电气试验】找解析及电气试验模拟考试

题库来源:安全生产模拟考试一点通公众号小程序 电气试验找解析根据新电气试验考试大纲要求,安全生产模拟考试一点通将电气试验模拟考试试题进行汇编,组成一套电气试验全真模拟考试试题,学员可通过电气试验模拟考试全真模拟,进行电气试验自测。 1、【单选题】一般情况下35kV及以上且容量在4000kVA及以上的电力变压器,在常温下吸收比应不小于()。(  B  ) A、.1 B、.1.3 C

概率统计Python计算:双因素无重复试验方差分析

双因素无重复试验方差分析的数据模型 X X X是一个 r × s r\times s r×s的矩阵, X i j X_{ij} Xij​~ N ( μ i j , σ 2 ) N(\mu_{ij},\sigma^2) N(μij​,σ2)。令 X ‾ = 1 r s ∑ i = 1 r ∑ j = 1 s X i j \overline{X}=\frac{1}{rs}\sum\limits_{i

概率统计Python计算:双因素等重复试验方差分析

双因素等重复试验的数据模型 X X X是一个结构为 r × s × t r\times s\times t r×s×t的3-维矩阵(张量),其中 X i j k X_{ijk} Xijk​取自于总体指标 N ( μ i j , σ 2 ) N(\mu_{ij},\sigma^2) N(μij​,σ2), i = 1 , 2 , ⋯ , r , j = 1 , 2 , ⋯ , s , k = 1

可以再mac上使用的svn客户端-----试验成功可用

已经安装了的小伙伴请直接看三步骤 一、下载地址 CornerStoneV2.6:http://pan.baidu.com/s/1qWEsEbM密码:www.macx.cn 二、安装破解方法 1、安装之前将本机日期改为未来的某个日期,然后双击安装,按照指定流程操作即可 2、如果安装前忘记改日期,则只能通过修改plist的方式进行破解     a.显示系统隐藏文件,打开终端,

简单的mail发送邮件里面的更多东西-postfix-exim MTA试验以及linux下使用mail发送邮件的简单实现

一、简单的mail发送邮件里面的更多东西-postfix-exim MTA试验      publish:September 27, 2018 -Thursday mail发送邮件应该是一个常用的东西,但是从简单的东西切入,也许你会有更多的收获。今天再看了看mail发邮件的东西,真的一个很小的知识点但要弄透不下功夫真的是不行的。先了解下面两个东西: 邮件用户代理(MUA,Mail User A

功率半导体静态试验测试方法

VCES 集电极-发射极饱和电压 VCES(Voltage Collector-Emitter Saturation,集电极-发射极饱和电压)是指晶体管(通常指双极型晶体管,如BJT)在饱和工作区时集电极与发射极之间的电压。 测量VCES的过程通常如下: 准备设备与连接 •使用适当的直流电源为晶体管的基极、集电极和发射极供电。 •使用电流源为基极提供一定的驱动电流(IB)。 •连接万用表或示

SN74HC14+陶瓷振子做振荡器的试验初步

本想试验一下465khz用SN74HC14做振荡器,实验了很多次,无法起振。 用1M,4M的也无法起振,用到10Mhz时,能起振,用小频谱仪看,谐波相当丰富,从10M到300Mhz,当然我是通过实验在1脚插了一根杜邦线,辐射能力加大,但实际辐射距离不到1米。真的可以用FM收音机听到静噪声,而且锁定灯能亮。有偶次和奇次谐波,证明它输出的是非50%的方波信号。 注意,当1-2端的电阻比较小时,

[FFmpeg学习]windows环境sdl播放音频试验

参考资料: FFmpeg和SDL2播放mp4_sdl 播放mp4 声音-CSDN博客 SimplePlayer/SimplePlayer.c at master · David1840/SimplePlayer · GitHub 在前面的学习中,通过获得的AVFrame进行了播放画面, [FFmpeg学习]初级的SDL播放mp4测试-CSDN博客 播放音频原理类似,也是获取AVFra

GCC对编译的优化试验

通过这两天的不断试验,研究反汇编代码,感觉GCC对编译的优化还是非常强的 1:局部变量及语句优化:         函数内的,空局部变量,空语句都会被优化掉,不占用任何栈空间和代码空间 2:局部变量一定占用栈空间吗?         众所周知,局部变量实际上是栈里存储的,如果局部变量都是基本数据类型,且都不大,会用寄存器代替,直接运算,不开栈空间。