C++:[NWRRC2015] Concatenation(洛谷)P7050

题目描述

Famous programmer Gennady likes to create new words. One way to do it is to concatenate existing words. That means writing one word after another. For example, if he has words cat and dog, he would get a word catdog, that could mean something like the name of a creature with two heads: one cat head and one dog head.

Gennady is a bit bored of this way of creating new words, so he has invented another method. He takes a non-empty prefix of the first word, a non-empty suffix of the second word, and concatenates them. For example, if he has words tree and heap, he can get such words as treaptap, or theap. Who knows what they could mean?

Gennady chooses two words and wants to know how many different words he can create using his new method. Of course, being a famous programmer, he has already calculated the answer. Can you do the same?

输入格式

Two lines of the input file contain words chosen by Gennady. They have lengths between 11 and 100000100000 characters and consist of lowercase English letters only.

输出格式

Output one integer -- the number of different words Gennady can create out of words given in the input file.

题意翻译

题目描述

著名的程序员 Gennady 喜欢创造新单词。其中一种方法是连接现有单词。

举个例子:如果 Gennady 有 cat 和 dog 两个词,那么他会得到一个新词: catdog,这可能意味着带有两个头的生物的名字:一个猫头和一个狗头。

Gennady 觉得这种创建新单词的方式有点无聊,因此他发明了另一种方法:使用第一个单词的非空前缀,第二个单词的非空后缀,并将它们连接起来。例如,如果他有单词 tree 和 heap ,则可以得到诸如 treaptap 或 theap 之类的单词。

Gennady 选择了两个单词,并想知道他可以使用新方法创建多少个不同的单词。当然,作为著名的程序员,他已经计算出了答案。他突然想考考你,那么你能编写一个程序把答案计算出来吗?

输入格式

两行,每行有一个 Gennady 选择的单词 si​​ (1≤∣si​∣≤100000),si​ 仅由小写英文字母组成)。

输出格式

输出一个整数,这个整数表示 Gennady 可以从这两个给定的单词中创建不同单词的数量。

输入输出样例

输入 #1

cat
dog

输出 #1

9

输入 #2

tree
heap

输出 #2

14

说明/提示

Time limit: 2 s, Memory limit: 256 MB.

解析:

题目大意:

求两个单词能组成多少个新单词。

举例:

首先我们先拿两个单词来举例一下:

第一种是没有重复的情况:

dogdog 与 catcat。

它们能够组成的单词如下:

dcat , dat , dt , docat , doat , dot , dogcat , dogat , dogt dcat , dat , dt , docat , doat , dot , dogcat , dogat , dogt 

第二种是有重复的情况:

treetree 与 heapheap。

它们能够组成的单词如下:

theap , teap , tap , tp , trheap , treap , trap , trp , trehaep , treeap , treap , trep , treeheap , treeeap , treeap , treep theap , teap , tap , tp , trheap , treap , trap , trp , trehaep , treeap , treap , trep , treeheap , treeeap , treeap , treep 

我们能发现在这些新单词中有重复的,我们就将重复的删除掉。

剩下的单词: theap , teap , tap , tp , trheap , trap , trp , trehaep , treap , trep , treeheap , treeeap , treeap , treep theap , teap , tap , tp , trheap , trap , trp , trehaep , treap , trep , treeheap , treeeap , treeap , treep 

思路:

构成方法:用第一个单词的非空前缀,用第二个单词的非空后缀

那么我们可以用 ans 记录答案,再初始化设为两个单词长度之积,就是能创造的所有单词。

而前面我们已将两种情况都举例了一遍,就可以先减去所有重复单词,且重复单词就是两个单词相同的字母数量乘积,最后输出。

话不多说,上code:

#include <bits/stdc++.h>
using namespace std;
const int N=2e1+6;
string s1,s2;
long long a[N],b[N];
long long ans,x,y;
int main(){cin>>s1>>s2;x=s1.size(),y=s2.size();for(int i=1;i<x;i++)a[s1[i]-'a']++;for(int i=0;i<y-1;i++)b[s2[i]-'a']++;for(int i=0;i<26;i++)	ans+=a[i]*b[i];printf("%lld",x*y-ans);return 0;
}

