病毒变异pta

PTA天梯赛L2-038病毒溯源:用邻接表+DFS搞定最长变异链(附完整C++代码) 本文详细解析了PTA天梯赛L2-038病毒溯源问题,通过邻接表与DFS算法高效解决最长变异链问题。文章从图论建模、数据结构优化到DFS实战应用,提供了完整的C++代码实现,并探讨了算法竞赛中的常见变式与调试技巧,助力开发者掌握高阶图论算法应用。 阅读详情

病毒DNA可以表示成由一些字母组成的字符串序列,且病毒的DNA序列是环状的。例如,假设病毒的DNA序列为baa,则该病毒的DNA序列有三种变种:baa,aab,aba。试编写一程序,对给定的病毒DNA序列,输出该病毒所有可能的DNA序列(假设变种不会重复)。

输入格式:

输入第一行中给出1个整数i(1≤i≤11),表示待检测的病毒DNA。 输入i行串序列,每行一个字符串,代表病毒的DNA序列,病毒的DNA序列长度不超过500。

输出格式:

依次逐行输出每个病毒DNA所有变种,各变种之间用空格分隔。

输入样例1:

1
baa

结尾无空行

输出样例1:

baa aab aba 

结尾无空行

输入样例2:

2
abc
baac

结尾无空行

输出样例2:

abc bca cab 
baac aacb acba cbaa 

结尾无空行

这道题的基本思想就是通过循环语句将数组里的后一位复制给前一位,但首先要设定一个空的字符变量(比如设为tmp),将最前面的一位赋值给这个设定好的空的字符变量,然后当循环语句结束的时候就会出现最后一位和倒数第二位是相同,这时就可以再将tmp赋值给最后一位,那么就实现将第一位移动到最后一位的计算,然后通过最外一层的循环,来循环每一位,就能实现将数组里的每一位字符都循环到不同的位置上这一功能。

代码如下:

#include<stdio.h>
#include<string.h>
#define N 501
int main()
{
    char a[N],tmp;
    int n,i,j,len,k;
    scanf("%d ",&n);//要有一个空格,如果没有空格就只能一次性输完 
    for(k=0;k<n;k++)//每层的循环变量要不一样 ,也可以重新令int  ....
    {
    gets(a);
    len=strlen(a); //求字符串的长度
    printf("%s ",a);//这里不能使用puts,不然会换行 
    for(j=0;j<len-1;j++)
    {
        tmp=a[0];
        /*for(i=0;i<len-1;i++)//用最基本的循环语句来实现
        {
            a[i]=a[i+1];
        }*/
        strcpy(&a[0],&a[1]);//也可以用strcpy函数来实现,但前提是要有sting.h这一头文件
            a[len-1]=tmp;
            printf("%s ",a);
    }
    printf("\n");
}
    return 0;
}
pta-病毒溯源 病毒容易发生变异。某种病毒可以通过突变产生若干变异的毒株,而这些变异的病毒又可能被诱发突变产生第二代变异,如此继续不断变化。现给定一些病毒之间的变异关系,要求你找出其中最长的一条变异链。在此假设给出的变异都是由突变引起的,不考虑复杂的基因重组变异问题 —— 即每一种病毒都是由唯一的一种病毒突变而来,并且不存在循环变异的情况。 阅读详情

相关推荐

病毒感染检测.rar

利用模式匹配算法,实现课件中的案例 4.1: 病毒感染检测。 问题描述如下: 研究者将人的 DNA 和病毒 DNA 均表示成由一些字母组成的字符串序列。 然后检测某种病毒 DNA 序列是否在患者的 DNA 序列中出现过,如果出现过,则此人感染 了该病毒,否则没有感染。 例如,假设病毒的 DNA 序列为 baa,患者 1 的 DNA 序列为 aaabbba,则感染,患者 2 的 DNA 序列为 babbba,则未感染。(注意,人的 DNA 序列是线性的,而病毒的 DNA 序列是环状 的)。 要求:相关信息从文件"病毒感染检测输入数据.txt"读入,将检测结果写入到文件"病 毒感染检测输出结果.txt"中。运行结果如下所示: 提高内容: 利用 KMP 算法进行匹配

病毒变种--C语言练习

C语言PTA练习题--病毒的变种

wk161099的博客 5442

KMP_字符串模式匹配算法

关于KMP_字符串模式匹配算法的教学课件,详细讲解了Kmp 的原理与不足和改进

7-3 病毒变种【PTA】

病毒DNA可以表示成由一些字母组成的字符串序列,且病毒的DNA序列是环状的。例如,假设病毒的DNA序列为baa,则该病毒的DNA序列有三种变种:baa,aab,aba。试编写一程序,对给定的病毒DNA序列,输出该病毒所有可能的DNA序列(假设变种不会重复)。

