CF 1025C Plasticine zebra
昨晚忘记判只有一个字符的情况fst了呜呜呜
挺有趣的题,昨晚连刚带猜弄出结论
考虑答案的取值,最优答案可能是一个后缀,或者是一个前缀,或者是一个后缀加上前缀
那么翻转之后最优答案的可选值就有了1的前缀+n的后缀
对于一个合法的zebra串,无论怎么翻转都不会影响他的取值,所以预处理一遍扫过去找答案即可。
强烈谴责CF昨晚的数学大赛pretest数据太水
Code:
#include <cstdio>
#include <cstring>
using namespace std; const int N = 1e5 + ; int n, a[N], suml[N], sumr[N];
char s[N]; inline int max(int x, int y) {
return x > y ? x : y;
} inline int min(int x, int y) {
return x > y ? y : x;
} int main() {
scanf("%s", s + );
n = strlen(s + );
for(int i = ; i <= n; i++) a[i] = s[i] - ''; for(int i = ; i <= n; i++)
if(a[i] != a[i - ]) sumr[i] = sumr[i - ] + ;
else sumr[i] = ;
for(int i = n; i >= ; i--)
if(a[i] != a[i + ]) suml[i] = suml[i + ] + ;
else suml[i] = ; int ans = ;
for(int i = ; i < n; i++) {
if(a[i] != a[i + ])
ans = max(sumr[i] + suml[i + ], ans);
if(a[] != a[n])
ans = max(min(sumr[n], n - i) + min(suml[], i), ans);
ans = max(ans, suml[i]);
ans = max(ans, sumr[i + ]);
} printf("%d\n", max(ans, ));
return ;
}
CF 1025C Plasticine zebra的更多相关文章
- codeforces#505--C Plasticine Zebra
C. Plasticine zebra time limit per test 1 second memory limit per test 256 megabytes input standard ...
- CF1025C Plasticine zebra 思维 字符串
Plasticine zebra time limit per test 1 second memory limit per test 256 megabytes input standard inp ...
- CF C. Plasticine zebra (思维)
题意: 是输入一个只有'w','b'的字符串,可以对他的任意位置切割成两个子串,切割后的右边的子串翻转后再和左边的子串拼起来会得到一个新的字符串,操作次数不限,问能得到的字符串中wb交替出现的最大的长 ...
- Codeforces Round #505 (rated, Div. 1 + Div. 2, based on VK Cup 2018 Final)-C. Plasticine zebra
问了学长,感觉还是很迷啊,不过懂了个大概,这个翻转操作,实质不就是在序列后面加上前面部分比如 bw | wwbwwbw 操作过后 wbwbwwbww 而 bw | wwbwwbwbw 这样我们就知道 ...
- CF1025C Plasticine zebra【环状字符串/思维】
给你一个长度为 \(\left|s\right|\) 的01串 \(s\) ,每次操作你可以任选一个 \(k\) ,使01串的 \([1,k]\) 和 \((k,\left|s\right|]\) 分 ...
- Codeforces #505(div1+div2) C Plasticine zebra
题意:给你一段字符串,可以选择任意多的位置,每个位置会反转两边的字符串,问交错的字符串最长是多长? 思路:找规律,仔细分析样例1.假设位置为 1 2 3 4 5 6 7 8 9,反转之后会发现答案是7 ...
- 【CF1025C】Plasticine zebra(模拟)
题意: n<=1e5 思路:可以证明答案即为极长交替出现的串长度之和 需要注意其实这个串是一个环,复制后再做 #include<cstdio> #include<cstring ...
- CF1025C Plasticine zebra
思路: 不要被骗了,这个操作实际上tm是在循环移位. 实现: #include <bits/stdc++.h> using namespace std; int main() { stri ...
- Codeforces Round #505 Div. 1 + Div. 2
传送门:>Here< 从来没打过\(CF\)(由于太晚了)-- 不知道开学了以后有没有机会能够熬夜打几场,毕竟到现在为止都是\(unrated\)好尴尬啊~ 今天早上打了几题前几天的比赛题 ...
随机推荐
- InnoDB参数详解
1.查询5.5版本的InnoDB参数并注释:[root@localhost etc]# grep -i innodb my.cnf; t_innodb; otherwise, slaves may d ...
- Jtable实现
package database; import java.util.Vector; import javax.swing.table.AbstractTableModel; public class ...
- 皮肤和DLL和图片等项目文件完全整合到exe中
C#开发的程序原生界面实在是太丑了,自己又没有美化天赋,所以只能使用皮肤控件了,网上找到了IrisSkin2,包含一个.dll文件和若干ssk后缀的皮肤文件,代码其实很简单的.但是后来发现个问题,就是 ...
- Linux sed 批量替换多个文件中的字符串【转载】
原文网址:http://blog.sina.com.cn/s/blog_730edb930100qzz5.html 比如,要将目录/modules下面所有文件中的zhangsan都修改成lis ...
- [转载]centos下yum安装samba及配置
centos下yum安装samba及配置 在我们使用 Windows 作为客户机的时候,通常有文件.打印共享的需求.作为Windows 网络功能之一,通常可以在 Windows 客户机之间通过Wind ...
- java代码split分割数字类
总结:正则表达式-- package com.c2; //写一个spli的用法,数字类 ===分割字符串 public class yqw { public static void main(Stri ...
- 我和domino不得不说的故事(连载2016-3-2)
1.关于NotesViewEntry 注意:通过NotesViewEntry获取某列的值时,若该列的值为@IsExpandable or @DocNumber 或者是常量时,将不会显示. Set en ...
- Cassandra 学习一
一 什么是Cassandra? Cassandra 是一个来自 Apache 的分布式数据库,具有高度可扩展性,可用于管理大量的结构化数据.它提供了高可用性,没有单点故障. 是一种NoSQL类型的数 ...
- virtualbox下安装的纯净版centOS7,无法访问外网
virtualbox下安装的纯净版centOS7,网络设置如下: 需要在/etc/sysconfig/network-scripts/下编辑ifcfg-enp0s3,其中,NOBOOT设置成也是,就可 ...
- list array解析(总算清楚一点了)
# -*- coding: utf-8 -*- """ Created on Tue Aug 09 23:04:51 2016 @author: Administrato ...