Codeforces 1244F Chips
题意
一个项链,每个珠子黑色或者白色,每一时刻,颜色发生变化
只考虑自己和左右相邻的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相关推荐
- CodeForces - 1213A Chips Moving (思维 数学)
CodeForces - 1213A Chips Moving 题目: You are given n chips on a number line. The i-th chip is placed ...
- codeforces 333B - Chips
注意:横向纵向交叉时,只要两条边不是正中的边(当n&1!=1),就可以余下两个chip. 代码里数组a[][]第二维下标 0表示横向边,1表示纵向边. 1 #include<stdio. ...
- Codeforces Round #592 (Div. 2) F. Chips 构造 + 细节
传送门 文章目录 题意: 思路: 题意: 思路: 恶心的构造题,思路很简单但是代码细节很多,搞了半天. 根据题目的性质不难发现,如果有两个相同颜色的球相邻,那么他们的颜色永远不会改变. 根据这个性质, ...
- 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的∗.*.∗.矩阵, ...
- Codeforces 1327 C. Game with Chips
题意: n × m n×m n×m 的网格图上有 k k k 个棋子,每个棋子都有一个对应的必经点坐标.现在你有最多 2 n m 2nm 2nm 次移动机会,,给出一种能够让每个棋子到达必经点的方案. ...
- Educational Codeforces Round 107 (Rated for Div. 2)
Educational Codeforces Round 107 (Rated for Div. 2) 题号 题目 知识点 A Review Site 签到 B GCD Length 思维+构造 C ...
- CodeForces 375D Tree and Queries
传送门:https://codeforces.com/problemset/problem/375/D 题意: 给你一颗有根树,树上每个节点都有其对应的颜色,有m次询问,每次问你以点v为父节点的子树内 ...
- 「日常训练」Bad Luck Island(Codeforces Round 301 Div.2 D)
题意与分析(CodeForces 540D) 是一道概率dp题. 不过我没把它当dp做... 我就是凭着概率的直觉写的,还好这题不算难. 这题的重点在于考虑概率:他们喜相逢的概率是多少?考虑超几何分布 ...
- 【codeforces 812C】Sagheer and Nubian Market
[题目链接]:http://codeforces.com/contest/812/problem/C [题意] 给你n个物品; 你可以选购k个物品;则 每个物品有一个基础价值; 然后还有一个附加价值; ...
最新文章
- 听说微软出了个 Windows XP reStart Edition? 重启版?
- python元组修改_python基础知识之元组
- @propertysource 读不到properties_在加拿大读了6年还是大学一年级,会被赶出校吗?...
- IO之阻塞与非阻塞比较
- python所有算法_Python实现的各种常见分布算法示例
- Xbox360手柄驱动xbcd+
- 电大 计算机网络 网考,2018-2019年最新电大《计算机网络(本)》网络核心课形考网考作业答案.docx...
- 『动态规划』最大子段和
- php hscan,hgetall 替代 hscan的用法详解。
- archlinux i3wm flameshot使用
- Python中的timezone
- yocs_velocity_smoother速度平滑配置与使用
- 电脑浏览器一直显示邮箱服务器失败,各种PC客户端都无法连接Outlook.com邮箱
- Android 数据越权备份风险
- 学姐的大厂面试总结,想进大厂的必看!!!
- WKT和Geometry
- Eclipse Papyrus插件离线编译
- OSS brower js SDK
- 杭州校招 | ​阿里钉钉算法技术团队招聘NLP/机器学习算法工程师
- 互联网日报 | 1月31日 星期日 | 海航集团宣布破产重整;小米首发自研隔空充电技术;2021年春节档电影开启预售...