Codeforces Round 930 (Div. 2)

substr时间复杂度O(N),不能一遍遍找,会超时  

#include<iostream>
#include<algorithm>
#include<vector>
#include<map>
using namespace std;
const int N=5e5+10;
map<string,int>mp;
vector<string>v[N];
int main()
{
	int t;cin>>t;
	while(t--)
	{
		int n;cin>>n;
		string s1,s2;cin>>s1>>s2;
		mp.clear();
		string ss;
		for(int i=0;i<=n;i++)
		{
			ss+="1";
		}
		for(int i=0;i<n;i++)
		{
		    string x=s1[0]+s1.substr(1,i)+s2.substr(i);
			mp[x]++;
	        //out<<s1.substr(0,i)<<" "<<s2.substr(i)<<endl;
			if(x<ss) ss=x;
		}
		cout<<ss<<endl<<mp[ss]<<endl;
	}
	return 0;
}

 

#include<iostream>
#include<algorithm>
#include<vector>
#include<map>
using namespace std;
const int N=5e5+10;
map<string,int>mp;
vector<string>v[N];
int main()
{
	int t;cin>>t;
	while(t--)
	{
		int n;cin>>n;
		string s1,s2;cin>>s1>>s2;
	    string x=s1+s2[n-1];
	    int num=n-1;
	    int flag=0;
	    //substr时间复杂度O(n) 不可一一查询会超时 
	    for(int i=0;i<n;i++)
	    {
	    	//找到这个点时就是最佳的拐点 
	    	if(s1[i]=='1'&&s2[i-1]=='0')
	    	{
	    		x=s1.substr(0,i)+s2.substr(i-1);
	    		num=i-1;
	    		break;
			}
		}
		int cnt=1;
		for(int j=num;;j--)
		{
			//倒着走不相等 就不可以了 如果相等说明向下向右都可以即++ 一定是连续的交叉相等
			//一旦出现不相等 就结束 即方案数 
			if(s1[j]!=s2[j-1]) break;
			cnt++;
		}
		cout<<x<<endl<<cnt<<endl;
	}
	return 0;
}

 DP

#include<iostream>
#include<algorithm>
#include<vector>
#include<map>
using namespace std;
const int N=5e5+10;
map<string,int>mp;
vector<string>v[N];
int main()
{
	int t;cin>>t;
	while(t--)
	{
		int n;cin>>n;
		int arr[2][n];
		int dp[2][n];
		for(int i=0;i<=1;i++)
	    {
	    	string s;cin>>s;
	    	for(int j=0;j<n;j++)
	    	{
	    		arr[i][j]=s[j]-'0';//首先预处理 
	    		dp[i][j]=0;//dp值预处理 
			}
		}
		dp[0][0]=1;//初始点唯一,一个方案 
		string ans;
		ans+=(char)(arr[0][0]+'0');//然后初始点也要在路径字符串上算上 
		for(int i=0;i<=n-1;i++)//总共移动步数 
		{
			int tmp=1;
			//第一部分 看后面能不能转移到0 
			for(int j=0;j<=1;j++)//向下几次 
			{
				//枚举当前可能的点 走不了 不可能转移次数大于移动次数
				if(j>i) continue; 
				int x=j,y=i-j;//找出枚举的点 
				if(dp[x][y]==0) continue;//如果这个点不能被走到 就continue 
				if(x==0)//否则能向下 
				{
					if(arr[x+1][y]==0)//看向下能不能走到0 
					{
						tmp=0;
					}
				}
				if(y<=n-2)//能向右 
				{
					if(arr[x][y+1]==0)
					{
						tmp=0;//看向右能不能走到0
					}
				}
			}
			//把目前添加的字符添加进去 
			if(tmp==0) ans+='0';
			else ans+='1';
			//第二部分,我们再把应该转移的去转移一下 
			for(int j=0;j<=1;j++)
			{
				if(j>i) continue;
				int x=j ,y=i-j;
				if(dp[x][y]==0)continue;
				if(x==0)
				{
					if(arr[x+1][y]==tmp)
					{
						dp[x+1][y]+=dp[x][y];
					}
				}
				if(y<=n-2)
				{
					if(arr[x][y+1]==tmp)
					{
						dp[x][y+1]+=dp[x][y];
					}
				}
			}
		 } 
		cout<<ans<<endl;
		cout<<dp[1][n-1]<<endl;
	}
	return 0;
}

 

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Vision Pro开发者学习路线