2301_80050814的博客 1197

病毒感染检测实验报告.doc

医学研究者最近发现了某些新病毒,通过对这些病毒的分析,得知它们的DNA序列都是环形的.现在研究者已收集了大量的病毒DNA和人的DNA数据,想快速检测出这些人是否感染了相应的病毒。为了方便研究,研究者将人的DNA和病毒DNA均表示成由一些字母组成的字符串序列。 然后检测某种病毒DNA序列是否在患者的DNA序列中出现过,如果出现过,则此人感染了该病毒,否则没有感染。

算法复现 - 病毒感染检测(案例4.1算法4.5)

数据结构作业

m0_65185254的博客 4143

Imatest-Dot Pattern

本文介绍了DotPattern模块测试方法,用于评估相机拍摄点阵图的表现。测试主要关注两点:色彩准确性(是否存在彩色噪点和杂边)和摩尔纹现象。测试步骤包括导入图片、选择分析区域、微调ROI、选择点状图类型和分析保存结果。测试结果包含横向色差、光学畸变和SMIATV畸变等数据,其中0.115%的色差值和0.004度的网格旋转角度表明相机表现良好,但-10.4%的SMIATV畸变显示存在明显桶形畸变。文章还提供了各项指标的具体解读标准。

weixin_64706696的博客 1351

Java 病毒感染检测

人的DNA和病毒DNA均表示成由一些字母组成的字符串序列。然后检测某种病毒DNA序列是否在患者的DNA序列中出现过,如果出现过,则此人感染了该病毒,否则没有感染。例如,假设病毒的DNA序列为baa,患者1的DNA序列为aaabbba,则感染,患者2的DNA序列为babbba,则未感染。(注意,人的DNA序列是线性的,而病毒的DNA序列是环状的)

白白小草 2330

【RF】Receiver Function接收函数:从理论到实践的深度解析

本文深入解析地震学中的接收函数(Receiver Function, RF)技术,从理论原理到实践操作。文章将RF比作地球的“听诊器”,详细阐述了其通过反褶积剥离震源影响、揭示地下结构(如莫霍面)的核心机制,并提供了使用Python和rf库进行数据处理、计算、动校正与叠加的完整实战流程,同时探讨了其应用、局限性与常见问题的解决方案。

Jerry的专栏 121

智能车竞赛疯狂电路组:Altium Designer赛道设计与计分策略全解析

本文全面解析智能车竞赛疯狂电路组中,如何利用Altium Designer进行专业赛道设计。从软件基础操作、图层管理与封装库调用,到赛道拓扑绘制、核心尺寸规范,详细拆解设计全流程。文章深入结合计分策略,指导如何在设计阶段植入策略点,优化路径与元器件布局,以在比赛中获得时间优势,并提供了从图纸输出到实地测试的完整避坑指南。

beta5的博客 585

PTA | 病毒溯源

注:我们称序列 { a1​,⋯,an​ } 比序列 { b1​,⋯,bn​ } “小”,如果存在 1≤k≤n 满足 ai​=bi​ 对所有 i<k 成立,且 ak​<bk​。在此假设给出的变异都是由突变引起的,不考虑复杂的基因重组变异问题 —— 即每一种病毒都是由唯一的一种病毒突变而来,并且不存在循环变异的情况。某种病毒可以通过突变产生若干变异的毒株,而这些变异的病毒又可能被诱发突变产生第二代变异,如此继续不断变化。现给定一些病毒之间的变异关系,要求你找出其中最长的一条变异链。

2201_75933169的博客 634

FastDDS之共享内存

transport层负责为DDS用户数据收发和服务发现提供通信。包含UDP,TCP,SHM。

u010378559的博客 3085

从病毒变异到家族树:用这道PTA算法题理解树的深度优先搜索与路径记录

本文通过PTA L2-038算法题,探讨如何利用深度优先搜索(DFS)解决病毒溯源问题。文章详细解析了从病毒变异关系建模为树形结构,到DFS算法的实现与优化策略,包括记忆化存储和源头定位技巧,帮助读者掌握树遍历与路径记录的核心算法思想。

weixin_28740299的博客 243

别再折腾环境了!Windows 11 + VSCode + CMake 3.31.4 + MinGW-w64 一键式配置指南(附常见报错解决)

本文提供Windows 11下VSCode、CMake 3.31.4和MinGW-w64的一键式配置指南,帮助开发者快速搭建高效C++开发环境。涵盖工具链选型、环境变量配置、项目初始化及常见报错解决方案,大幅提升开发效率。

weixin_28841265的博客 186

