CF1244F Chips
传送门
首先可以找规律发现只要连续两个及以上的相同的颜色,无论几次,其颜色都不会发生改变。因而我们可以根据这个进行分块。只要取出形如BWBW或WBWB的字符串即可。
#define _CRT_SECURE_NO_DEPRECATE
#include<cstdio>
#include<stdlib.h>
#include<algorithm>
#include<string>
#include<iostream>
#include<unordered_map>
#include<stack>
#include<math.h>
#include<set>
#include<map>
#include<queue>
#include<cstring>
#include<deque>
#define IOS ios::sync_with_stdio(false); cin.tie(0); cout.tie(0);
#define lowbits(x) x&(-x)
using namespace std;
typedef long long ll;
typedef pair<int, int> pii;
typedef pair<ll, ll> pll;
const int inf = 0x3f3f3f3f;
const int mod = 1000000007;
const int N = 2e5 + 10;
char s[N];
bool vis[N];
int n, k;
int book[N], change[N];
bool check() {for (int i = 0; i < n; i++) {if (vis[i]) {return false;}}return true;
}
int main() {cin >> n >> k;for (int i = 0; i < n; i++) {cin >> s[i];}for (int i = 0; i < n; i++) {if (s[i] == s[(i + 1 + n) % n] || s[i] == s[(i - 1 + n) % n]) {vis[i] = 1;}}if (check()) {if (k & 1) {for (int i = 0; i < n; i++) {if (s[i] == 'W') {s[i] = 'B';}else {s[i] = 'W';}}}cout << s << endl;}else {memset(book, inf, sizeof(book));for (int i = 0; i < n; i++) {if (vis[i] && !vis[(i + 1 + n) % n]) {int now = (i + 1 + n) % n;int cnt = 0;while (!vis[now]) {cnt++;if (book[now] > cnt) {book[now] = cnt;change[now] = s[i];}now = (now + 1 + n) % n;}}if (vis[i] && !vis[(n + i - 1) % n]) {int now = (i - 1 + n) % n;int cnt = 0;while (!vis[now]) {cnt++;if (book[now] > cnt) {book[now] = cnt;change[now] = s[i];}now = (now - 1 + n) % n;}}}for (int i = 0; i < n; i++) {if (book[i] <= k) {s[i] = change[i];}else {if (book[i] != inf && k & 1) {if (s[i] == 'W') {s[i] = 'B';}else {s[i] = 'W';}}}}cout << s << endl;}return 0;
}
CF1244F Chips相关推荐
- leetcode 1217. Minimum Cost to Move Chips to The Same Position | 1217. 玩筹码(Java)
题目 题解 所有的 chips,要么在奇数位置,要么在偶数位置 class Solution {public int minCostToMoveChips(int[] position) {int p ...
- Codeforces Round #592 (Div. 2) F. Chips 构造 + 细节
传送门 文章目录 题意: 思路: 题意: 思路: 恶心的构造题,思路很简单但是代码细节很多,搞了半天. 根据题目的性质不难发现,如果有两个相同颜色的球相邻,那么他们的颜色永远不会改变. 根据这个性质, ...
- [Wf2011]Chips Challenge(最小费用最大流)
[Wf2011]Chips Challenge problem solution code problem BZOJ2673 solution . 首先得知道这是网络流,但真的看不出来啊!!我真的郁闷 ...
- chips cope_Android P:Chips and ChipGroup
chips cope In this tutorial, we'll be discussing the latest components that are a part of the new Ma ...
- 比特(bits),符号(symbol),码片(chips)区别
比特(bits) 进入物理层进行基带信号处理之前的有效信息 比特率:每秒传送的比特(bit)数,单位bps(b/s),比特率越高,单位时间传送的数据量(位数)越大. 计算机中的信息都用二进制的0和1来 ...
- Chips交互操作和集合论
产品的PRD画的原型图有这么一种操作,网上搜了半天不知道叫什么名字,后来在AngularJS Material的DEMO上找到了这种交互方式,分类在Chips下,中文的意思大概是木屑,纸片之类的,就姑 ...
- leetcode 1217. Play with Chips 解法 python
一.问题描述 There are some chips, and the i-th chip is at position chips[i]. You can perform any of the t ...
- leetcode 1217. Play with Chips
题目 挺有意思的一道题.因为移动两部的话没有任何消耗.当两点之间的距离是偶数的时候就没有任何消耗,当两点的距离为奇数时有一个消耗.奇数和奇数之间的距离是偶数,偶数和偶数的距离也是偶数,所以只需要考虑奇 ...
- Leetcode 1217. Minimum Cost to Move Chips to The Same Position [Python]
题目好难理解,看了各位大神们的解释才懂了要求做什么.比如说[2,2,2,3,3] 的意思是[index == 2的位置上有一个chip,index == 2的位置上有一个chip,index == 2 ...
最新文章
- 将字符串下标为奇数的字符按ASCII码大小递增排序,并将排序后下标为奇数的字符取出
- Structs2实现文件上传功能
- java swing 链接_JAVA中Jtable标签设置超级链接:基于Java Swing的超链接标签和超链接按钮的实现...
- m2eclipse插件
- 马逊s3云存储接口_利用 S3tests 测试 S3 接口兼容性
- 《Mali OpenCL SDK v1.1.0》教程样例之一“Hello World”
- processon.com - 在线团队协作软件(草巾冒小子)推荐 - 资源篇
- 女生做程序员压力大吗?
- 正则去除汉字和只取数字
- Delphi Web前端开发教程(6):基于TMS WEB Core框架
- POI实现word转html(带图片),实现word在线预览
- 今天正式入伏了,最全的三伏开运养生习俗都在这里了!!
- 光栅图形学-中点画线法
- fragment实例
- excel表格打印每页都有表头_Excel小技巧3:打印每页添加表头
- Camera Shading介绍
- Python升级之路( Lv9 ) 文件操作
- VMware 虚拟SCSI、SATA 和 NVMe 存储控制器条件、限制和兼容性
- 一、Oracle数据库的安装和配置
- 数据库设计文档化---详细文档
热门文章
- 从输入 URL 到页面加载完成中间都经历了什么
- PDF 水印(watermark)删除及防删除策略
- 差分隐私相关论文(2) —— Deep Learning with Differential Privacy, Abadi 2016
- 真是亲生的,但亲子鉴定为何失败?
- 打工人上人 (25 分)
- 给出一个123 456的矩阵,输出转置矩阵
- Oracle数据库CPU占用过高
- web端的shader效果九 three.js里shader实现较平静的水面
- 简直无敌!5年crud经验,全网独家首发!
- 2021疫情下Android技术人的宅家学习进阶指南!花了大价钱大厂内部买来的学习资料,爱看不看!(全网神级笔记整理)