官方给到的Vision Pro开发者学习路线&#xff1a; 1. 学习基础知识&#xff1a; - 学习 Xcode、Swift 和 SwiftUI 的基础知识&#xff0c;包括语法、UI 设计等。 - 掌握 ARKit 和 SwiftUI 的使用&#xff0c;了解如何创建沉浸式增强现实体验。 2. 学习 3D 建模&#xf…

基于springboot+vue的网上服装商城

博主主页&#xff1a;猫头鹰源码 博主简介&#xff1a;Java领域优质创作者、CSDN博客专家、阿里云专家博主、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战&#xff0c;欢迎高校老师\讲师\同行交流合作 ​主要内容&#xff1a;毕业设计(Javaweb项目|小程序|Pyt…

leetcode 热题 100_接雨水

题解一&#xff1a; 按列求&#xff1a;分别考虑每一列的雨水高度&#xff0c;某列的雨水高度只与其左侧最高墙和右侧最高墙有关&#xff0c;一种情况是该列比左右侧的墙都低&#xff0c;则根据木桶效应该列雨水高度为min(左侧墙高&#xff0c;右侧墙高)-列高&#xff0c;而其余…

Maven 学习与IDEA配置

(一) Maven 概述 [1]. 简介 Apache Maven 是一个项目管理和构建工具&#xff0c;它基于项目对象模型(POM)的概念&#xff0c;通过一小段描述信息来管理项目的构建、报告和文档 官网&#xff1a;http://maven.apache.org/ Maven是专门用于管理和构建Java项目的工具&#xff0…

算法43:动态规划专练(最长回文子串 力扣5题)---范围模型

之前写过一篇最长回文子序列的博客算法27&#xff1a;最长回文子序列长度&#xff08;力扣516题&#xff09;——样本模型 范围模型-CSDN博客 在那一篇博客中&#xff0c;回文是可以删除某些字符串组成的。比如&#xff1a; 字符串为&#xff1a;a1b3c4fdcdba&#xff0c; 那…

Typora旧版链接(Win+Mac+Linux版)

记得点赞本文&#xff01;&#xff01;&#xff01; 链接&#xff1a;https://pan.baidu.com/s/1IckUvQUBzQkfHNHXla0zkA?pwd8888 提取码&#xff1a;8888 –来自百度网盘超级会员V7的分享

JavaWeb—— SpringBootWeb综合案例(登录功能、登录校验、异常处理)

案例-登录认证 目录 案例-登录认证1. 登录功能1.1 需求1.2 接口文档1.3 思路分析1.4 功能开发1.5 测试 2. 登录校验2.1 问题分析2.2 会话技术2.2.1 会话技术介绍2.2.2 会话跟踪方案2.2.2.1 方案一 - Cookie2.2.2.2 方案二 - Session2.2.2.3 方案三 - 令牌技术 2.3 JWT令牌2.3.1…

JS 对象数组排序方法测试

输出 一.Array.prototype.sort() 1.默认排序 sort() sort() 方法就地对数组的元素进行排序&#xff0c;并返回对相同数组的引用。默认排序是将元素转换为字符串&#xff0c;然后按照它们的 UTF-16 码元值升序排序。 由于它取决于具体实现&#xff0c;因此无法保证排序的时…

Zookeeper基础入门-1【集群搭建】

Zookeeper基础入门-1【集群搭建】 一、Zookeeper 入门1.1.概述1.2.Zookeeper工作机制1.3.Zookeeper特点1.4.数据结构1.5.应用场景1.5.1.统一命名服务1.5.2.统一配置管理1.5.3.统一集群管理1.5.4.服务器动态上下线1.5.5.软负载均衡 1.6.Zookeeper官网1.6.1.Zookeeper下载1.6.2.历…

软考56-上午题-【数据库】-数据库设计步骤2

一、回顾&#xff1a;数据库设计的步骤 1、用户需求分析&#xff1a;手机用户需求&#xff0c;确定系统边界&#xff1b; 2、概念设计&#xff08;概念结构设计&#xff09;&#xff1a;是抽象概念模型&#xff0c;较理想的是采用E-R方法。 3、逻辑设计&#xff1a;E-R图——…