记得点个赞哟!

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

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

相关文章

【系统安全】浅谈保障接口安全的10种技术手段

接口安全是系统稳定亘古不变的道理&#xff0c;作为程序员可以从哪些方面下手呢&#xff1f; 注&#xff1a;因为一些原因&#xff0c;突然想总结接口安全的重要性。之前写过类似的文章&#xff0c;今天增加一些案例总结其应用场景。 1、接口传输加密&#xff0c;不单单依赖h…

spring-boot操作elasticsearch

一、环境准备 springboot与elasticsearch的更新都非常快&#xff0c;为了避免兼容性问题&#xff0c;要注意下选择的版本问题。具体的可参考官网 --> springboot与elasticsearch版本兼容性 1.1导入依赖 <dependencies><dependency><groupId>org.spring…

深度学习基础知识之通道数channels

大多数的深度学习模型&#xff0c;模型上会展示图片的尺寸&#xff0c;如&#xff1a;352x352x3 这里面352x352表示的是像素大小&#xff0c;即高和宽都为352个像素&#xff0c;而3表示的是通道数&#xff0c;指输入的是3通道的RGB图像&#xff0c;每个颜色通道的取值范围为0-2…

中间件面试题之ElasticSearch

ElasticSearch相关面试题 此题是xx位面试题 (1)有两个机房,每个机房两台服务器,总共有4台服务器搭建的ES集群,怎么控制所有副本在一个机房或者某些节点里面。 可以通过打标签的形式,指定哪些索引的主分片在哪个节点上。 首先指定节点的类型: ## 指定节点类型 方式 …

在Ubuntu中如何基于conda安装jupyterlab

在Ubuntu中如何创建ipykernel 可以用下面命令完成 conda create -n newenv python3.8conda activate enwenvconda install ipykernel5.1.4conda install ipython_genutilsipython -m ipykernel install --user --namepython3 --display-name Python3conda install -c conda-fo…

k8s的pod和svc相互访问时网络链路解析

k8s的pod和svc相互访问时网络链路解析 1. k8s环境中pod相互访问1.1. k8s中pod相互访问的整体流程1.2. k8s的相同机器的不同pod相互访问1.3. k8s的不同机器的不同pod相互访问 3. k8s访问svc3.1 nat操作3.2 流量进入到后端pod 4. 疑问和思考4.1 访问pod相互访问为什么不用做nat?…

使用go开发的小tips

开启go modGOROOT是你下载的go编译器的目录。GOPATH的位置是Go开发的工作空间&#xff0c;比如可用于保存Go项目的代码和第三方依赖包。下载不了包多半是镜像源有问题&#xff0c;什么阿里七牛都试下go mod tidy可以拉取未下载的包&#xff0c;移除没用上的包进行web开发时热重…

服务器简单介绍

服务器简单介绍 从软件研究到了硬件&#xff08;伤心&#xff09;&#xff0c;需要学习的太多了。硬件从来不是我的爱好范畴&#xff0c;奈何最近的项目需要考虑和提出的方案需要考虑的挺多&#xff0c;一点点啃吧&#xff01;日记式逐步记下&#xff1a; 服务器分类 按计算器…

保研复习数据结构记(9)--基数排序

基数排序的过程&#xff1f;首先设置r个&#xff08;r&#xff1a;每个关键字位可以对应多少取值&#xff09;空队列&#xff0c;&#xff0c;按照各个关键字位权重递增的次序&#xff08;个、十、百&#xff09;&#xff0c;将d个元素&#xff08;关键字可以被拆分成d个部分&a…

YoloV8实战:YoloV8-World应用实战案例

摘要 YOLO-World模型确实是一个突破性的创新,它结合了YOLOv8框架的实时性能与开放式词汇检测的能力,为众多视觉应用提供了前所未有的解决方案。以下是对YOLO-World模型的进一步解读: 模型架构与功能 YOLO-World模型充分利用了YOLOv8框架的先进特性,并引入了开放式词汇检…

uView Collapse 折叠面板

