Codeforces Round #668 C. Balanced Bitstring (Div. 2)题解(思维)
题目链接
题目大意
给你一个长为n的01串,要你使得每一个01串中0和1的个数都要相等,01串中有?字符,你可以使得这个字符变为0或1,要你求是否可以满足条件。输出YES或NO
题目思路
这个题目的难度其实不大,但是最主要的问题是你要发现s[i]=s[i%k],然后就变的简单了,具体实现看代码
代码
#include<set>
#include<map>
#include<queue>
#include<stack>
#include<cmath>
#include<cstdio>
#include<vector>
#include<string>
#include<cstring>
#include<iostream>
#include<algorithm>
#include<unordered_map>
#define fi first
#define se second
#define debug printf(" I am here\n");
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
typedef pair<int,int> pii;
const ll INF=0x3f3f3f3f3f3f3f3f;
const int maxn=3e5+5,inf=0x3f3f3f3f,mod=1e9+7;
const double eps=1e-10;
int n,k;
char s[maxn];
signed main(){
    int _;
    scanf("%d", &_);
    while(_--){
        scanf("%d%d", &n,&k);
        scanf("%s",s+1);
        bool flag=1;
        int zer=0,one=0;
        for(int i=1;i<=k;i++){
            char ch='2';
            for(int j=i;j<=n;j+=k){
                if(s[j]=='?'){
                    continue;
                }else {
                    if(ch=='2'){
                        ch=s[j];
                    }else if(ch!=s[j]){
                        flag=0;
                        break;
                    }
                }
            }
            if(!flag) break;
            if(ch=='1'){
                one++;
            }else if(ch=='0'){
                zer++;
            }
        }
        if(2*max(zer,one)>k){//不能超过一半的元素
            flag=0;
        }
        printf(flag?"YES\n":"NO\n");
    }
    return 0;
}
												
											Codeforces Round #668 C. Balanced Bitstring (Div. 2)题解(思维)的更多相关文章
- Codeforces Round #542 [Alex Lopashev Thanks-Round] (Div. 2) 题解
		
Codeforces Round #542 [Alex Lopashev Thanks-Round] (Div. 2) 题目链接:https://codeforces.com/contest/1130 ...
 - Codeforces Round #542 [Alex Lopashev Thanks-Round] (Div. 1) 题解
		
A. Toy Train 时间限制:2 seconds 内存限制:256 megabytes 题意 有编号111~n(n≤5000)n(n\le 5000)n(n≤5000)的车站顺时针呈环排列,有m ...
 - Codeforces Round #539Ȟȟȡ (Div. 1) 简要题解
		
Codeforces Round #539 (Div. 1) A. Sasha and a Bit of Relax description 给一个序列\(a_i\),求有多少长度为偶数的区间\([l ...
 - Codeforces Round #668 (Div. 2)A-C题解
		
A. Permutation Forgery 题目:http://codeforces.com/contest/1405/problem/A 题解:这道题初看有点吓人,一开始居然想到要用全排序,没错我 ...
 - Codeforces Round #668 (Div. 2)【ABCD】
		
比赛链接:https://codeforces.com/contest/1405 A. Permutation Forgery 题意 给出一个大小为 $n$ 的排列 $p$,定义 \begin{equ ...
 - Codeforces Round #668 (Div. 2) D. Tree Tag 题解(博弈)
		
题目链接 题目大意 给你一颗树,Alice在a点,Bob在b点,Alice最多走da步,Bob最多走db步,两人轮流走路.要你判断经过无数次追赶后,Alice是否可以追上Bob,两人进行的都是最优策略 ...
 - Codeforces Round #668 (Div. 2)   B. Array Cancellation  (思维,贪心)
		
题意:有一个长度为\(n\)并且所有元素和为\(0\)的序列,你可以使\(a_{i}-1\)并且\(a_{j}+1\),如果\(i<j\),那么这步操作就是免费的,否则需要花费一次操作,问最少操 ...
 - Codeforces Round #542 [Alex Lopashev Thanks-Round] (Div. 1) C(二分+KMP)
		
http://codeforces.com/contest/1129/problem/C #include<bits/stdc++.h> #define fi first #define ...
 - Codeforces Round #542 [Alex Lopashev Thanks-Round] (Div. 2) A - D2
		
A. Be Positive 链接:http://codeforces.com/contest/1130/problem/A 题意: 给一段序列,这段序列每个数都除一个d(−1e3≤d≤1e3)除完后 ...
 
随机推荐
- C2. Pokémon Army (hard version) 解析(思維)
			
Codeforce 1420 C2. Pokémon Army (hard version) 解析(思維) 今天我們來看看CF1420C2 題目連結 題目 略,請直接看原題. 前言 根本想不到這個等價 ...
 - java数据结构-05双向链表
			
一.双向链式存储: ①简述:要是节点中包含两个指针部分,一个指向前驱元,一个指向后继元,Java中LinkedList集合类的实现就是双向链表 (以下图片为网络收集,侵删) ②特点:数据是非连续的,链 ...
 - layer弹窗动态改变标题
			
1.利用layer弹出iframe层(type=2) 1 function ShowKJCX(results) { 2 ly = layer.open({ 3 type: 2, 4 id:" ...
 - 牛客1029A 袜子分配
			
题面传送门 没学过数论的蒟蒻第一次做出数学题, 这是一种乱搞的复杂做法 先来看个简单的问题, 数字1-10取1个,问包含1的方案有多少种.显然,每一个数字取到的概率是同样的, 方案数为 , su ...
 - ELK搭建以及运行和ElasticStarch的详细使用(7.X版本之上)
			
ELK初体验 1.官网 https://www.elastic.co/cn/downloads/elasticsearch 2.需要安装JDK ElasticSearch 是一 ...
 - springboot自动装配原理,写一个自己的start
			
springboot自动装配原理 第一次使用springboot的时候,都感觉很神奇.只要加入一个maven的依赖,写几行配置,就能注入redisTemple,rabbitmqTemple等对象. 这 ...
 - PHP直播平台源码搭建教程
			
直播源码市场火爆,但是PHP直播平台源码的搭建过程较为复杂,本文就简单为大家概述一下直播的实现过程以及PHP直播平台源码是如何搭建的. 一.直播的定义 如今PHP直播平台源码绝大部分情况下是指在现场架 ...
 - streamreader
			
using (StreamReader sr = new StreamReader(@"C:\Documents and Settings\Administrator\桌面\1.txt&qu ...
 - 关于UI测试自动化的考虑
			
针对IE的测试使用.net体系是比较方便的,利用process启动IE,再把IE进程转换成IExplore对象,就可以随意的操纵html dom了 针对Firefox的测试使用selenium也是比较 ...
 - RPS/RFS/ GRO
			
http://www.cnhalo.net/2016/09/13/linux-gro/ GRO(Generic receive offload): 在napi poll里把小包封装成大包再递交给协议栈 ...