LOJ.2863.[IOI2018]组合动作(交互)

时间:2022-10-29 22:16:24

题目链接

通过两次可以先确定首字母。然后还剩下\(n-1\)位,之后每一位只有三种可能。

最简单的方法是每次确定一位,通过两次询问显然可以确定。但是只能一次询问。

首字母只会出现一次,即我们可以将串分割成\(4\)个进行一次询问。我们是可以一次询问确定一位的。

比如:首字母为\(a\),其它字母为\(bcd\),\(ans\)为已确定的前\(i-1\)位,则询问\(ans+bb+ans+bc+ans+bd+ans+c\),就能确定\(i\)了。

这样第\(n\)位需要能单独判断,可以直接用两次。

那么总询问次数为:\(2+n-2+2=n+2\)。

#include <string>
#include <algorithm>
#include "combo.h" std::string guess_sequence(int n)
{
char a,b,c,d;
std::string ans="";
if(press("AB")) c='X', d='Y', press("A")?(b='B',a='A'):(b='A',a='B');
else c='A', d='B', press("X")?(b='Y',a='X'):(b='X',a='Y');
ans=a;
if(n==1) return ans;//!
for(int i=1,t; i<n-1; ++i)
{
if((t=press(ans+b+b+ans+b+c+ans+b+d+ans+c))==i) ans+=d;
else if(t==i+1) ans+=c;
else ans+=b;
}
if(press(ans+b)==n) ans+=b;
else if(press(ans+c)==n) ans+=c;
else ans+=d;
return ans;
}

LOJ.2863.[IOI2018]组合动作(交互)的更多相关文章

  1. &lbrack;IOI2018&rsqb;组合动作

    IOI2018 组合动作 UOJ 首先显然可以两次试出首字母 考虑增量构造 假设首字母为A,且已经试出前i个字母得到的串s 我们考虑press这样一个串s+BB+s+BX+s+BY+s+XA 首先这个 ...

  2. &lbrack;IOI2018&rsqb;组合动作——构造

    题目连接: [IOI2018]combo 题目大意:有一个未知的长度为n的字符串$T$,只包含$A,B,X,Y$四个字符且首字母只出现一次,每一次你可以询问一个长度不超过$4n$的字符串$S$,交互库 ...

  3. 【刷题】LOJ 2863 「IOI2018」组合动作

    题目描述 你在玩一个动作游戏.游戏控制器有 \(4\) 个按键,A.B.X 和 Y.在游戏中,你用组合动作来赚金币.你可以依次按这些按键来完成一个组合动作. 这个游戏有一个隐藏的按键序列,可以表示为由 ...

  4. Cocos2d-x手机游戏开发中-组合动作

    动作往往不是单一,而是复杂的组合.我们可以按照一定的次序将上述基本动作组合起来,形成连贯的一套组合动作.组合动作包括以下几类:顺序.并列.有限次数重复.无限次数重复.反动作和动画.动画我们会在下一节介 ...

  5. UOJ&num;405&period; 【IOI2018】组合动作

    原文链接https://www.cnblogs.com/zhouzhendong/p/IOI2018Day1T1.html 题解 首先二分一下,花费2次操作求出第一位的字符. 假设第一个字符是 Y,答 ...

  6. 【IOI2018】组合动作

    还是自己水平不够,想了两天没想出来--(然后我就被其他人吊打了) 这种题目看了题解就秒会,自己想就想不出来-- 下面是我的心路历程(我就在想出来又叉掉的不断循环中度过--) 开始把题目看成了查询限制 ...

  7. LOJ&period;2865&period;&lbrack;IOI2018&rsqb;狼人&lpar;Kruskal重构树 主席树&rpar;

    LOJ 洛谷 这题不就是Peaks(加强版)或者归程么..这算是\(IOI2018\)撞上\(NOI2018\)的题了? \(Kruskal\)重构树(具体是所有点按从小到大/从大到小的顺序,依次加入 ...

  8. LOJ&period;2864&period;&lbrack;IOI2018&rsqb;排座位&lpar;线段树&rpar;

    LOJ 洛谷 先令编号从\(1\)开始.我们要求\([1,i]\)这些数字能否构成一个矩形. 考虑能否用线段树维护,让每个叶子节点\(i\)表示前\(i\)个数能否构成矩形. 一种方法是维护前\(i\ ...

  9. LOJ &num;6358 前夕 &lpar;组合计数、容斥原理&rpar;

    题目链接 https://loj.ac/problem/6358 (另外一道\(4\)的倍数题左转loj #6356) 题意 题面写得就像一坨X一样,我来复述一下吧. 有\(N\)个元素构成的集合,要 ...

随机推荐

  1. PHP内核研究&lpar;内存管理1&rpar;

    PHP内存管理 PHP在5.3之前采用的是引用计数法 PHP在5.3之后采用了新的垃圾回收机制 操作系统在申请内存空间的时候回引发系统调用 在操作系统申请内存空间的时候,会将CPU从用户态切换到内核态 ...

  2. XML EXtensible Markup Language

    1.基础:XML设计被用来传输和存储数据:全称是EXtensible Markup Language.它的设计宗旨是传输数据,而不是显示数据.xml的标签没有被预定义,需要由用户自行定义标签.xml被 ...

  3. linux下查看cpu物理个数和逻辑个数 - chw1989的专栏 - 博客频道 - CSDN&period;NET

    body { font-family: 微软雅黑,"Microsoft YaHei", Georgia,Helvetica,Arial,sans-serif,宋体, PMingLi ...

  4. 源码&lpar;07&rpar; -- java&period;util&period;Iterator&lt&semi;E&gt&semi;

    java.util.Iterator<E> 源码分析(JDK1.7) ----------------------------------------------------------- ...

  5. 吐槽一下--最近多次在腾讯以及万科的面试经历---Web前端与PHP后端开发

    前端时间,由于职业发展等,想要换一份工作,于是投递了一些国内还算知名的公司,列如: 腾讯.万科之类的: (1)首先说一下这两家公司的反馈情况: 腾讯:投递到反馈,(初次人事打电话沟通)大约1周,三次不 ...

  6. 51Nod1039 N&Hat;3 Mod P 数论 原根 BSGS

    原文链接https://www.cnblogs.com/zhouzhendong/p/51Nod1039.html 题目传送门 - 51Nod1039 题意 题解 这题我用求高次剩余的做法,要卡常数. ...

  7. exercise 1-6

    [买菜] package Practice06; import java.io.File; import java.io.FileNotFoundException; import java.util ...

  8. spring cloud学习&lpar;四&rpar; 动态路由

    Zuul的主要功能是路由和过滤器.路由功能是微服务的一部分,zuul实现了负载均衡. 1.1 新建模块zuul pom.xml <?xml version="1.0" enc ...

  9. apache spark kubernets 部署试用

    spark 是一个不错的平台,支持rdd 分析stream 机器学习... 以下为使用kubernetes 部署的说明,以及注意的地方 具体的容器镜像使用别人已经构建好的 deploy yaml 文件 ...

  10. kubernetes 与LVM的结合

    本文主要介绍k8s与LVM结合使用的场景,在原生的k8s中对于本地存储提供了hostPath与emptyDir两种volme,hostPath是直接将文件存储在本地主机上,存在的问题是无法进行quot ...