太菜了,拖后腿的感觉是真的难受。然后,你们可以三连一下文章,安慰一下吗?

知道用回溯来求解,但是不知道怎么模拟。就拿了1分,真的难。

L2-2 病毒溯源 (25 分)

病毒容易发生变异。某种病毒可以通过突变产生若干变异的毒株,而这些变异的病毒又可能被诱发突变产生第二代变异,如此继续不断变化。

现给定一些病毒之间的变异关系,要求你找出其中最长的一条变异链。

在此假设给出的变异都是由突变引起的,不考虑复杂的基因重组变异问题 —— 即每一种病毒都是由唯一的一种病毒突变而来,并且不存在循环变异的情况

输入格式:

输入在第一行中给出一个正整数 N(≤10^4),即病毒种类的总数。于是我们将所有病毒从 0 到 N−1 进行编号。

随后 N 行,每行按以下格式描述一种病毒的变异情况:

k 变异株1 …… 变异株k

其中 k 是该病毒产生的变异毒株的种类数,后面跟着每种变异株的编号。第 i 行对应编号为 i 的病毒(0≤i<N)。题目保证病毒源头有且仅有一个。

输出格式:

首先输出从源头开始最长变异链的长度。

在第二行中输出从源头开始最长的一条变异链,编号间以 1 个空格分隔,行首尾不得有多余空格。如果最长链不唯一,则输出最小序列。

输入样例:

10
3 6 4 8
0
0
0
2 5 9
0
1 7
1 2
0
2 3 1

输出样例:

4
0 4 9 1

题目思路(*):

  1. 由某种病毒可以通过突变产生若干变异的毒株,所以我们需要先找到,没有出现在变异株的那个节点,就是跟
 for(int i = 0;i<n;i++){if(pre[i]==0){parent=i;break;}}
  1. 因为题目中谈到不存在循环变异,所以结果只能是一条长链
  2. 结果需要输出从源头开始最长的一条变异链。使用回溯去暴力解答
  3. 如果最长链不唯一,则输出最小序列。对输入的变异株1 …… 变异株k进行从小到大的排序,这样如果能找到最大路径的话一定是最小序列
sort(child[i].begin(),child[i].end());
  1. 分析一下关键的dfs回溯

    • one:病毒序号,当前病毒所在链的位置
    • 初始:传入根,根是第一个位置,所以是dfs(root,1)
    • 函数中先进行最大长度判断更新,后来开始循环后继节点
    • 在后继节点中,进行回溯