通过折叠面板收纳内容区域 #平台差异说明 App&#xff08;vue&#xff09;App&#xff08;nvue&#xff09;H5小程序√√√√ #基本使用 <template><u-collapsechange"change"close"close"open"open"><u-collapse-itemtitle&…

使用node.js 开发后端的优缺点

node做后端的缺点是&#xff1a; 1.nodejs单线程&#xff0c;不能做cpu密集型操作&#xff0c;导致时间片不能释放&#xff0c;阻塞后面的任务。 2.nodejs可靠性比较低&#xff0c;一个地方报错会导致整个程序崩溃&#xff0c;需要守护进程或者docker重启来解决。 3.像使用多…

金枪鱼群优化算法TSO优化BiLSTM-ATTENTION实现风力发电功率预测(matlab)

金枪鱼群优化算法TSO优化BiLSTM-ATTENTION实现风力发电功率预测&#xff08;matlab&#xff09; TSO-BiLSTM-Attention金枪鱼群算法优化长短期记忆神经网络结合注意力机制的数据回归预测 Matlab语言。 金枪鱼群优化算法&#xff08;Tuna Swarm Optimization&#xff0c;TSO)是一…

生成式人工智能服务安全基本要求实务解析

本文尝试明晰《基本要求》的出台背景与实践定位&#xff0c;梳理《基本要求》所涉的各类安全要求&#xff0c;以便为相关企业遵循执行《基本要求》提供抓手。 引言 自2022年初以来&#xff0c;我国陆续发布算法推荐、深度合成与生成式人工智能服务相关的规范文件&#xff0c;…

丘一丘正则表达式

正则表达式(regular expression,regex,RE) 正则表达式是一种用来简洁表达一组字符串的表达式正则表达式是一种通用的字符串表达框架正则表达式是一种针对字符串表达“简洁”和“特征”思想的工具正则表达式可以用来判断某字符串的特征归属 正则表达式常用操作符 操作符说明实…

鸿蒙Harmony应用开发—ArkTS声明式开发(基础手势:Search)

搜索框组件&#xff0c;适用于浏览器的搜索内容输入框等应用场景。 说明&#xff1a; 该组件从API Version 8开始支持。后续版本如有新增内容&#xff0c;则采用上角标单独标记该内容的起始版本。 子组件 无 接口 Search(options?: { value?: string, placeholder?: Reso…

webpack5高级--02_提升打包构建速度

提升打包构建速度 一、HotModuleReplacement 为什么 开发时我们修改了其中一个模块代码&#xff0c;Webpack 默认会将所有模块全部重新打包编译&#xff0c;速度很慢。 所以我们需要做到修改某个模块代码&#xff0c;就只有这个模块代码需要重新打包编译&#xff0c;其他模…

混合云构建-VPN打通阿里云和Azure云

要在阿里云和Azure云之间通过VPN打通网络,您需要在两边分别设置VPN网关,并配置相应的连接和路由规则以确保两个云环境之间的网络流量可以互通。以下是一个基本的步骤指南: 为了更具体地说明如何在阿里云和Azure之间通过VPN打通网络,我们将通过一个简化的示例来演示整个过程…

ArcGIS JSAPI 学习教程 - ArcGIS Maps SDK for JavaScript 不同版本4.8-4.28(最新版)离线部署

ArcGIS JSAPI 学习教程 - ArcGIS Maps SDK for JavaScript 不同版本4.8-4.28&#xff08;最新版&#xff09;SDK离线部署 测试资源4.18 以及之前版本4.19 以及之后版本 接触一段时间 ArcGIS JSAPI 之后&#xff0c;整体感觉还好&#xff0c;后来需要解决不同版本问题&#xff0…

redis中通用命令以及key过期策略

通用命令 exists 判断某个key是否存在。 exists key时间复杂度&#xff1a;O(1) 返回值&#xff1a;key 存在的个数。 del 删除指定的 key&#xff0c;可以一次删除一个或者多个。 del key时间复杂度&#xff1a;O(1) 返回值&#xff1a;删除掉的 key 的个数。 expire…