qduoj 79 翻转游戏(开关问题)
题目地址:点击打开链接
思路:
普通的方法从左到右枚举翻转n^2复杂度会超时。
用白书上的维护记录区间的翻转次数,可以达到nlogn复杂度。
代码:
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
const int maxn = 1e5+5;
char str[maxn];
int k, m, a[maxn], f[maxn];bool solve()
{memset(f, 0, sizeof(f));int res = 0, sum = 0, len = strlen(str);for(int i = 0; i < len; i++)a[i] = str[i]-'0';for(int i = 0; i+k-1 < len; i++){if((a[i]+sum)%2){res++;f[i] = 1;sum++;}if(i-k+1 >= 0)sum -= f[i-k+1];}for(int i = len-k+1; i < len; i++){if((a[i]+sum)%2) return 0;if(i-k+1 >= 0)sum -= f[i-k+1];}return res <= m;
}int main(void)
{int t;cin >> t;while(t--){scanf("%d%d", &k, &m);scanf(" %s", str);puts(solve() ? "YES" : "NO");}return 0;
}
qduoj 79 翻转游戏(开关问题)相关推荐
- 51nod-1337:翻转游戏
1337 翻转游戏 题目来源: TopCoder 基准时间限制:1 秒 空间限制:131072 KB 分值: 40 难度:4级算法题 收藏 关注 这个游戏与灯有关,有M只灯排成一行,编号为0,1, ...
- LeetCode 294. 翻转游戏 II(记忆化递归)
文章目录 1. 题目 2. 解题 1. 题目 你和朋友玩一个叫做「翻转游戏」的游戏, 游戏规则:给定一个只有 + 和 - 的字符串. 你和朋友轮流将 连续 的两个 "++" 反转成 ...
- LeetCode 293. 翻转游戏
文章目录 1. 题目 2. 解题 1. 题目 你和朋友玩一个叫做「翻转游戏」的游戏,游戏规则:给定一个只有 + 和 - 的字符串. 你和朋友轮流将 连续 的两个 "++" 反转成 ...
- 20200208(补):翻转游戏Ⅰ Ⅱ(leetcode)
翻转游戏Ⅰ& Ⅱ 题目 思路与算法 代码实现 题目 翻转游戏Ⅰ 翻转游戏Ⅱ 思路与算法 翻转游戏Ⅰ的意思读题容易歧义,读英文题目后理解是第一次操作后的所有list集合,因此思路很清晰,遍历,找 ...
- 后台控制游戏开关_今天购买这些开关游戏
后台控制游戏开关 There's always seems to be something on sale in the Nintendo Switch eShop. Unfortunately, u ...
- [Swift]LeetCode293. 翻转游戏 $ Flip Game
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ ➤微信公众号:山青咏芝(shanqingyongzhi) ➤博客园地址:山青咏芝(https://www.cnblog ...
- 翻转游戏(Flip_Game)
翻转游戏--Flip Game 问题描述 样例 代码 问题描述 翻转游戏:给定一个只包含两种字符的字符串:+和-.你可以将两个连续的"++"翻转成"–",你需要 ...
- POJ1753 翻转游戏 题解
题目大意 有一个4×4的棋盘,上面放满棋子,棋子一面是白色,另一面是黑色.每次翻转一枚棋子,同时与这枚棋子相邻的上下左右的棋子也要翻转.问能否通过数次翻转使得所有的棋子全部白色面朝上或全部黑色面朝上呢 ...
- Flip Game翻转游戏
4*4的棋盘,棋盘上的每个位置都是黑或白,每个位置的颜色可以翻转,并且翻转一个位置的同时其周围的棋子的颜色也同时翻转.给一个目标状态,问多少步可以到达目标状态. 广度优先搜索. #include &l ...
最新文章
- Kubernetes入门
- Hadoop学习笔记(六)启动Shell分析
- Python 函数参数的分类及使用方法
- 是c语言自带的数据类型吗_计协带你了解C语言程序
- LINUX性能调优方法总结
- SQLServer中round函数
- SAP Spartacus storefront 模块的实现位置
- python logging日志分割_python logging日志模块以及多进程日志
- 如何在vue中使用less
- 智能优化算法:缎蓝园丁鸟优化算法-附代码
- 折纸机器人的步骤图解_简单折纸:折叠小吉普车(步骤图解)
- 幂级数 | 函数项级数、函数展开成幂级数(泰勒展开+麦克劳林展开)
- 万字拆解伊利:84天从0到千万GMV,传统巨头在抖音电商的“快与慢”
- 什么是云服务器?什么是阿里云服务器管理?
- flutter (笔记) 动画学习
- php防止恶意注册,PHP怎样防止用户注册高仿其他人的用户名?
- 文件中的EOF是什么
- 小D课堂 - 新版本微服务springcloud+Docker教程_汇总
- 怎么学习oracle浅析
- 工业CT之三维重建技术
热门文章
- [Transformer]Efficient Training of Visual Transformers with Small Datasets
- java记录访问时间_在java中记录上次访问时间和上次修改时间?
- Chapter 12 PCA与SVD算法理论与实践
- Linux下wine能运行游戏吗,Linux下用Wine玩游戏卡吗
- 数据可视化ECharts:定制折线图1
- 高分子PEG:PEG nicotinic acid,MPEG Niacin,甲氧基聚乙二醇烟酸,水溶性强,可用于drμg的递送或生物测定开发
- mysql主键约束代码_主键约束(示例代码)
- 【汇编语言】一章 基础知识 机器语言 CPU 存储器 内存地址空间
- linux 解压 -zxvf 与-xvf解压方式的区别、zxvf的表示含义
- OPPO A53m全网通刷机包 解账户锁 刷机教程