首页 > 其他分享 >CF1117E Decypher the String题解

CF1117E Decypher the String题解

时间:2024-10-07 19:44:06浏览次数:6  
标签:25 CF1117E Decypher 题解 pos 字符串 操作 sim equiv

传送门

神奇的题。

这是一道交互题。
给定一个字符串 \(s\) , 我们拥有若干操作 , 但是你不知道 , 第 \(i\) 个操作形如 \(a_i,b_i\) 表示交换字符串 \(s\) 中的第 \(a_i\) 位和 \(a_j\) 位。
比如操作序列依次为 \((1,2),(2,3)\) ,给定字符串为 xyz
那么我们执行第一次操作后字符串变为 yxz ,而执行第\(3\)次操作后则变为 yzx
我们已经告知了你完成所有操作后的字符串序列,你需要还原其。
不过,你可以询问至多 \(3\) 次,每次询问你需要给出一个字符串,其长度与给定的字符串相等,然后我们会告诉你操作后的字符串序列。
数据范围:保证\(|s|\le 10^4\)。
输出答案需要加上 !
查询操作则需要加上 ?


首先我们直接忽略它的操作顺序。操作的结果可以看作给定一个数组 \(pos_i\),操作后的串第 \(i\) 个字符实际上是原串的第 \(pos_i\) 个字符。

这个构造过于神奇了,所以直接写。

第一次:询问串 \(q_1=R(a\sim z)\)。假设返回的串为 \(r_1\)。把 \(a\sim z\) 看作 \(0\sim 25\),若 \(r_1[i]=j\),则必有 \(pos_i\equiv j\pmod {26}\)。因为所有 \(j\) 都在原串 \(\bmod 26=j\) 的位置上。

第二次:询问串 \(q_2=R(a\sim y)\),得到 \(pos_i\equiv j'\pmod {25}\)。

第三次:询问串 \(q_3=R(a\sim w)\),得到 \(pos_i\equiv j''\pmod {23}\)。

根据中国剩余定理,可以求出 \(pos_i\equiv {26\times 25\times 23}\),因为 \(26\times 25\times 23>1000\),所以可以唯一确定 \(pos_i\),再倒回去还原即可。

标签:25,CF1117E,Decypher,题解,pos,字符串,操作,sim,equiv
From: https://www.cnblogs.com/FLY-lai/p/18450480

相关文章

  • 题解 QOJ2559【Endless Road】/ SS241006D【套路题】
    PetrozavodskWinter2022.Day2.KAISTContest+KOITST2021XXIIOpenCupnamedafterE.V.Pankratiev,GrandPrixofDaejeon题目描述现在有\(10^9\)个花盆,依次编号为\(1,2,\dots,10^{9}\)。给定\(n\)个二元组\(L_i,R_i(L_i<R_i)\),我们将进行\(n\)次以下操......
  • CF722F Cyclic Cipher 题解
    传送门给定\(n\)个数列,第\(i\)个数列包含\(k_i\)个不超过\(m\)的互不相同的正整数(从\(1\)开始标号)。每一秒将每个数列中的数左移一个位置(即将每个数的下标\(-1\),下标\(1\)的数下标变为\(k_i\)),并记录由每个数列的第一个数组成的序列。\(10^{100}\)秒过......
  • [NOIP2023] 双序列拓展 题解
    qaq首先我们考虑其实这个条件就是要满足\(f\)严格比\(g\)大或\(f\)严格比\(g\)小。在这里只讨论大于。然后考虑到对于一个\(i\)如果不满足,我们可以把对应数组向右移一位看是否满足,如果还是不满足就无解了。考虑对于现在满足的\(i\),我们可以分别把两个指针向右移一......
  • EGOI2024 简单题解
    Day1T1InfiniteRace由于只有重复超过一个人才肯定是跑过一圈的,所以只用用一个数组做标记就可以了,每超过一次就打上标记,否则去掉标记。T2Bouquet定义\(dp[i]\)为,以第\(i\)种郁金香结尾的选法中最大可选的郁金香数量,易得状态转移方程为:\(dp[i]=max{dep[j]}+1(j<l_i\le......
  • mysql登录遇到ERROR 1045问题解决方法
    遇到MySQL登录时出现 ERROR1045(访问被拒绝,用户名或密码错误),可以通过以下步骤来解决:1.确认用户名和密码检查用户名和密码:确认在连接数据库时输入的用户名和密码是否正确。尝试在命令行中连接数据库,确认是否能成功登录:bash mysql-uyour_username-p2.重......
  • 题解:AT_abc374_c [ABC374C] Separated Lunch
    无耻的广告更好的阅读体验~最近在搞个人博客博客园的差点忘了更了。已经沦落到在写这种水题题解了。题目翻译有\(n\)队人,每个队人数不同,把他们分成2组(同一队的不能拆开),使两组人数差距尽量小。形式化题意:有\(n\)个数,把它们分成两组,使两组和的差尽量小。说句闲话:感觉这......
  • P3527 MET-Meteors 题解
    Solution单次二分:二分时间,做这个时间前的所有操作,然后线性统计。注意到可以整体二分,直接整体二分是\(O(n\log^2n)\)。考虑扫描序列,用线段树维护每个时间段内该位置的增加值,差分一下可以实现。将这棵线段树持久化一下,一个国家所有位置同时二分即可\(O(n\logn)\),可惜空间太......
  • P3250 网络 题解
    Solution单次二分:问“重要度\(\gex\)的所有操作,且\(t\)时间点还存在的所有操作中,是否有不经过这个点的”整体二分:保持操作、询问按时间有序,即预先按时间排序,下传时保持有序;对于一次Solve,对于所有重要度\(\gemid+1\)的操作(加入、删除),考虑与询问按时间混合排序,然后依次......
  • P3215 括号修复 题解
    Statement维护一个括号序列,有以下操作:区间覆盖区间翻转区间反转(左括号变右括号,右括号变左括号)区间问最少改多少位能使括号序列合法,保证有解Solution单纯没想到答案怎么算。。。首先一段括号序,如果消除中间的所有匹配,最终一定形如))))(((,这个信息是可合并的设这时左括......
  • P5416 = UOJ 198 时空旅行 题解
    Statement一棵树,每个节点上有一个集合,每个儿子集合由父亲集合增加一个点\((x_i,c_i)\)或删除一个点得到。根节点集合为\(\{(0,0,0,c_0)\}\)多次询问,每次问\(u\)点的集合内,\(\min\{(x_i-x)^2+c_i\}\)Solution首先你认真读完题发现原题中\(y,z\)都是没用的然后离线DFS......