语言月赛 202311【基因】题解(AC)

》》》点我查看「视频」详解》》》
[语言月赛 202311] 基因
题目描述
有一个长度为 n n n 的字符串 S S S。其只包含有大写字母。
小 A 将 S S S 进行翻转后,得到另一个字符串 S ′ S' S′。两个字符串 S S S 与 S ′ S' S′ 对应配对。例如说,对于 S = A T C G T S=\tt{ATCGT} S=ATCGT,则有 S ′ = T G C T A S'=\tt{TGCTA} S′=TGCTA, S S S 与 S ′ S' S′ 进行配对。
对于两个字符串 S , S ′ S,S' S,S′ 的第 i i i( 1 ≤ i ≤ n 1 \leq i \leq n 1≤i≤n)个字母,配对规则如下:
- 定义 A \tt A A 与 T \tt T T, C \tt C C 与 G \tt G G 为可以配对的字母。
- 如果 S i S_i Si 与 S i ′ S_i' Si′ 为可以配对的字母,那么该字符串的稳定性增加 i i i。
- 如果 S i S_i Si 或者 S i ′ S_i' Si′ 中任意一方出现非 A , T , C , G \tt A,\tt T,\tt C,\tt G A,T,C,G 的字母,则整个字符串的稳定性将直接为 0 0 0。
现在给定 T T T 个字符串 S S S,对每一个字符串,询问若用其翻转再进行配对,其稳定性将如何。
输入格式
第一行输入一个正整数 T T T,表示给定多少个字符串。对于每一个字符串:
- 第一行输入一个正整数 n n n,表示字符串的长度;
- 第二行输入一个字符串 S S S,表示该字符串。
输出格式
对于每个字符串,输出一行一个整数,表示若用其翻转再进行配对,其稳定性将如何。
样例 #1
样例输入 #1
3
5
ATCGT
6
ACATGT
5
ATCGU
样例输出 #1
6
21
0
提示
【样例解释】
- 对于第一个字符串, S = A T C G T S=\tt{{A}TCG{T}} S=ATCGT, S ′ = T G C T A S'=\tt{{T}GCT{A}} S′=TGCTA。标红色的一组与蓝色的一组为可以配对的字母。它们分别是 S S S 的第 1 1 1 个字母和第 5 5 5 个字母,因此稳定性是 1 + 5 = 6 1+5=6 1+5=6。
- 对于第二个字符串, S = A C A T G T S=\tt{{A}{C}{A}{T}{G}{T}} S=ACATGT, S ′ = T G T A C A S'=\tt{{T}{G}{T}{A}{C}{A}} S′=TGTACA,每个对应位置上的字母都可以配对,因此稳定性是 1 + 2 + 3 + ⋯ + 6 = 21 1+2+3+\dots+6=21 1+2+3+⋯+6=21
- 对于第三条字符串,出现了非 A , T , C , G \tt A,\tt T,\tt C,\tt G A,T,C,G 的字母 U \tt U U,因此稳定性为 0 0 0。
【数据范围】
对于所有数据,保证: 1 ≤ T ≤ 5 1\leq T\leq 5 1≤T≤5, 1 ≤ n ≤ 1 0 5 1\leq n\leq 10^5 1≤n≤105, S S S 中出现的所有字母保证为大写英语字母。
AC_Code
#include <bits/stdc++.h>
using namespace std;bool check1(char a)
{if(a != 'A' && a != 'T' && a != 'C' && a != 'G')return false;return true;
}bool check2(char a, char b)
{if(a == 'T' && b == 'A') return true;if(a == 'A' && b == 'T') return true;if(a == 'C' && b == 'G') return true;if(a == 'G' && b == 'C') return true;return false;
}int main()
{int t;cin >> t;while(t --){int n;string s1;cin >> n >> s1;string s2 = s1;reverse(s2.begin(), s2.end());long long tot = 0;for(int i = 0; i < s1.size(); i ++){if(!check1(s1[i]) || !check1(s2[i])){tot = 0;break;}if(check2(s1[i], s2[i]))tot += i + 1;}cout << tot << "\n";}return 0;
}
》》》点我查看「视频」详解》》》
相关文章:
语言月赛 202311【基因】题解(AC)
》》》点我查看「视频」详解》》》 [语言月赛 202311] 基因 题目描述 有一个长度为 n n n 的字符串 S S S。其只包含有大写字母。 小 A 将 S S S 进行翻转后,得到另一个字符串 S ′ S S′。两个字符串 S S S 与 S ′ S S′ 对应配对。例如说,对…...
Spring @PropertySource:让你的应用配置更加模块化和可维护
PropertySource注解在Spring中的作用,就像是给Spring应用配了一个“外部配置箱”。 想象一下,你在开发一个Spring应用时,有很多配置信息需要设置,比如数据库的连接信息、应用的某些功能开关等。如果这些信息都硬编码在代码中&…...
Deep Sleep 96小时:一场没有硝烟的科技保卫战
2025年1月28日凌晨3点,当大多数人还沉浸在梦乡时,一场没有硝烟的战争悄然打响。代号“Deep Sleep”的服务器突遭海量数据洪流冲击,警报声响彻机房,一场针对中国关键信息基础设施的网络攻击来势汹汹! 面对美国发起的这场…...
快速搭建GPU环境 | docker、k8s中使用gpu
目录 一、裸机部署安装 GPU Driver安装 CUDA Toolkit测试 二、Docker 环境安装 nvidia-container-toolkit配置使用该 runtime 三、 k8s 环境安装 device-plugin安装 GPU 监控 一、裸机部署 裸机中要使用上 GPU 需要安装以下组件: GPU DriverCUDA Toolkit 二者的关…...
【戒抖音系列】短视频戒除-1-对推荐算法进行干扰
如今推荐算法已经渗透到人们生活的方方面面,尤其是抖音等短视频核心就是推荐算法。 【短视频的危害】 1> 会让人变笨,慢慢让人丧失注意力与专注力 2> 让人丧失阅读长文的能力 3> 让人沉浸在一个又一个快感与嗨点当中。当我们刷短视频时&#x…...
DeepSeek写的lammps反应势断键动态显示程序
最近DeepSeek比较火,跟风试用了一下。 让DeepSeek写了一个lammps反应势模拟的断键动态显示代码。 假如你是一名lammps专家,现在用reaxff反应势模拟一个聚乙烯裂解的分子动力学模拟,模拟的轨迹文件为:dump.lammpstrj,反应产物信息文件为:bonds.reaxff,bonds.reaxff文件包…...
npm中央仓库
1、官网地址 npm | Home 2、搜索依赖包...
2025年软考考试时间及考试科目如何安排?附考试注意事项!
一、考试时间 2025年软考举行两次考试,分别安排在上半年和下半年。根据最新公布的信息,2025年软考考试的具体时间安排如下: 上半年考试时间:5月24日至5月27日 下半年考试时间:11月8日至11月11日 考生需要在规定的时间内…...
4.PPT:日月潭景点介绍【18】
目录 NO1、2、3、4 NO5、6、7、8 NO9、10、11、12 表居中或者水平/垂直居中单元格内容居中或者水平/垂直居中 NO1、2、3、4 新建一个空白演示文稿,命名为“PPT.pptx”(“.pptx”为扩展名)新建幻灯片 开始→版式“PPT_素材.doc…...
HTML排版标签、语义化标签、块级和行内元素详解
目录 前言 一、HTML中的排版标签 1. 文本相关标签 1.1 标题标签 ~ 1.2 段落标签 1.3 强调和加粗 1.4 换行标签 1.5 水平线标签 二、HTML中的语义化标签 2.1 语义化标签概述 2.2 常见的语义化标签 示例(核心代码部分): 三、HTM…...
机器学习中的关键概念:通过SKlearn的MNIST实验深入理解
欢迎来到我的主页:【Echo-Nie】 本篇文章收录于专栏【机器学习】 1 sklearn相关介绍 Scikit-learn 是一个广泛使用的开源机器学习库,提供了简单而高效的数据挖掘和数据分析工具。它建立在 NumPy、SciPy 和 matplotlib 等科学计算库之上,支持…...
河洛理数【陈抟】论天地两数
从文中说天数属阳、地数属阴可知如何确定天数和地数的确定,也就是奇数属天数、偶数属地数。当然这只是其中的一个特性,而天地两数都有具体的数字,分别是25和30。利于阳的主要有男性、阳爻、冬至到四月终;利于阴的主要是女性、阴爻、夏至到十月终。 另前文中有说到天数和地数…...
Linux 中为什么进程是休眠的,但是还是处理了数据
在 Linux 中,进程的状态可以是多种多样的,S(休眠状态)是其中之一。即使进程处于休眠状态,它仍然可以继续处理数据。这是因为 休眠状态 并不意味着进程完全停止工作,它通常指的是进程正在等待某些事件&#…...
弹性盒子的学习
/*弹性盒子内其他的属性和作用*/ 1、flex-grow 定义项目的放大比例,默认值为 0。如果有剩余空间,项目将根据该值进行放大。 2、flex-shrink 定义项目的缩小比例,默认值为 1。如果空间不足,项目将根据该值进行缩小。 3、flex-bas…...
用NeuralProphet预测股价:AI金融新利器(附源码)
作者:老余捞鱼 原创不易,转载请标明出处及原作者。 写在前面的话:我用NeuralProphet模型预测了股票价格,发现其通过结合时间序列分析和神经网络算法,确实能提供比传统Last Value方法更精准的预测。经过一系列超参数调优…...
深度学习-103-RAG技术之通过分块技术提升RAG的效果
文章目录 1 RAG中的分块技术1.1 RAG是什么1.2 分块chunking是什么1.3 分块的重要性1.4 分块的技巧2 固定字符大小分块2.1 固定字符大小分块的优缺点2.2 自定义分块代码2.3 LangChain的CharacterTextSplitter3 递归字符文本分割3.1 递归字符文本分割的优缺点3.2 LangChain的Recu…...
【B站保姆级视频教程:Jetson配置YOLOv11环境(六)PyTorchTorchvision安装】
Jetson配置YOLOv11环境(6)PyTorch&Torchvision安装 文章目录 1. 安装PyTorch1.1安装依赖项1.2 下载torch wheel 安装包1.3 安装 2. 安装torchvisiion2.1 安装依赖2.2 编译安装torchvision2.2.1 Torchvisiion版本选择2.2.2 下载torchvisiion到Downloa…...
【Vitest】单元测试
文章目录 测试:Vitest一、安装二、断言三、回调测试四、对象方法五、模拟第三库 测试:Vitest 一、安装 npm install vitest创建文件:example.test.ts 运行测试: npx vitest example二、断言 import { expect, test } from vi…...
使用conda创建自己的python虚拟环境,与其他python版本独立区分
使用 Conda 创建和使用自己的运行环境非常简单,以下是详细步骤: 1. 安装 Anaconda 或 Miniconda 如果你尚未安装 Anaconda 或 Miniconda,可以访问 Anaconda 官网 或 Miniconda 官网 下载并安装。 2. 创建新的 Conda 虚拟环境 创建虚拟环境…...
Java进阶14 TCP日志枚举
Java进阶14 TCP&日志&枚举 一、网络编程TCP Java对基于TCP协议得网络提供了良好的封装,使用Socket对象来代表两端的通信端口,并通过Socket产生IO流来进行网络通信。 1、TCP协议发数据 1.1 构造方法 方法 说明 Socket(InetAddress address…...
Vue混入(Mixins)与插件开发深度解析
Vue混入(Mixins)与插件开发深度解析 Vue混入(Mixins)与插件开发深度解析1. Vue混入(Mixins)核心概念1.1 什么是混入1.2 基础使用方式1.3 选项合并策略1.4 全局混入及其风险1.5 混入的优缺点分析 2. 混入实战…...
[LVGL] 在VC_MFC中移植LVGL
前言: 0. 在MFC中开发LVGL的优点是可以用多个Window界面做辅助扩展 1.本文基于VC2022-MFC单文档框架移植lvgl8 2. gitee上下载lvgl8.3 源码,并将其文件夹改名为lvgllvgl: LVGL 是一个开源图形库,提供您创建具有易于使用的图形元素、漂亮的…...
leetcode_双指针 125.验证回文串
125.验证回文串 如果在将所有大写字符转换为小写字符、并移除所有非字母数字字符之后,短语正着读和反着读都一样。则可以认为该短语是一个回文串 。 字母和数字都属于字母数字字符。 给你一个字符串 s,如果它是回文串 ,返回 true ÿ…...
14.适配器模式(Adapter Pattern)
定义 适配器模式(Adapter Pattern) 是一种结构型设计模式,它允许将一个类的接口转换成客户端所期望的另一种接口。适配器模式通常用于将已有的类或遗留系统中的接口与新系统或目标接口进行兼容,从而能够在系统中无缝地使用不兼容…...
Crewai框架配置回调函数
官方文档里只指提了一句 不过不太难,在crew.py文件里配置一下就行了,下面是一个demo,这个函数会在research_task任务执行完触发(配置LLM这里请看我这篇博客) from crewai import Crew, Process, Agent, Taskfrom src.…...
大数据方向知识图谱及发展前景分析
目录 一、知识体系 二、大数据领域前景分析: 1. 市场需求 2. 技术趋势 3. 职业发展路径 4. 学习路线建议 5. 推荐认证体系 一、知识体系 大数据知识体系 ├── 基础理论 │ ├── 数学基础:概率统计、线性代数、离散数学 │ ├── 计算机基…...
Playwright 与 Selenium 的关系
Playwright 与 Selenium 的关系 Playwright 和 Selenium 都是流行的浏览器自动化测试工具,它们都可以用于 Web 应用的端到端测试,但它们在设计理念、架构和功能上存在一些差异。 以下是两者的主要关系对比: 特性PlaywrightSelenium开发语言…...
拧紧“安全阀”,AORO-P300 Ultra防爆平板畅通新型工业化通信“大动脉”
在油气管道泄漏的浓烟中,在矿道坍塌的密闭空间里,在洪水肆虐的救援现场,传统通讯设备频频失效的困境已成为历史。AORO-P300 Ultra防爆平板集5G通讯、红外感知、应急照明等实用功能于一体,以军工级防护与全场景智能应用,…...
《C#之集训1-20121019c#基础》
 C#是微软公司发布的一种面向对象的、运行于.NET Framework之上的高级程序设计语言。它是微软公司研究员Anders Hejlsberg的最新成果。 C#曾经的它在我眼中是很高大上的,一直没有目睹其风采,现在终于揭开了它神秘的面纱…...
基于docker搭建Kafka集群,使用KRaft方式搭建,摒弃Zookeeper
KAFKA基于docker使用KRaft进行集群搭建 环境:已成功搭建kafka服务 可点击链接跳转至安装kafka-3.8.0版本 并启用SASL认证 教程 使用基于Zookeeper方式搭建集群教程 kafka-3.8.0版本 并启用SASL认证 教程 搭建kafka-ui可视化工具 192.168.2.91 192.168.2.92 192…...
