CF 1025C Plasticine zebra】的更多相关文章

昨晚忘记判只有一个字符的情况fst了呜呜呜 挺有趣的题,昨晚连刚带猜弄出结论 考虑答案的取值,最优答案可能是一个后缀,或者是一个前缀,或者是一个后缀加上前缀 那么翻转之后最优答案的可选值就有了1的前缀+n的后缀 对于一个合法的zebra串,无论怎么翻转都不会影响他的取值,所以预处理一遍扫过去找答案即可. 强烈谴责CF昨晚的数学大赛pretest数据太水 Code: #include <cstdio> #include <cstring> using namespace std; ;…
C. Plasticine zebra time limit per test 1 second memory limit per test 256 megabytes input standard input output standard output Is there anything better than going to the zoo after a tiresome week at work? No wonder Grisha feels the same while spend…
Plasticine zebra time limit per test 1 second memory limit per test 256 megabytes input standard input output standard output Is there anything better than going to the zoo after a tiresome week at work? No wonder Grisha feels the same while spending…
题意: 是输入一个只有'w','b'的字符串,可以对他的任意位置切割成两个子串,切割后的右边的子串翻转后再和左边的子串拼起来会得到一个新的字符串,操作次数不限,问能得到的字符串中wb交替出现的最大的长度是多少 分析:其实只要将原有的字符串进行复制拼接然后扫描一遍得出结果就可以了,为什么呢 ? 其实呀只要这样操作无论怎样操作反转 ,都可以在s+s这个串里找到相同的子串,也就可以大胆的得出这个玄学的结论 . 不加一证明,表示不会,如果不相信可以手动操作一番 #include<bits/stdc++.…
问了学长,感觉还是很迷啊,不过懂了个大概,这个翻转操作,实质不就是在序列后面加上前面部分比如 bw | wwbwwbw  操作过后 wbwbwwbww 而 bw | wwbwwbwbw 这样我们就知道这样的实质了,因此我们只需要把序列再次倍增,求最长的间隔序列即可 #include<iostream> #include<string.h> #include<stdio.h> #include<algorithm> #include<map> us…
给你一个长度为 \(\left|s\right|\) 的01串 \(s\) ,每次操作你可以任选一个 \(k\) ,使01串的 \([1,k]\) 和 \((k,\left|s\right|]\) 分别翻转(其中一个区间可以为空),求经过任意次操作后能得到的最长的01交替出现的子串的长度.(实际题目中01用w和b代替) #include<cstdio> #include<string> #include<cstdlib> #include<cmath> #i…
题意:给你一段字符串,可以选择任意多的位置,每个位置会反转两边的字符串,问交错的字符串最长是多长? 思路:找规律,仔细分析样例1.假设位置为 1 2 3 4 5 6 7 8 9,反转之后会发现答案是7 8 9 1 2 3 4 5 6 ,其中答案串是7 8 9 1 2,所以可以把原字符串复制一份粘在原字符串后面,找最长的交错串即可. #include<cstdio> #include<algorithm> #include<cstring> #include<ios…
题意: n<=1e5 思路:可以证明答案即为极长交替出现的串长度之和 需要注意其实这个串是一个环,复制后再做 #include<cstdio> #include<cstring> #include<string> #include<cmath> #include<iostream> #include<algorithm> #include<map> #include<set> #include<qu…
思路: 不要被骗了,这个操作实际上tm是在循环移位. 实现: #include <bits/stdc++.h> using namespace std; int main() { string s; while (cin >> s) { , cnt = , pos = -; ; i < n - ; i++) { ]) { maxn = max(maxn, cnt); cnt = ; pos = i; } else cnt++; } maxn = max(maxn, cnt);…
传送门:>Here< 从来没打过\(CF\)(由于太晚了)-- 不知道开学了以后有没有机会能够熬夜打几场,毕竟到现在为止都是\(unrated\)好尴尬啊~ 今天早上打了几题前几天的比赛题-- A. \(Doggo \ Recoloring\) 此题应当是签到题,但我还是傻了很久.很容易发现只要有任意一种狗的颜色超过\(1\),那么这种狗就是可以变色的.那么它永远只需要变为任意一个与他相邻的狗的颜色,数量不会减少反而增多.因此可以不停变下去.于是我们只需要统计一下是否有一种颜色是大于等于两个的…