Atcoder 500 Wide Flip 思维
来源:互联网 发布:白贺翔 网络架构师 编辑:程序博客网 时间:2024/05/01 19:45
题意:给出一个只包含01得字符串s,操作:将长度至少为k的区间内的字符反转,0<->1互换.
|s|<=1e5.找到最大的k 使得可以通过若干次操作将s变为全0.
二分最大的k 样例 010 k=2时 无法判定.
假如第i位和第i+1位不同 那么i和i+1不能同时翻转 K的上界<=max(i,n-i).(i=1..n s[i]!=s[i+1])
当i<=n-k 翻转区间[i,n],[i+1,n]
当i>k 翻转[1,i],[1,i-1] 使得第i位改变 其余不变.
|s|<=1e5.找到最大的k 使得可以通过若干次操作将s变为全0.
二分最大的k 样例 010 k=2时 无法判定.
假如第i位和第i+1位不同 那么i和i+1不能同时翻转 K的上界<=max(i,n-i).(i=1..n s[i]!=s[i+1])
当i<=n-k 翻转区间[i,n],[i+1,n]
当i>k 翻转[1,i],[1,i-1] 使得第i位改变 其余不变.
[n-k+1,k]的字符都相同.(否则K的上界减小).
#include <bits/stdc++.h>using namespace std;typedef long long ll;const int N=2e5+5;char s[N]; int main(){scanf("%s",s+1);int n=strlen(s+1);int res=n;for(int i=1;i<n;i++){if(s[i]!=s[i+1])res=min(res,max(i,n-i));}cout<<res<<endl;return 0;}
阅读全文
0 0
- Atcoder 500 Wide Flip 思维
- atcoder agc001F Wide Swap
- AtCoder:Connected?(思维)
- 简单思维 AtCoder
- AtCoder:AtCoder Group Contest(思维)
- AtCoder AGC001F Wide Swap && NOIP2017模拟赛10.8T2
- Atcoder:TrBBnsformBBtion(思维 & 字符串)
- AtCoder:Big Array(思维)
- AtCoder:pushpush(STL & 思维)
- AtCoder:11(数论 & 思维)
- AtCoder:Median Pyramid Hard(思维)
- AtCoder:Median Pyramid Easy(思维)
- AtCoder:Tautonym Puzzle(思维 & 构造)
- AtCoder:Hamiltonish Path(思维 & dfs)
- AtCoder:Colorful Balls(思维 & 数论)
- AtCoder:guruguru(思维 & 差分)
- AtCoder:Fennec VS. Snuke(dfs & 思维)
- Atcoder-Sports Festival(二分+暴力+思维+贪心)
- MAC搭配移动硬盘装win10
- python爬虫之HTMLParser
- NAND flash和NOR flash的区别详解
- LeetCode 746. Min Cost Climbing Stairs(动态规划)
- 图像分割(二)边界跟踪法
- Atcoder 500 Wide Flip 思维
- 我们常用的一些命令在cmd下显示不是内部命令,如何解决?
- Android 获取屏幕指定坐标的颜色
- [Java Swing图形界面开发与案例详解.pdf 免费下载
- caffe 加权交叉熵损失函数层(weighted sigmoid_cross_entropy_loss_layer)添加方法
- @result参数传递方法
- Android 8.0系统源码分析--应用进程启动过程分析
- logistic回归
- UDP实现的简易双向聊天功能