题意

一个项链,每个珠子黑色或者白色,每一时刻,颜色发生变化
只考虑自己和左右相邻的3个珠子,若黑色多,则自己变为黑色,否则变为白色
问k时刻后珠子的颜色

题解

找规律
首先可以发现,连续的2个及以上相同的颜色的,是永远不会变化的
发现,会变化的只用形如 0101010101 的片段
而且,下一时刻,颜色会取反
操作数次会发现,会变化的区间每次向内缩减,即左右边界缩减1,那么,每个珠子的变化次数就知道了,最后的颜色也就知道了。

代码

#include<bits/stdc++.h>
#define N 200010
#define INF 0x3f3f3f3f
#define eps 1e-5
#define pi 3.141592653589793
#define mod 998244353
#define P 1000000007
#define LL long long
#define pb push_back
#define fi first
#define se second
#define cl clear
#define si size
#define lb lower_bound
#define ub upper_bound
#define bug(x) cerr<<#x<<"      :   "<<x<<endl
#define mem(x,y) memset(x,0,sizeof(int)*(y+3))
#define sc(x) scanf("%d",&x)
#define scc(x,y) scanf("%d%d",&x,&y)
#define sccc(x,y,z) scanf("%d%d%d",&x,&y,&z)
using namespace std;
typedef  pair<int,int> pp;
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
#include <ext/pb_ds/hash_policy.hpp>
#include <ext/pb_ds/priority_queue.hpp>
using namespace __gnu_pbds;int f[N],a[N],l[N],r[N];
char ch[N];int main(int argc, char const *argv[])
{int n,m;scc(n,m);cin>>ch+1;for(int i=1;i<=n;i++) a[i]=(ch[i]=='B');a[0]=a[n]; a[n+1]=a[1];for(int i=0;i<=n;i++) if (a[i]==a[i+1]) f[i]=f[i+1]=1;memset(l,INF,sizeof l);memset(r,INF,sizeof r);for(int i=1;i<=n;i++) if (f[i]){for(int j=1;j<n&&!f[(i-j+n-1)%n+1];j++) r[(i-j+n-1)%n+1]=j;for(int j=1;j<n&&!f[(i+j-1)%n+1];j++) l[(i+j-1)%n+1]=j;}for(int i=1;i<=n;i++) if(!f[i])a[i]^=(min(m,min(r[i],l[i]))&1);ch[n+1]=0;for(int i=1;i<=n;i++) ch[i]=(a[i]==0?'W':'B');cout<<ch+1;return 0;
}

Codeforces 1244F Chips相关推荐

  1. CodeForces - 1213A Chips Moving (思维 数学)

    CodeForces - 1213A Chips Moving 题目: You are given n chips on a number line. The i-th chip is placed ...

  2. codeforces 333B - Chips

    注意:横向纵向交叉时,只要两条边不是正中的边(当n&1!=1),就可以余下两个chip. 代码里数组a[][]第二维下标 0表示横向边,1表示纵向边. 1 #include<stdio. ...

  3. Codeforces Round #592 (Div. 2) F. Chips 构造 + 细节

    传送门 文章目录 题意: 思路: 题意: 思路: 恶心的构造题,思路很简单但是代码细节很多,搞了半天. 根据题目的性质不难发现,如果有两个相同颜色的球相邻,那么他们的颜色永远不会改变. 根据这个性质, ...

  4. Educational Codeforces Round 128 (Rated for Div. 2) E. Moving Chips(玄学)

    Educational Codeforces Round 128 (Rated for Div. 2) E. Moving Chips(玄学) 链接 题意:给一个2∗n2*n2∗n的∗.*.∗.矩阵, ...

  5. Codeforces 1327 C. Game with Chips

    题意: n × m n×m n×m 的网格图上有 k k k 个棋子,每个棋子都有一个对应的必经点坐标.现在你有最多 2 n m 2nm 2nm 次移动机会,,给出一种能够让每个棋子到达必经点的方案. ...

  6. Educational Codeforces Round 107 (Rated for Div. 2)

    Educational Codeforces Round 107 (Rated for Div. 2) 题号 题目 知识点 A Review Site 签到 B GCD Length 思维+构造 C ...

  7. CodeForces 375D Tree and Queries

    传送门:https://codeforces.com/problemset/problem/375/D 题意: 给你一颗有根树,树上每个节点都有其对应的颜色,有m次询问,每次问你以点v为父节点的子树内 ...

  8. 「日常训练」Bad Luck Island(Codeforces Round 301 Div.2 D)

    题意与分析(CodeForces 540D) 是一道概率dp题. 不过我没把它当dp做... 我就是凭着概率的直觉写的,还好这题不算难. 这题的重点在于考虑概率:他们喜相逢的概率是多少?考虑超几何分布 ...

  9. 【codeforces 812C】Sagheer and Nubian Market

    [题目链接]:http://codeforces.com/contest/812/problem/C [题意] 给你n个物品; 你可以选购k个物品;则 每个物品有一个基础价值; 然后还有一个附加价值; ...

最新文章

  1. 听说微软出了个 Windows XP reStart Edition? 重启版?
  2. python元组修改_python基础知识之元组
  3. @propertysource 读不到properties_在加拿大读了6年还是大学一年级,会被赶出校吗?...
  4. IO之阻塞与非阻塞比较
  5. python所有算法_Python实现的各种常见分布算法示例
  6. Xbox360手柄驱动xbcd+
  7. 电大 计算机网络 网考,2018-2019年最新电大《计算机网络(本)》网络核心课形考网考作业答案.docx...
  8. 『动态规划』最大子段和
  9. php hscan,hgetall 替代 hscan的用法详解。
  10. archlinux i3wm flameshot使用
  11. Python中的timezone
  12. yocs_velocity_smoother速度平滑配置与使用
  13. 电脑浏览器一直显示邮箱服务器失败,各种PC客户端都无法连接Outlook.com邮箱
  14. Android 数据越权备份风险
  15. 学姐的大厂面试总结,想进大厂的必看!!!
  16. WKT和Geometry
  17. Eclipse Papyrus插件离线编译
  18. OSS brower js SDK
  19. 杭州校招 | ​阿里钉钉算法技术团队招聘NLP/机器学习算法工程师
  20. 互联网日报 | 1月31日 星期日 | 海航集团宣布破产重整;小米首发自研隔空充电技术;2021年春节档电影开启预售...

热门文章

  1. 2021-2027全球与中国针叶樱桃提取物市场现状及未来发展趋势
  2. 032 Rust死灵书之Vec的IntoIter
  3. 对话硅谷高科技创业公司
  4. K12526 找双亲和孩子
  5. UI设计规范技巧——切图格式
  6. VMware Workstation 无法连接到虚拟机。请确保您有权限运行该程序、访问改程序使用的所有目录以及访问所有临时文件目录。未能将管道连接到虚拟机: 所有的管道范例都在使用中。
  7. linux常用disk磁盘操作命令
  8. csapp程序人生大作业
  9. coding同步更新服务器文件,git 同步本地项目到coding 上
  10. Cisco路由器限速