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

news2025/2/7 6:18:33

在这里插入图片描述
》》》点我查看「视频」详解》》》

[语言月赛 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 1in)个字母,配对规则如下:

  • 定义 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 1T5 1 ≤ n ≤ 1 0 5 1\leq n\leq 10^5 1n105 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;
}

》》》点我查看「视频」详解》》》

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

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

相关文章

Spring @PropertySource:让你的应用配置更加模块化和可维护

PropertySource注解在Spring中的作用&#xff0c;就像是给Spring应用配了一个“外部配置箱”。 想象一下&#xff0c;你在开发一个Spring应用时&#xff0c;有很多配置信息需要设置&#xff0c;比如数据库的连接信息、应用的某些功能开关等。如果这些信息都硬编码在代码中&…

Deep Sleep 96小时:一场没有硝烟的科技保卫战

2025年1月28日凌晨3点&#xff0c;当大多数人还沉浸在梦乡时&#xff0c;一场没有硝烟的战争悄然打响。代号“Deep Sleep”的服务器突遭海量数据洪流冲击&#xff0c;警报声响彻机房&#xff0c;一场针对中国关键信息基础设施的网络攻击来势汹汹&#xff01; 面对美国发起的这场…

快速搭建GPU环境 | docker、k8s中使用gpu

目录 一、裸机部署安装 GPU Driver安装 CUDA Toolkit测试 二、Docker 环境安装 nvidia-container-toolkit配置使用该 runtime 三、 k8s 环境安装 device-plugin安装 GPU 监控 一、裸机部署 裸机中要使用上 GPU 需要安装以下组件&#xff1a; GPU DriverCUDA Toolkit 二者的关…

npm中央仓库

1、官网地址 npm | Home 2、搜索依赖包

2025年软考考试时间及考试科目如何安排?附考试注意事项!

一、考试时间 2025年软考举行两次考试&#xff0c;分别安排在上半年和下半年。根据最新公布的信息&#xff0c;2025年软考考试的具体时间安排如下&#xff1a; 上半年考试时间&#xff1a;5月24日至5月27日 下半年考试时间&#xff1a;11月8日至11月11日 考生需要在规定的时间内…

4.PPT:日月潭景点介绍【18】

目录 NO1、2、3、4​ NO5、6、7、8 ​ ​NO9、10、11、12 ​ 表居中或者水平/垂直居中单元格内容居中或者水平/垂直居中 NO1、2、3、4 新建一个空白演示文稿&#xff0c;命名为“PPT.pptx”&#xff08;“.pptx”为扩展名&#xff09;新建幻灯片 开始→版式“PPT_素材.doc…

HTML排版标签、语义化标签、块级和行内元素详解

目录 前言 一、HTML中的排版标签 1. 文本相关标签 1.1 标题标签 ~ 1.2 段落标签 1.3 强调和加粗 1.4 换行标签 1.5 水平线标签 二、HTML中的语义化标签 2.1 语义化标签概述 2.2 常见的语义化标签 示例&#xff08;核心代码部分&#xff09;&#xff1a; 三、HTM…

机器学习中的关键概念:通过SKlearn的MNIST实验深入理解

欢迎来到我的主页&#xff1a;【Echo-Nie】 本篇文章收录于专栏【机器学习】 1 sklearn相关介绍 Scikit-learn 是一个广泛使用的开源机器学习库&#xff0c;提供了简单而高效的数据挖掘和数据分析工具。它建立在 NumPy、SciPy 和 matplotlib 等科学计算库之上&#xff0c;支持…

用NeuralProphet预测股价:AI金融新利器(附源码)

作者&#xff1a;老余捞鱼 原创不易&#xff0c;转载请标明出处及原作者。 写在前面的话&#xff1a;我用NeuralProphet模型预测了股票价格&#xff0c;发现其通过结合时间序列分析和神经网络算法&#xff0c;确实能提供比传统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环境&#xff08;6&#xff09;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…

