Codeforces Round #825 (Div. 2)D. Equal Binary Subsequences

Codeforces Round #825 (Div. 2)D. Equal Binary Subsequences

题意

给定一个长度为2n的01字符串s。你可以对其中一个子序列进行向右旋转一个位置。

问能否将字符串分割成两个相等的序列。如果不可以,输出-1,否则,输出你选择旋转的子序列。以及分割后第一个序列的索引。

题解

有趣的构造,奇偶考虑,如果分成的两个序列,一个全是原来奇数位上的字符,一个全是偶数位上的字符,那么如果两个序列相等,字符串就要满足 S2n=Ssn+1

我们目标是操作之后,字符串满足要求

对原来的字符两两匹配,(2n,2n+1) 如果两个相等,就不管,把所有不相等的取出来,就会形如 (10),(01),(01),(01) ,每个对字符中取一个,构成0101交替的序列,即第一对取 0 ,第二对取 1 ,第三对取 0 …。将这个序列进行一次右旋转,则全部的对都变成相同的了。

posted @   缙云山车神  阅读(87)  评论(1编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示