Codeforces1579 F. Array Stabilization (AND version)(思维+bfs)
题意:
解法:
注意:题目的d不一定是n的因子,因此不能直接下标对d取模分组.什么时候a[i]会从1变成0?
一定是a[i]=1且a[i+d]=0的时候,
我们反过来考虑,如果a[i]=0且a[i-d]=1,那么a[i-d]就会变成0.
从0开始bfs即可.对于a[x]=0的x,如果a[x-d]=1,
那么将a[x-d]由1变成0,并将x-d推入队列.
如果bfs之后仍然有数=1,那么无解.
否则答案就是bfs的轮数.算法复杂度O(n).
code:
#include<bits/stdc++.h>
#define MULTI_CASE
#define PI pair<int,int>
// #define int long long
using namespace std;
const int maxm=2e6+5;
int a[maxm];
int n,d;
void solve(){cin>>n>>d;for(int i=0;i<n;i++){cin>>a[i];}int ans=-1;queue<int>q;for(int i=0;i<n;i++){if(!a[i])q.push(i);}while(q.size()){ //bfsint len=q.size();ans++;for(int i=0;i<len;i++){int x=q.front();q.pop();int pre=(x-d+n)%n;if(a[pre]){a[pre]=0;q.push(pre);}}}for(int i=0;i<n;i++){if(a[i]){cout<<-1<<endl;return ;}}cout<<ans<<endl;
}
void Main(){#ifdef MULTI_CASEint T;cin>>T;while(T--)#endifsolve();
}
void Init(){ios::sync_with_stdio(0);cin.tie(0);#ifndef ONLINE_JUDGEfreopen("../in.txt","r",stdin);freopen("../out.txt","w",stdout);#endif
}
signed main(){Init();Main();return 0;
}
Codeforces1579 F. Array Stabilization (AND version)(思维+bfs)相关推荐
- CodeForces - 1547F Array Stabilization (GCD version)(ST表+二分)
题目链接:点击查看 题目大意:给出一个长度为 nnn 的数组 aaa,下标从 000 开始,每次操作分为两个步骤: 构建出数组 bbb,有 bi=gcd(ai,a(i+1)modn)b_i=gcd(a ...
- CF1547F Array Stabilization (GCD version) st表 + 尺取/二分
传送门 题意: 思路: 容易发现,我们将所有aaa都除上所有aaa的gcdgcdgcd,实际上就是让你求一个最小的lenlenlen,对于所有iii,gcd(ai,ai+1,...,ai+len−1) ...
- CF-1209 F. Koala and Notebook(建图BFS)
CF-1209 F. Koala and Notebook(建图BFS) 题目链接 题意 n个城市m个双向边,从点1可以到达任何点,把点1到到其他点所经过的边写成一行可以得到一个大数,你的任务使得这个 ...
- codeforces1454 F. Array Partition
这周忙死,一直没机会吧补一下题,周二晚上打的div3,过了A~E,F就看了下题目就没时间了,无聊的时候想应该会用到ST表,然后想要维护指针,后来写的时候发现维护不了,然后就歇菜了... F. Arra ...
- EMC (DMX) solutions Enabler Symmetrix Array Management CLI Version 6.5
EMC solutions Enabler Symmetrix Array Management CLI Version 6.5功能,还是可以做到的.下面说一下监控方法,其实还是很简单. 用MC so ...
- 2018 Multi-University Training Contest 3 Problem F. Grab The Tree 【YY+BFS】
传送门:http://acm.hdu.edu.cn/showproblem.php?pid=6324 Problem F. Grab The Tree Time Limit: 2000/1000 MS ...
- CodeForces - 1559D2 Mocha and Diana (Hard Version)(思维)
题目链接:点击查看 题目大意:给出两棵森林,每次可以同时在两个森林中增加同一条边,问最多可以增加多少条边,使得两个森林仍然还是森林 题目分析:结论参考至:https://blog.csdn.net/R ...
- Orac and Game of Life CodeForces - 1350E(思维+BFS)
Please notice the unusual memory limit of this problem. Orac likes games. Recently he came up with t ...
- Codeforces Round #617 (Div. 3) E2. String Coloring (hard version) 思维 + dp + Dilworth定理
传送门 文章目录 题意: 思路: 题意: 让你给一个串染色,不同颜色且相邻的一对字符可以互换位置,用最少的颜色,使交换后这个字符串字典序最小. 思路: 考虑将字符串分成若干个非递减的子序列,由于其非递 ...
最新文章
- 学python的好处-python有什么优点
- Windows7 连接Windows Server服务器时提示:计算机无法连接到远程计算机上的另一个控制台会话。...
- python文本聚类分析_python机器学习kmeans算法——对文本进行聚类分析
- Visual Paradigm中文乱码
- 一文掌握面向Windows平台的深度学习工控程序开发(使用Paddle Inference部署MFC、C#程序,内含完整代码链接)
- (附源码)计算机毕业设计SSM基于Java网络游戏后台管理系统
- android水印图片素材,水印软件哪个好用app 安卓手机视频加图片水印的方法有吗?...
- 植物大战僵尸 php,植物大战僵尸Online
- 设计模式 | 原型模式
- 解决 pq: SSL is not enabled on the server
- python实现12306查询火车票
- 遥感测深方法综述(二)CZMIL 机载LiDAR 测深系统
- Java——使用多线程模拟真实高并发业务并保证安全性(一)
- 磁盘检测SMART工具
- 代价敏感 数据不均衡_数据质量差的代价
- HTML第一周学习笔记(标题重置版)
- unity游戏之太空射击
- logit方程怎么写_呆哥数学坐标系与参数方程——最全概括【1】
- ERP系统的八大主要功能模块
- 分支限界算法 之 A*算法(启发式搜索算法)---九宫重排游戏(也称八数码问题)