[loj2863]组合动作】的更多相关文章

先用两次猜出第一个字符,后面就不会出现这个字符了 (我们假设这个字符是c0,其余三种字符分别是c1.c2和c3) ,然后考虑已知s的前i个字符(不妨就s),来推出后面的字符 询问:s+c1和s+c2,如果不是就是c3了,期望是5/3n次的 询问:s+c1+s+c2+c1+s+c2+c2+s+c2+c3(很神奇) 如果长度是i+2,那么就是c2:如果长度是i+1,那么就是c1:否则就是c3 然而s的长度是4i+7的,当|s|=n-1,是4n+3,需要第一种做法,最多2次 那么最坏的次数是2+n-2…
动作往往不是单一,而是复杂的组合.我们可以按照一定的次序将上述基本动作组合起来,形成连贯的一套组合动作.组合动作包括以下几类:顺序.并列.有限次数重复.无限次数重复.反动作和动画.动画我们会在下一节介绍,本节我们重点顺序.并列.有限次数重复.无限次数重复和反动 下面我们通过一个实例介绍一下组合动作的使用,这个实例如下图所示,下图是一个操作菜单场景,选择菜单可以进入到下图动作场景,在下图动作场景中点击Go按钮可以执行我们选择的动作效果,点击Back按钮可以返回到菜单场景. 下面我们再看看具体的程序…
题目描述 你在玩一个动作游戏.游戏控制器有 \(4\) 个按键,A.B.X 和 Y.在游戏中,你用组合动作来赚金币.你可以依次按这些按键来完成一个组合动作. 这个游戏有一个隐藏的按键序列,可以表示为由这 \(4\) 个字符组成的串 \(S\) .你并不知道这个串 \(S\) ,但是你知道它的长度为 \(N\) . 你还知道,\(S\) 的首字符不会在串中重复出现. 例如,\(S\) 可以是"ABXYY"或者"XYYAA",但不能是"AAAAA"或…
IOI2018 组合动作 UOJ 首先显然可以两次试出首字母 考虑增量构造 假设首字母为A,且已经试出前i个字母得到的串s 我们考虑press这样一个串s+BB+s+BX+s+BY+s+XA 首先这个串长不超过4N 其次由于首字母不重,返回的ans只会等于i+2,i+1,i三者中的一个 如果是i+2,那么显然可以确定第i+1个字母为B,因为XA一定不会产生2的贡献(A是首字母) 如果是i+1,那么第i+1个字母一定是X 如果是i,那么第i+1个字母一定是Y 剩下首字母为B,X,Y的情况类似构造…
原文链接https://www.cnblogs.com/zhouzhendong/p/IOI2018Day1T1.html 题解 首先二分一下,花费2次操作求出第一位的字符. 假设第一个字符是 Y,答案字符串的长度为 i-1 的前缀是 S,我们考虑如何只花费1次询问得到下一个字符. press(SAA,SAB,SAX,SB) - (i-1) 如果是 0 ,那么下一个字符是 X 如果是 1 ,那么下一个字符是 B 如果是 2 ,那么下一个字符是 A 最后一个字符花费 2次操作暴力询问即可. 这样刚…
题目连接: [IOI2018]combo 题目大意:有一个未知的长度为n的字符串$T$,只包含$A,B,X,Y$四个字符且首字母只出现一次,每一次你可以询问一个长度不超过$4n$的字符串$S$,交互库会返回$S$的子串与$T$的前缀的最大公共长度,要求在不超过$n+2$次询问后获得$T$串. 首先首字母只出现一次,我们可以先搞清首字母是什么. 如果一个一个试需要三次,但如果我们二分询问就只需要两次. 具体来说第一次询问$AB$,如果返回$1$则询问$A$,否则询问$X$. 得到首字母之后我们可以…
题目链接 通过两次可以先确定首字母.然后还剩下\(n-1\)位,之后每一位只有三种可能. 最简单的方法是每次确定一位,通过两次询问显然可以确定.但是只能一次询问. 首字母只会出现一次,即我们可以将串分割成\(4\)个进行一次询问.我们是可以一次询问确定一位的. 比如:首字母为\(a\),其它字母为\(bcd\),\(ans\)为已确定的前\(i-1\)位,则询问\(ans+bb+ans+bc+ans+bd+ans+c\),就能确定\(i\)了. 这样第\(n\)位需要能单独判断,可以直接用两次.…
题目链接 IOI的签到题感觉比NOI的签到题要简单啊,至少NOI同步赛我没有签到成功…… 其实这个题还是挺妙妙的,如果能够从题目出发,利用好限制,应该是可以想到的做法的. 接下来开始讲解具体的做法: 题目中有一个重要的限制就是答案序列首字母不会出现多次,这意味着当我们知道首字母后,接下来序列中的候选字符就只剩下$3$个了,以及我们可以在一个询问中用首字母来分割多个你想要知道的字符串. 很显然我们可以用二分找到首字母,这将花费$2$次询问机会.方便起见,我们把首字母定为$a$,剩下的$3$个字符分…
还是自己水平不够,想了两天没想出来--(然后我就被其他人吊打了) 这种题目看了题解就秒会,自己想就想不出来-- 下面是我的心路历程(我就在想出来又叉掉的不断循环中度过--) 开始把题目看成了查询限制 \(2N\) 长度,然后怎么也不会做,看看题,发现是 \(4N\) (然而还是不会做) 首先一个很显然的想法,就是先两步找出第一个,然后后面的每个都用一步.最后一位可能要多耗费一个.此时总步数正好是 \(N + 2\). 然后重点就在中间的了. 我们记剩下来的字符为 \(A, B, C\),当前处理…
--> 移动鼠标到指定位置(先触发onMouseOver动作)        Actions action = new Actions(driver);        WebElement theRow = page.getInvisibleElement();        action.moveToElement(theRow).perform();        page.getInvisibleElement().click(); --> Ctrl + LeftClick(组合动作) …