Java进阶14 TCP日志枚举

Java进阶14 TCP&日志&枚举 一、网络编程TCP Java对基于TCP协议得网络提供了良好的封装&#xff0c;使用Socket对象来代表两端的通信端口&#xff0c;并通过Socket产生IO流来进行网络通信。 1、TCP协议发数据 1.1 构造方法 方法 说明 Socket(InetAddress address…

[LVGL] 在VC_MFC中移植LVGL

前言&#xff1a; 0. 在MFC中开发LVGL的优点是可以用多个Window界面做辅助扩展 1.本文基于VC2022-MFC单文档框架移植lvgl8 2. gitee上下载lvgl8.3 源码&#xff0c;并将其文件夹改名为lvgllvgl: LVGL 是一个开源图形库&#xff0c;提供您创建具有易于使用的图形元素、漂亮的…

Crewai框架配置回调函数

官方文档里只指提了一句 不过不太难&#xff0c;在crew.py文件里配置一下就行了&#xff0c;下面是一个demo&#xff0c;这个函数会在research_task任务执行完触发&#xff08;配置LLM这里请看我这篇博客&#xff09; from crewai import Crew, Process, Agent, Taskfrom src.…

拧紧“安全阀”,AORO-P300 Ultra防爆平板畅通新型工业化通信“大动脉”

在油气管道泄漏的浓烟中&#xff0c;在矿道坍塌的密闭空间里&#xff0c;在洪水肆虐的救援现场&#xff0c;传统通讯设备频频失效的困境已成为历史。AORO-P300 Ultra防爆平板集5G通讯、红外感知、应急照明等实用功能于一体&#xff0c;以军工级防护与全场景智能应用&#xff0c…

基于docker搭建Kafka集群,使用KRaft方式搭建,摒弃Zookeeper

KAFKA基于docker使用KRaft进行集群搭建 环境&#xff1a;已成功搭建kafka服务 可点击链接跳转至安装kafka-3.8.0版本 并启用SASL认证 教程 使用基于Zookeeper方式搭建集群教程 kafka-3.8.0版本 并启用SASL认证 教程 搭建kafka-ui可视化工具 192.168.2.91 192.168.2.92 192…

CAD导入与解析,助力工业数据可视化高效呈现

背景 在企业的日常设计与管理中&#xff0c;CAD图纸早已成为不可或缺的重要资产&#xff0c;多年来知识积累的载体&#xff0c;凝聚了大量的心血与智慧。然而&#xff0c;CAD图纸往往只作为静态文件保存&#xff0c;应用场景较为有限。在数字经济时代&#xff0c;如何让CAD图纸…

基于docker部署kafka-3.8.0版本,并开启SASL认证模式

1、下载安装包 &#xff08;1&#xff09;https://kafka.apache.org/downloads 下载如下图版本 2、解压安装包 执行tar -xvf kafka_2.13-3.8.0.tgz命令对安装包进行解压。 3、增加配置文件 &#xff08;1&#xff09;进入 /kafka_2.13-3.8.0/config 目录 &#xff08;2&a…

从零开始人工智能Matlab案例-KNN的二维数据分类

基于K最近邻&#xff08;K-Nearest Neighbors, KNN&#xff09;算法的二分类案例&#xff0c;包含完整MATLAB代码、算法原理和核心思想说明。此案例使用合成数据集&#xff0c;无需复杂数据预处理&#xff0c;适合快速理解。 案例&#xff1a;基于KNN的二维数据分类 目标&…

Spring AOP 扫盲

&#x1f9d1; 博主简介&#xff1a;CSDN博客专家&#xff0c;历代文学网&#xff08;PC端可以访问&#xff1a;https://literature.sinhy.com/#/literature?__c1000&#xff0c;移动端可微信小程序搜索“历代文学”&#xff09;总架构师&#xff0c;15年工作经验&#xff0c;…