P10477 题解

news2024/9/21 22:45:45

题目传送门

题目传送门(洛谷)

Step1 理解题意

  • 一共有 T T T 组数据
  • 有一个地铁,有一个中心车站(即为),有一个人从中心车站出发。
  • 对于每组数据,给定两个同样长度的01串 s 1 s_1 s1 , s 2 s_2 s2(即为他的遍历路线)
  • 对于每个字符串, 0 0 0 代表离中心车站远一格, 1 1 1 代表离中心车站近一格。
  • s 1 s_1 s1 s 2 s_2 s2 所代表的遍历路线所形成的地铁是否一致

在这里插入图片描述

Step 2 样例解释

如上图,在第一个样例 0010011101001011 0010011101001011 0010011101001011 0100011011001011 0100011011001011 0100011011001011 中:

  • 0 0 0 当作 1 1 1 , 1 1 1 当作 − 1 -1 1

  • 如果有一段子序列的和为 0 0 0,则说明又回到了根节点

  • 比如 0010011101001011 0010011101001011 0010011101001011 中, 00100111 00100111 00100111 01 01 01 001011 001011 001011的和均为 0 0 0 结果为 4,1,3

  • 同理,在 0100011011001011 0100011011001011 0100011011001011 01 01 01 00011011 00011011 00011011 001011 001011 001011 的结果为 0 0 0 结果为 1,4,3

  • 可见 0010011101001011 0010011101001011 0010011101001011 0100011011001011 0100011011001011 0100011011001011 的结果为 s a m e same same

  • (ps:在截成的小段递归求解时,要把开头和结尾的 0 0 0 1 1 1 去掉,才算是以这个子树的根为起点)

Step 3 思路解释

先输入字符串 s 1 s_1 s1, s 2 s_2 s2,然后去寻找和为 0 0 0 的子串,然后将每一小块递归处理后,加入一个数组。扫描完成后,将数组排序,拼接,即最小表示。

  • (ps:刚开始的时候要加上首位的 0 0 0 1 1 1 ,因为我们的递归是从进入一棵树开始的。)

Step 4 Ac code

#include<bits/stdc++.h>
using namespace std;
string s1,s2;

void fin(string &s){
	if(s=="01") return;
	s=s.substr(1,s.size()-2);
	int st=0,cnt=0;
	vector<string>pass;
	//pass.clear(); 
	for(int i=0;i<s.size();i++){
		cnt+=(s[i]=='0'?1:-1);
		if(!cnt){
			string ss=s.substr(st,i-st+1);
			fin(ss);
			pass.push_back(ss);
			st=i+1;
		}
	}
	sort(pass.begin(),pass.end());
	s='0';
	for(int j=0;j<pass.size();j++) s+=pass[j];
	s+='1';
	return;
}
int main(){
	int t;
	scanf("%d",&t);
	while(t--){
		cin>>s1>>s2;
		s1='0'+s1+'1',s2='0'+s2+'1';
		fin(s1);fin(s2);
		if(s1==s2) printf("same\n");
		else printf("different\n");
	}
	return 0;
}

------------------------------------------------------------------请多多指教-----------------------------------------------------------------------------------------

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1977210.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

五、MYSQL企业常用架构与调优经验理论篇

&#x1f33b;&#x1f33b; 目录 一、选择 PerconaServer、MariaDB 还是 MYSQL二、常用的 MYSQL 调优策略三、MYSOL 常见的应用架构分享四、MYSOL 经典应用架构 注&#xff1a;全是理论干货&#xff0c;没有实战&#xff0c;想看实战的绕路哦&#xff01;&#xff01;&#xf…

ScriptEcho:AI赋能的前端代码生成神器

ScriptEcho&#xff1a;AI赋能的前端代码生成神器 在前端开发中&#xff0c;如果你总是觉得写代码太费时费力&#xff0c;那么 ScriptEcho 将成为你的救星。这个 AI 代码生成平台不仅能帮你省下大量时间&#xff0c;还能让你轻松愉快地写出生产级代码。本文将带你了解 ScriptEc…

Java中spring boot validation 自定义注解使用

创建一个注解 Target({ElementType.FIELD})//需要写注解的三三个要素 Retention(RUNTIME) Documented Constraint(validatedBy {IsSystemYesNoVaildation.class})//绑定 在这里会报错 你需要去实现 public interface IsSystemYesNo {String message() default "数据字典&…

【Python实战】如何优雅地实现文字 二维码检测?

前几篇&#xff0c;和大家分享了如何通过 Python 和相关库&#xff0c;自动化处理 PDF 文档&#xff0c;提高办公效率。 【Python实战】自动化处理 PDF 文档&#xff0c;完美实现 WPS 会员功能【Python实战】如何优雅地实现 PDF 去水印&#xff1f;【Python实战】一键生成 PDF…

自媒体新闻资讯类网站模板/EyouCMS自媒体资讯类网站模板

自媒体新闻资讯类网站模板&#xff0c;EyouCMS自媒体资讯类网站模板。模板自带eyoucms内核&#xff0c;无需再下载eyou系统&#xff0c;原创设计、手工书写DIVCSS&#xff0c;完美兼容IE7、Firefox、Chrome、360浏览器等&#xff1b;主流浏览器&#xff1b;结构容易优化&#x…

U460909 [BCSP小高2024T4]先序遍历/小羊的晚餐 题解