技术解析:ChangeFormer——基于Transformer的孪生网络在遥感变化检测中的创新应用

本文深入解析了ChangeFormer模型在遥感变化检测中的创新应用,该模型基于Transformer架构和孪生网络(Siamese Network),显著提升了变化检测的精度和效率。通过详细的技术实现和实战经验分享,展示了其在建筑物变化、森林监测等场景中的卓越表现,为相关领域的研究和应用提供了有力工具。

weixin_29102619的博客 496

1128-原油跌停,纸浆九连阳

标题1-行情概览 标题2-行情图片 标题3-行情分析 据说周四美国感恩节放假,南非发现新馆病毒的心的变异毒株导致世界市场均下跌。 周五夜盘市场更是低开低走,原油跌停。 化工系低开继续下跌 贵金属螺纹油脂低开后横盘。 PVC、pp还很强势。 纯碱低开往上走。 低开向下走的是和原油比较近的品种,PTA,燃油。而且PTA增仓4万手。距离原油远的化工品种低开高走。其他不太强的品种低开横盘。这就能看出来强弱了。外盘原油、明天周一原油低开。其实原来这些品种就在下降趋势里

yuge1023的博客 379

论文解析-sciPENN

用这2个CITE-seq共有的protein作为训练集,分别将他们特有的protein作为测试集,评估sciPENN对CITE-seq数据集中缺失的protein丰度预测准确度。来自Seurat 4 的PBMC数据集,样本被注射水疱性口炎病毒 (VSV) 载体 HIV 疫苗,数据集包含每个样本注射疫苗0天、3天、7天的CITE-seq数据。PBMCs作为训练集,MALT作为测试集,利用scRNA-seq测试17个蛋白质表达水平。Monocyte:随机取4个样本作为训练集,剩余4个样本作为测试集。

weixin_46065198的博客 1022

PTA 病毒溯源

病毒容易发生变异。某种病毒可以通过突变产生若干变异的毒株,而这些变异的病毒又可能被诱发突变产生第二代变异,如此继续不断变化。现给定一些病毒之间的变异关系,要求你找出其中最长的一条变异链。在此假设给出的变异都是由突变引起的,不考虑复杂的基因重组变异问题 —— 即每一种病毒都是由唯一的一种病毒突变而来,并且不存在循环变异的情况。

2302_81344882的博客 1408

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

PTA L2-038 病毒溯源

附测试点解析。

写代码的七柒的博客 1705

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

PTA-病毒溯源

PTA-病毒溯源 dfs+一点贪心

qq_53511990的博客 1614

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

PTA 病毒溯源(树状DP)

保存最长链,有两种方法,一种是动态遍历,等结束后再重新根据条件便利一次,输出结果长度,第二种方法,创建数组保存最长链,因为代码实现简单,本题创建son数组存储最长链。在此假设给出的变异都是由突变引起的,不考虑复杂的基因重组变异问题 —— 即每一种病毒都是由唯一的一种病毒突变而来,并且不存在循环变异的情况。字典序,通过条件判断来限制字典序,具体在代码中有展示,相同长度取字典序小的记录son中,也就完成了字典序筛选。第二,这道题有三个问题,第一个问题,最长,第二个问题,保留最长链,第三个问题,完成字典序。

qq_62235017的博客 516

PTA天梯赛L2-038 病毒溯源

原题传送门 题目 病毒容易发生变异。某种病毒可以通过突变产生若干变异的毒株,而这些变异的病毒又可能被诱发突变产生第二代变异,如此继续不断变化。 现给定一些病毒之间的变异关系,要求你找出其中最长的一条变异链。 在此假设给出的变异都是由突变引起的,不考虑复杂的基因重组变异问题 —— 即每一种病毒都是由唯一的一种病毒突变而来,并且不存在循环变异的情况。 输入格式 输入在第一行中给出一个正整数 N(≤10^​4​​ ),即病毒种类的总数。于是我们将所有病毒从 0 到 N−1 进行编号。 随后 N 行,每行按以下格式

suolk的博客 3060

PTA病毒溯源

dfs输出路径,vector可直接比较大小

北边一颗小星星 572

PTA 病毒溯源 拓扑排序

病毒容易发生变异。某种病毒可以通过突变产生若干变异的毒株,而这些变异的病毒又可能被诱发突变产生第二代变异,如此继续不断变化。现给定一些病毒之间的变异关系,要求你找出其中最长的一条变异链。在此假设给出的变异都是由突变引起的,不考虑复杂的基因重组变异问题 —— 即每一种病毒都是由唯一的一种病毒突变而来,并且不存在循环变异的情况。

weixin_45006001的博客 286
要我怎么去捡
博客等级 码龄5年 1粉丝 1原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值