CF1512C A-B Palindrome 题解

2023-11-16

题目大意

给定一个字符串(长度为 a + b a+b a+b),给定 a a a b b b

a a a 表示字符串里有几个 0 0 0 b b b 表示字符串里有几个 1 1 1

并且要求字符串回文。

让你把字符串中的 ? ? ? 替换成 0 0 0 1 1 1

关于解法

首先判断原字符串是否合法。

然后暴力枚举每一个元素,如果是 ? ? ? 就给填上。

中间位置要特判!

代码

#include<bits/stdc++.h>
using namespace std;
#define I return
#define AK 0
#define IOI ;
int t,a,b,f;
string s;
int main()
{
	cin>>t;
	while(t--)
	{
		cin>>a>>b>>s,f=0;
		if(a%2==1 && b%2==1)
		{
			cout<<-1<<endl;
			continue;
		}
		for(int i=0;i<s.size();i++)
		{
			if(s[s.size()-i-1]!=s[i] && s[i]!='?' && s[s.size()-i-1]!='?')//不满足回文 
			{
				f=1;
				break;
			}
			if(s[i]!='?' && s[s.size()-i-1]=='?') s[s.size()-i-1]=s[i];//如果一方已知就补全回文
		}
		for(int i=0;i<s.size();i++) a-=s[i]=='0',b-=s[i]=='1';//判断到底是a减还是b减,懒得用if
		if(a<0 || b<0 || f)//f在这里一起判断,可以压行 
		{
			cout<<-1<<endl;
			continue;
		}
		for(int i=0;i<s.size() && !f;i++)
		{
			if(s[i]!='?') continue;//s[i]有值就不用管
			if(i==s.size()/2)//在中间 
			{
				if(a%2==1)
				{
					s[i]='0',a--;
					continue;
				}
				if(b%2==1)
				{
					s[i]='1',b--;
					continue;
				}
				f=1;
			}
			if(f) continue;
			if(a>=2)
			{
				s[i]=s[s.size()-i-1]='0',a-=2;
				continue;
			}
			if(b>=2)
			{
				s[i]=s[s.size()-i-1]='1',b-=2;
				continue;
			}
			f=1;
		}
		if(f)
		{
			cout<<-1<<endl;
			continue;
		}else cout<<s<<endl;
	}
	I AK IOI
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

CF1512C A-B Palindrome 题解 的相关文章

随机推荐

  • elasticSearch 设置用户名密码 && 查询

    一 设置密码 1 需要在配置文件中开启x pack验证 修改config目录下面的elasticsearch yml文件 在里面添加如下内容 并重启 xpack security enabled true xpack license sel
  • SpringBoot集成RabbitMQ生产消费消息(简单实用版)

    概要 要使用RabbitMQ消息队列主要有两个步骤 一个是搭建RabbitMQ服务 需下载安装 二是代码添加依赖开始编码 一 安装RabbitMQ服务 以docker安装为例 其他安装方式自行百度 下载镜像 docker pull rabb
  • Java中的链表——LinkedList解析

    LinkedList类结构 LinkedList
  • TCP思维导图总结

    TCP 可靠性 为什么网络中会存在不可靠 根本原因就是距离太远 不可控因素太多 TCP因此就应运而生 是一种保证可靠性的协议 TCP协议格式 源 目的端口 表示数据从那个进程来 要到对端的那个进程去 32位序号 32位确认序号 分别代表TC
  • Authing 入选长城战略咨询《2023 中国潜在独角兽企业》报告

    2023 年 6 月 20 日 长城战略咨询 GEI 发布 2023 中国潜在独角兽企业研究 报告 Authing 作为国内首家身份云 IDaaS 厂商入选中国潜在独角兽企业榜单 独角兽企业指具有发展速度快 数量稀少 备受投资者青睐等属性的
  • 面试必备的红黑树,这可能是最容易理解的一篇了!

    点击上方 Java之间 选择 置顶或者星标 你关注的就是我关心的 来源 linux内核 红黑树是一个平衡的二叉树 但不是一个完美的平衡二叉树 虽然我们希望一个所有查找都能在 lgN次比较内结束 但是这样在动态插入中保持树的完美平衡代价太高
  • luffy前传

    目录 企业的web项目类型 商城 门户网站 企业站和门户站 企业项目开发流程 pip永久换源 虚拟环境搭建 使用虚拟环境 新建项目 luffy后台创建目录调整 企业的web项目类型 商城 B2C 直销商城 商家与会员直接交易 Busines
  • 2020国内十大API接口服务平台

    API的概念早在上世纪60年代就已经出现 其代表的是应用程序的编程接口 是一些预先定义的函数 或指软件系统不同组成部分衔接的约定 换句话说 API是一个信使 它将用户的请求交付给用户所请求的提供者 然后将响应交付给用户 打个简单的比喻 日常
  • 【CVPR2023 Best Paper】Planning-oriented Autonomous Driving 阅读笔记

    Paper https openaccess thecvf com content CVPR2023 papers Hu Planning Oriented Autonomous Driving CVPR 2023 paper pdf Gi
  • 链圈的朋友们值得收藏!腾讯首席架构师教你两种区块链设计思路

    欢迎大家前往腾讯云 社区 获取更多腾讯海量技术实践干货哦 本文由敖萌发表于云 社区专栏 区块链发展到了现在 产生了很多不同形式的区块链技术 随着技术的发展 目前比较公认的看法是区块链已经走进了2 0时代 区块链1 0是以比特币为代表的去中心
  • 文件编码格式

    大家可能都知道文件编码格式 如gbk格式 ansi格式 字符以1byte编码 中文字符以2字节编码 unicode格式无论是字符还是中文字符都以2字节统一编码 utf 8格式则是可变长编码 不同编码格式的文件都有开头相应的字符标记来标识 如
  • pikachu靶场搭建教程(以物理主机访问虚拟机为例)

    1 提前下载好所需软件 pikachu phpstudy 服务器集成软件 2 在虚拟机上完成phpstudy的安装 并将下载好的pikachu文件夹放置于phpstudy的根目录下 例如我的是C phpstudy phpstudy pro
  • Keras学习:06.LSTM和双向LSTM讲解及实践

    本文主要介绍了LSTM与双向LSTM网路的原理和具体代码实现 长短期记忆 Long Short Term Memory LSTM 也是一种时间递归神经网络 最早由 Hochreiter Schmidhuber 在1997年提出 设计初衷是希
  • (附源码)计算机毕业设计ssm大学生心理健康管理系统

    项目运行 环境配置 Jdk1 8 Tomcat7 0 Mysql HBuilderX Webstorm也行 Eclispe IntelliJ IDEA Eclispe MyEclispe Sts都支持 项目技术 SSM mybatis Ma
  • Acwing 826. 单链表 (用数组模拟单链表)

    实现一个单链表 链表初始为空 支持三种操作 1 向链表头插入一个数 2 删除第k个插入的数后面的数 3 在第k个插入的数后插入一个数 现在要对该链表进行M次操作 进行完所有操作后 从头到尾输出整个链表 注意 题目中第k个插入的数并不是指当前
  • Remix连接本地&遇到的问题

    Remix连接本地 遇到的问题 前提条件 安装node node版本不要太低 最好14 1 安装remix npm install g remix project remixd 2 建立remix与本地文件连接 remixd s 具体文件项
  • 目标检测简介

    目标检测是一种与计算机视觉和图像处理相关的计算机技术 用于检测数字图像和视频中某一类语义对象 如人 建筑物或汽车 的实例 目标检测的研究领域包括多类别检测 边缘检测 突出目标检测 姿势检测 场景文本检测 人脸检测 行人检测等 目标检测作为场
  • C#基于LINQ对数据库的增删查改

    1 增加功能 主窗口 using System using System Collections Generic using System ComponentModel using System Data using System Draw
  • Unity 语法详解之查找游戏物体的方法(含查找隐藏物体)

    为了更好的看懂 有一个非常基础的知识 如果不知道可以移步去了解一下哦 unity gameobject和transform的区别和关联通俗解释 gameobject transform 菌菌巧乐兹的博客 CSDN博客 一 前情提要 大写的G
  • CF1512C A-B Palindrome 题解

    题目大意 给定一个字符串 长度为 a b a b a b 给定 a a a