Part.1 有关本题 本蒟蒻想起这道巧妙 又毒瘤 的题&#xff0c;到处搜寻提交窗口。好不容易找到窗口&#xff0c;有花了 3 h 3h 3h 的时间调题。 本蒟蒻为了悲剧不再发生&#xff0c;于是出了这道题&#xff0c;有写下了这篇题解以供后人。 以下的题解默认以阅读过原题。 P…

数学建模--禁忌搜索

目录 算法基本原理 关键要素 应用实例 实现细节 python代码示例 总结 禁忌搜索算法在解决哪些具体类型的组合优化问题中最有效&#xff1f; 禁忌搜索算法的邻域结构设计有哪些最佳实践或案例研究&#xff1f; 如何动态更新禁忌表以提高禁忌搜索算法的效率和性能&#…

FPGA开发——数码管数字时钟的设计

一、概述 数码管数字时钟的基本原理是通过内部的计时电路&#xff08;如晶振、分频器、计数器等&#xff09;产生一个稳定的时钟信号&#xff0c;该信号经过处理后被转换为小时、分钟和秒的时间信息。这些信息随后被发送到数码管显示模块&#xff0c;通过控制数码管中不同LED段…

Android读取拨号记录功能

Android读取拨号记录功能 Android读取拨号记录功能 首先会检测应用是否有读取拨号记录的权限 MainActivity.java public class MainActivity extends AppCompatActivity {private ListView listCalls;private List<Map<String, Object>> mapList;private static f…

有界,可积,存在原函数和连续的关系

目录 1.可积和有界的关系 2.连续和可积的关系 3.连续和存在原函数的关系 4.可积和存在原函数没有关系 1.可积和有界的关系 可积必有界&#xff0c;有界不一定可积&#xff0c;反例可以举狄利克雷函数 2.连续和可积的关系 f(x)连续&#xff0c;则一定可积&#xff0c;可积不…

Mac安装nvm以及配置环境变量

安装nvm brew install nvm安装成功后会出现这样一段话: Add the following to your shell profile e.g. ~/.profile or ~/.zshrc:export NVM_DIR"$HOME/.nvm"[ -s "/opt/homebrew/opt/nvm/nvm.sh" ] && \. "/opt/homebrew/opt/nvm/nvm.sh&q…

Substance Painter界面介绍

1 界面介绍01_哔哩哔哩_bilibili 界面 选择texture 笔刷参数 分成不同的材质球 选择不同工具跟着变动 p4

STL序列式容器之list的使用及实现

std::list 和 std::vector 是两种不同的数据结构&#xff0c;std::vector 是基于数组的动态数组&#xff0c;而 std::list 是基于双向链表的数据结构。list适用于需要在序列中频繁执行插入和删除操作的场景。 1.list的特性 双向链表&#xff1a; list是一个双向链表&#xff…

R 语言学习教程,从入门到精通,R的安装与环境的配置(3)

1、R 基础语法 一门新的语言学习一般是从输出 “Hello, World!” 程序开始&#xff0c;R 语言的 “Hello, World!” 程序代码如下&#xff1a; myString <- "Hello, World!" print ( myString )以上示例将字符串 “Hello, World!” 赋值给 myString 变量&#x…

【hive】HiveSQL中两个json解析函数的使用json路径定位小工具

文章目录 1.HiveSQL中两个json解析函数1&#xff09;get_json_object2&#xff09;json_tuple 2.json中key所在层级路径定位小工具 关于json&#xff1a; https://blog.csdn.net/atwdy/article/details/124668815 1.HiveSQL中两个json解析函数 1&#xff09;get_json_object …

使用 Squid 搭建 Http 代理服务器隐藏 IP

在一些情况下&#xff0c;需要变更自己的访问 IP&#xff0c;可以通过 Squid 搭建代理服务器实现。 本文使用的是 CentOS 7.6 系统。 一、部署 Squid 安装 Squid。 yum install squid -y启动服 systemctl start squid二、访问控制 总有刁民想害郑&#xff0c;疯狂访问朕的…

C++ 最小生成树 洛谷

介绍&#xff1a; 最小生成树是个啥&#xff1f;其实就像杨志一行人押送生辰纲。抛开最后生辰纲被抢的结局不谈&#xff0c;杨志他们需要到好几个地方&#xff0c;每个地方都需要花点过路费给梁山好汉们打点。比如下面就是一张城市地图&#xff1a; 其中每两个图之间的路径长就…

【保姆级系列:锐捷模拟器的下载安装使用全套教程】

保姆级系列&#xff1a;锐捷模拟器的下载安装使用全套教程 1.介绍2.下载3.安装4.实践教程5.验证 1.介绍 锐捷目前可以通过EVE-NG来模拟自己家的路由器&#xff0c;交换机&#xff0c;防火墙。实现方式是把自己家的镜像导入到EVE-ng里面来运行。下面主要就是介绍如何下载镜像和…

【Unity】3D功能开发入门系列(三)

Unity3D功能开发入门系列&#xff08;三&#xff09; 一、运动脚本&#xff08;一&#xff09;物体的运动&#xff08;二&#xff09;相对运动&#xff08;三&#xff09;运动的方向 二、旋转脚本&#xff08;一&#xff09;物体的旋转&#xff08;二&#xff09;相对旋转&…

图像相关的基础知识【RGB和RGBA】—附python代码实现

文章目录 1、图像基础知识2、像素和通道的理解3、RGB和RGBARGB (Red, Green, Blue)RGBA (Red, Green, Blue, Alpha)应用场景 4、H,W,C5、小结 &#x1f343;作者介绍&#xff1a;双非本科大三网络工程专业在读&#xff0c;阿里云专家博主&#xff0c;专注于Java领域学习&#x…