void dfs(int one,int step){if(step>maxx){maxx=step;ans=temp;}for(int i = 0;i<child[one].size();i++){temp.push_back(child[one][i]);dfs(child[one][i],step+1);temp.pop_back();//除去vector中最后一个 }return ;
}

题解代码:

代码中//*表示代码关键的地方

#include<bits/stdc++.h>
using namespace std;
vector<int> child[10005];
vector<int> ans,temp;
int pre[10005];
int maxx;
void dfs(int one,int step){if(step>maxx){maxx=step;ans=temp;}for(int i = 0;i<child[one].size();i++){temp.push_back(child[one][i]);//*dfs(child[one][i],step+1);//*temp.pop_back();//*}return ;
}int main()
{int n;scanf("%d",&n);int k,x;for(int  i = 0;i<n;i++){scanf("%d",&k);while(k--){scanf("%d",&x);pre[x]=1;child[i].push_back(x);}sort(child[i].begin(),child[i].end());//*}int root;//*for(int i = 0;i<n;i++){if(pre[i]==0){root=i;break;}} dfs(root,1);printf("%d\n",maxx);printf("%d",root);for(int i= 0;i<ans.size();i++){printf(" %d",ans[i]);  } return 0;
}

2021年团体程序设计天梯赛题解相关推荐

  1. 2021年团体程序设计天梯赛-总决赛L2题解

    2021年团体程序设计天梯赛-总决赛! L2-1 包装机 思路:模拟 代码: #include<bits/stdc++.h> using namespace std; int main() ...

  2. 2021年团体程序设计天梯赛-总决赛题解

    L2-2 病毒溯源 L2-4 哲哲打游戏 L3-2 还原文件 L1-1 人与神 (5 分) 跨界大神 L. Peter Deutsch 有一句名言:"To iterate is human, ...

  3. 2021团体程序设计天梯赛题解

    先贴成绩 今年L1的题偏基础,比赛用了一个小时切完了,(算上PTA系统网络错误崩了20分钟和BW傻等-QAQ)L2顺着做的,L2-1模拟过了去看L2-2,并查集写完数据跑错了,调了一个小时发现题目说明 ...

  4. 2020团体程序设计天梯赛题解(部分)

    文章目录 个人题解:这里我只写我个人认为应该写的题解,太简单的就不写了 L2-2 口罩发放 (25分) 思路:正解 L2-3 完全二叉树的层序遍历 (25分) 思路:正解 L2-4 网红点打卡攻略 ( ...

  5. 2021年团体程序设计天梯赛-模拟赛

    文章目录 L1-1 宇宙无敌大招呼 (5 分) 输入格式: 输出格式: 输入样例: 输出样例: Code L1-2 考试周 (5 分) 输入格式: 输出格式: 输入样例: 输出样例: Code L1- ...

  6. 2021年团体程序设计天梯赛-总决赛 L3-2 还原文件

    一份重要文件被撕成两半,其中一半还被送进了碎纸机.我们将碎纸机里找到的纸条进行编号,如图 1 所示.然后根据断口的折线形状跟没有切碎的半张纸进行匹配,最后还原成图 2 的样子.要求你输出还原后纸条的正 ...

  7. 2022团体程序设计天梯赛题解 L2

    题目 感觉今年L2有点难,难在题目描述,题目描述的云里雾里的比题目本身难得多.2-3我确实没想出来,确实菜,不过想出来也拿不了国二,太菜啦,抓紧remake叭. L2-1 题意: 题意很烦.给定一个栈 ...

  8. GPLT团体程序设计天梯赛题解L1部分

    文章目录 00x L1-001 Hello World (5 分) L1-002 打印沙漏 (20 分) L1-003 个位数统计 (15 分) L1-004 计算摄氏温度 (5 分) L1-005 ...

  9. 2023年团体程序设计天梯赛

    2020年团体程序设计天梯赛 PTA L2-034 口罩发放 (25 分) PTA L2-036 网红点打卡攻略 (25 分) 2021年团体程序设计天梯赛 PTA L1-078 吉老师的回归 (15 ...

  10. PTA|团体程序设计天梯赛-练习题库集

    文章目录 关于爬取脚本的编写 L1-001 Hello World! (5 分) L1-002 打印沙漏 (15 分) L1-003 个位数统计 (15 分) L1-004 计算摄氏温度 (5 分) ...

最新文章

  1. HTML5的 input:file上传类型控制
  2. FJ集团企业级邮件服务器构建方案
  3. 火星云分发全网视频_火星云矿总裁商思林:三大引擎点燃2020年超级牛市,挖矿和理财将成为资产配置必选项...
  4. 使用域超级管理员打开Exchange 2010发现没有权限
  5. Java--Socket通信
  6. 应用回归分析第五版电子书_应用回归分析课后习题参考答案 全部版 何晓群,刘文卿...
  7. 浴血凤凰DNF自动辅助开发教程
  8. 台式计算机常用总线,计算机中常见的总线有哪些
  9. 菜鸟又出手!家里没人也能收包裹,这个黑科技还获过阿里内部大奖
  10. 基于matlab的微分例题,matlab程序设计常微分方程编程例题答案数学.doc
  11. python 图标题上移_请问如何在这个Python中将标题一起爬下来啊
  12. 英文论文评审意见_英文论文审稿意见汇总
  13. Lum Proxy全球代理IP,真实家庭住宅网络!
  14. FMI飞马网【线上直播】京东POP接口自动化测试
  15. MacBook使用HHKB键盘设置
  16. Java 核心技术卷 II(第 8 版) – 读书笔记 – 第 1 章(下)
  17. 自己做一个table插件 (一)Ajax获取数据后动态生成table
  18. 数据库原理课后答案 第二章
  19. 工控机与商用计算机的区别,两招教你分辨工控机与普通电脑的区别
  20. 快速开发混凝土搅拌企业管理平台

热门文章

  1. INA226+STC89C52RC读取电流电压功率
  2. 一台计算机数据丢失与恢复,数据丢失后的六种计算机恢复方法
  3. html如何根据颜色排序,Excel技巧:按颜色排序或筛选
  4. Android多媒体相关框架
  5. 《华为你学不会》读书笔记
  6. 芝麻小客服电脑版新增网址自带openid功能,聊天界面改版,新增通用设置
  7. QT 使用 qcustomplot 编译出错
  8. XP框架开启debug模式_win10 2004系统如何开启夜间护眼模式的问题
  9. 谈谈心理学--那些令人叫绝的心理效应
  10. 历年奥斯卡获奖影片(1927—2015)