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 题解 的相关文章

  • 结构化绑定中缺少类型信息

    我刚刚了解了 C 中的结构化绑定 但有一件事我不喜欢 auto x y some func is that auto正在隐藏类型x and y 我得抬头看看some func的声明来了解类型x and y 或者 我可以写 T1 x T2 y
  • C# 异步等待澄清?

    我读了here http blog stephencleary com 2012 02 async and await html that 等待检查等待的看看它是否有already完全的 如果 可等待已经完成 那么该方法将继续 运行 同步
  • 没有特殊字符的密码验证器

    我是 RegEx 的新手 已经进行了大量搜索 但没有找到任何具体内容 我正在编写一个验证密码字符串的正则表达式 可接受的字符串必须至少具有 4 种字符类型中的 3 种 数字 小写字母 大写字母 特殊字符 我对包含有一个想法 也就是说 如果这
  • 如何在 Cassandra 中存储无符号整数?

    我通过 Datastax 驱动程序在 Cassandra 中存储一些数据 并且需要存储无符号 16 位和 32 位整数 对于无符号 16 位整数 我可以轻松地将它们存储为有符号 32 位整数 并根据需要进行转换 然而 对于无符号 64 位整
  • std::list 线程push_back、front、pop_front

    std list 线程安全吗 我假设不是这样 所以我添加了自己的同步机制 我认为我有正确的术语 但我仍然遇到问题 每个函数都由单独的线程调用 Thread1 不能等待 它必须尽可能快 std list
  • 如何从 Visual Studio 将视图导航到其控制器?

    问题是解决方案资源管理器上有 29 个项目 而且项目同时具有 ASP NET MVC 和 ASP NET Web 表单结构 在MVC部分中 Controller文件夹中有大约100个子文件夹 每个文件夹至少有3 4个控制器 视图完全位于不同
  • 如何在 C# 中打开 Internet Explorer 属性窗口

    我正在开发一个 Windows 应用程序 我必须向用户提供一种通过打开 IE 设置窗口来更改代理设置的方法 Google Chrome 使用相同的方法 当您尝试更改 Chrome 中的代理设置时 它将打开 Internet Explorer
  • 为什么 GCC 不允许我创建“内联静态 std::stringstream”?

    我将直接前往 MCVE include
  • WPF 数据绑定到复合类模式?

    我是第一次尝试 WPF 并且正在努力解决如何将控件绑定到使用其他对象的组合构建的类 例如 如果我有一个由两个单独的类组成的类 Comp 为了清楚起见 请注意省略的各种元素 class One int first int second cla
  • 在 Unity 中实现 Fur with Shells 技术

    我正在尝试在 Unity 中实现皮毛贝壳技术 http developer download nvidia com SDK 10 5 direct3d Source Fur doc FurShellsAndFins pdf Fins 技术被
  • 使用 C# 中的 CsvHelper 将不同文化的 csv 解析为十进制

    C 中 CsvHelper 解析小数的问题 我创建了一个从 byte 而不是文件获取 csv 文件的类 并且它工作正常 public static List
  • C# - 当代表执行异步任务时,我仍然需要 System.Threading 吗?

    由于我可以使用委托执行异步操作 我怀疑在我的应用程序中使用 System Threading 的机会很小 是否存在我无法避免 System Threading 的基本情况 只是我正处于学习阶段 例子 class Program public
  • 为什么 C# 2.0 之后没有 ISO 或 ECMA 标准化?

    我已经开始学习 C 并正在寻找标准规范 但发现大于 2 0 的 C 版本并未由 ISO 或 ECMA 标准化 或者是我从 Wikipedia 收集到的 这有什么原因吗 因为编写 审查 验证 发布 处理反馈 修订 重新发布等复杂的规范文档需要
  • 编译时展开 for 循环内的模板参数?

    维基百科 here http en wikipedia org wiki Template metaprogramming Compile time code optimization 给出了 for 循环的编译时展开 我想知道我们是否可以
  • C# 中的 IPC 机制 - 用法和最佳实践

    不久前我在 Win32 代码中使用了 IPC 临界区 事件和信号量 NET环境下场景如何 是否有任何教程解释所有可用选项以及何时使用以及为什么 微软最近在IPC方面的东西是Windows 通信基础 http en wikipedia org
  • C++ 中的 include 和 using 命名空间

    用于使用cout 我需要指定两者 include
  • C++ 中的参考文献

    我偶尔会在 StackOverflow 上看到代码 询问一些涉及函数的重载歧义 例如 void foo int param 我的问题是 为什么会出现这种情况 或者更确切地说 你什么时候会有 对参考的参考 这与普通的旧参考有何不同 我从未在现
  • C# 使用“?” if else 语句设置值这叫什么

    嘿 我刚刚看到以下声明 return name null name NA 我只是想知道这在 NET 中叫什么 是吗 代表即然后执行此操作 这是一个俗称的 条件运算符 三元运算符 http en wikipedia org wiki Tern
  • DotNetZip:如何提取文件,但忽略zip文件中的路径?

    尝试将文件提取到给定文件夹 忽略 zip 文件中的路径 但似乎没有办法 考虑到其中实现的所有其他好东西 这似乎是一个相当基本的要求 我缺少什么 代码是 using Ionic Zip ZipFile zf Ionic Zip ZipFile
  • 现代编译器是否优化乘以 1 和 -1

    如果我写 template

随机推荐

  • 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