首页 > 其他分享 >日常训练2025-1-3

日常训练2025-1-3

时间:2025-01-03 21:11:25浏览次数:1  
标签:std 缩写 ss 训练 vis int 2025 日常 INF

日常训练2025-1-3

C. Saraga

rating:1400

https://codeforces.com/problemset/problem/2045/C

思路(Trick )

题目说至少要将缩写拆分成2个非空子串,我们就思考一下分成两个的情况

假设一个缩写由三部分组成,为:a + b + c

则必须满足,a+b 是 S 的前缀, c 是 T 的后缀,且 a 是 S 的前缀,b+c 是 T 的后缀。可以看出的是,S 和 T 中必须有个相同的部分 b ,为了满足题目要的长度最小的缩写,所以 b 的长度应该为 1 。且 b 位置不在 S 的第一位,因为这样就没有 a 了,同样不能是 T 的最后一位,这样就没有 c 了

所以题目就是让我们在S和T中选一个共有的字符b,找由此字符切分的缩写的最小长度。

做法就是先把 S 串中所有出现过的字符的最左出现位置记录一下,在枚举 T 中的每一个字符,如果在a中出现过则可以快速算出切分出的缩写的大小,最后选一个长度最小的就行。

代码

#include <bits/stdc++.h>

typedef std::pair<int, int> pii;
#define INF 0x3f3f3f3f
#define MOD 998244353
using i64 = long long;
const int N = 1e5+5;

void solve(){
	std::string s, t;
	std::cin >> s >> t;

	int n = s.size(), m = t.size();

	std::array<int, 26> vis;
	std::fill(vis.begin(), vis.end(), INF);

	for (int i = 1; i < n; i++){
		vis[s[i] - 'a'] = std::min(vis[s[i]-'a'], i);
	}

	int len1 = INF;
	std::array<int, 2> ss{-1, -1};

	for (int i = m - 2; i >= 0; i--){
		if (vis[t[i]-'a'] != INF){
			if (vis[t[i]-'a']+1 + m - i < len1){
				len1 = vis[t[i]-'a']+1 + m - i;
				ss[0] = vis[t[i]-'a'];
				ss[1] = i;
			}
		}
	}

	if (ss[0] == -1){
		std::cout << ss[0] << '\n';
		return;
	}

	std::string ans1 = s.substr(0, ss[0]+1) + t.substr(ss[1]+1, m-ss[1]+1);

	std::cout << ans1 << '\n';
}

signed main()
{
	std::ios::sync_with_stdio(false);
	std::cin.tie(nullptr);
	std::cout<<std::setiosflags(std::ios::fixed)<<std::setprecision(2);
	int t = 1, i;
	for (i = 0; i < t; i++){
		solve();
	}
	return 0;
}

标签:std,缩写,ss,训练,vis,int,2025,日常,INF
From: https://www.cnblogs.com/califeee/p/18650911

相关文章

  • 高级java每日一道面试题-2025年01月03日-并发篇-什么是Callable和Future?
    如果有遗漏,评论区告诉我进行补充面试官:什么是Callable和Future?我回答:Callable定义与功能:Callable是Java5引入的一个接口,用于定义可并发执行的任务。它类似于Runnable接口,但提供了更多的功能。Callable可以在执行完成后返回结果,而Runnable无法返回任何结果。Call......
  • 高级java每日一道面试题-2025年01月03日-并发篇-索引是什么?
    如果有遗漏,评论区告诉我进行补充面试官:索引是什么?我回答:在Java高级面试中,“索引”这个概念可以涉及到多个方面,包括但不限于数据库中的索引、Java集合框架中的索引(如List接口)、以及某些数据结构或算法中的索引。为了提供一个详尽的解释,我们将从不同角度来探讨“......
  • 2025/1/3 阅读综述论文
    所有作业的最大完成时间称为Makespan一、FJSP相关的发表文献的优化目标:1.最大完成时间(Themaximumcompletiontime):CMax=max(1≤i≤n)ciCi 是作业Ji 的完成时间2.总流动时间(Thetotalflowtime):CFlow=∑(1≤i≤n)ci3.最大机器工作负载(Themaximummachineworkload):WMax=......
  • bean基础配置 -2025/1/2
    bean的name属性别名配置bean的scope配置默认情况下,Spring创建的bean对象都是单例的结论,使用bean的scope属性可以控制bean的创建是否为单例:singleton默认为单例prototype为非单例小结:实例化bean的三种方式构造方法(常用)......
  • 2025-计算机人工智能-毕业论文(毕业设计)选题推荐
    多项目demo演示目录前言一、选题的关键要点是什么?1 避开高重复率题目2 考虑市场和行业需求3寻求导师或专业人士指导二、选题推荐人工智能方向(推荐指数:⭐⭐⭐⭐⭐)1基于目标检测的零食自动收银系统2基于深度学习的校园安防监控系统3基于图像分割的农作物病害......
  • 你好2025!新年有什么打算?
    编者:MariaVincent发表时间:Jan1,2025原文链接:https://astrobites.org/2025/01/01/hello-2025-whats-up-for-the-new-year/在全球各地盛大的烟花汇演中,随着世界又一次围绕太阳进行往返旅行,2025年的天文学和太空探索将迎来许多具有里程碑意义的里程碑和激动人心的事件。我们又......
  • 2025年flask宠物用品网上商城的设计与实现 程序+论文 可用于计算机毕业设计
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容选题背景随着互联网的飞速发展和人们生活水平的提高,宠物已成为许多家庭的重要成员,宠物经济的发展势头日益强劲。关于宠物用品的研究,现有研究主要以......
  • 2025年flask宠物用品网上商城购物系统 程序+论文 可用于计算机毕业设计
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容选题背景随着互联网的快速发展和宠物经济的崛起,宠物用品市场迎来了前所未有的增长机遇。关于宠物用品网上商城的研究,现有文献主要集中在电子商务平......
  • 深度学习基础理论————训练加速(单/半/混合精度训练)/显存优化(gradient-checkpoint)
    主要介绍单精度/半精度/混合精度训练,以及部分框架(DeepSpeed/Apex)不同精度训练单精度训练(single-precision)指的是用32位浮点数(FP32)表示所有的参数、激活值和梯度半精度训练(half-precision)指的是用16位浮点数(FP16或BF16)表示数据。(FP16是IEEE标准,BF16是一种更适合AI计算的......
  • 2025年flask宠物医院后台管理系统设计与实现 程序+论文 可用于计算机毕业设计
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容选题背景随着宠物经济的蓬勃发展,宠物医院作为宠物健康保障的重要一环,其管理效率和服务质量直接关系到宠物主人的满意度和宠物的健康福祉。当前,关于......