带你了解 JavaScript 中的对象

带你了解 JavaScript 中的对象 基本概念 对象指的就是一个具体的事物&#xff0c;在JavaScript中, 字符串, 数值, 数组, 函数都是对象 每个对象中包含若干的属性和方法 属性: 事物的特征 方法: 事物的行为 1.使用字面量创建对象 使用{ }创建对象 属性和方法使用键值对的形式…

linux高级编程:线程(二)、进程间的通信方式

线程&#xff1a; 回顾线程&#xff08;一&#xff09;&#xff1a; 1.线程间通信问题 线程间共享同一个资源&#xff08;临界资源&#xff09; 互斥&#xff1a; 排他性访问 linux系统 -- 提供了Posix标准的函数库 -- 互斥量&#xff08;互斥锁&#xff09; 原子操作&#x…

1.1 简述卷积的基本操作,卷积和全连接层的区别?

1.1 简述卷积的基本操作&#xff0c;卷积和全连接层的区别&#xff1f; 摘要&#xff1a; 全连接层的输出层每个节点与输入层的所有节点连接。 卷积层具有局部连接和权值共享的特性。 问题&#xff1a;简述卷积的基本操作&#xff0c;并分析其与全连接层的区别。 分析与解答&a…

【计算机网络】深度学习HTTPS协议

&#x1f493; 博客主页&#xff1a;从零开始的-CodeNinja之路 ⏩ 收录文章&#xff1a;【计算机网络】深度学习HTTPS协议 &#x1f389;欢迎大家点赞&#x1f44d;评论&#x1f4dd;收藏⭐文章 目录 一:HTTPS是什么二:HTTPS的工作过程三:对称加密四:非对称加密五:中间人攻击1…

JAVA内存模型与JVM内存结构

注意区分Java内存模型&#xff08;Java Memory Model&#xff0c;简称JMM&#xff09;与Jvm内存结构&#xff0c;前者与多线程相关&#xff0c;后者与JVM内部存储相关。本文会对两者进行简单介绍。 一、JAVA内存模型(JMM) 1. 概念 说来话长&#xff0c;由于在不同硬件厂商和…

详解动态规划(算法村第十九关青铜挑战)

不同路径 62. 不同路径 - 力扣&#xff08;LeetCode&#xff09; 一个机器人位于一个 m x n 网格的左上角 &#xff08;起始点在下图中标记为 “Start” &#xff09;。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角&#xff08;在下图中标记为 “Finis…

重载(Overload)和重写(Override)的区别。重载的方法能否根据返回类型进行区分?

大家好我是苏麟 , 今天开始又一个专栏开始了(又一个坑 哈哈) . 重载&#xff08;Overload&#xff09;和重写&#xff08;Override&#xff09;的区别。重载的方法能否根据返回类型进行区分&#xff1f; 方法的重载和重写都是实现多态的方式&#xff0c;区别在于前者实现的是编…

pyqt5怎么返回错误信息给页面(警告窗口)

在软件设计中&#xff0c;我们可能会遇到对异常的处理&#xff0c;有些异常是用户需要看到的&#xff0c;比如说&#xff0c;当我们登录出错的时候&#xff0c;后端需要给我们返回响应的错误信息&#xff0c;就像下图实现的这样。 类似这种效果&#xff0c;我们该如何实现&…

C++真题列表

题目解析&#xff1a;RAM是闪存&#xff0c;只要一关机一拔电&#xff0c;就会丢失数据 题目解答&#xff1a;A 题目解析&#xff1a;TXT格式是文本文档 题目解答&#xff1a;B 题目解析&#xff1a;IP地址中每一个字节的取值范围是[0~255]&#xff0c;是不可能有256的 题目…

2024最新算法:美洲狮优化算法(Puma Optimizar Algorithm ,POA)求解23个基准函数(提供MATLAB代码)

一、美洲狮优化算法 美洲狮优化算法&#xff08;Puma Optimizar Algorithm &#xff0c;POA&#xff09;由Benyamin Abdollahzadeh等人于2024年提出&#xff0c;其灵感来自美洲狮的智慧和生活。在该算法中&#xff0c;在探索和开发的每个阶段都提出了独特而强大的机制&#xf…