传送门

24分WA:

#include <bits/stdc++.h>
#define closeSync ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
#define debug(x) cout<<#x<<":"<<x<<endl;
#define f(i,a,n) for(int i=a;i<n;++i)
#define ff(i,a,n) for(int i=a;i<=n;++i)
#define IN freopen("E:\\信竞\\信竞文件夹\\in_c.TXT","r",stdin);
#define OUT freopen("E:\\信竞\\信竞文件夹\\out_c.TXT","w",stdout);
const int INF=0x3f3f3f3f;
using namespace std;
typedef long long ll;const int N=1e5+5,M=1e7+5;
int e[M],ne[M],h[M],idx;
int in[N],d[N];
void add(int a,int b){e[idx]=b,ne[idx]=h[a],h[a]=idx++;
}
int dep_max=-1,door_max=-1;
int n;
void dfs(int root,int dep){for(int i=h[root];~i;i=ne[i]){int j=e[i];d[j]=d[root]+1;if(d[j]>dep_max){dep_max=d[j];door_max=j;}dfs(j,dep+1);}
}
int main(){memset(h,-1,sizeof h);cin>>n;ff(i,1,n){int t;cin>>t;f(j,0,t){int k;cin>>k;add(i,k);in[k]=1;}}int root=-1;ff(i,1,n){if(!in[i]){root=i;break;}}dfs(root,0);cout<<door_max;
}

25分:

#include <bits/stdc++.h>
#define closeSync ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
#define debug(x) cout<<#x<<":"<<x<<endl;
#define f(i,a,n) for(int i=a;i<n;++i)
#define ff(i,a,n) for(int i=a;i<=n;++i)
#define IN freopen("E:\\信竞\\信竞文件夹\\in_c.TXT","r",stdin);
#define OUT freopen("E:\\信竞\\信竞文件夹\\out_c.TXT","w",stdout);
const int INF=0x3f3f3f3f;
using namespace std;
typedef long long ll;const int N=1e5+5;
vector<int> v[N];
int in[N];
int dep_max=-1,door_max=-1;
int n;void dfs(int root,int dep){if(!v[root].size()){if(dep>dep_max){dep_max=dep;door_max=root;}return;}for(int i=0;i<v[root].size();i++){dfs(v[root][i],dep+1);}
}int main(){cin>>n;ff(i,1,n){int t;cin>>t;f(j,0,t){int k;cin>>k;v[i].push_back(k);in[k]=1;}}int root=-1;ff(i,1,n){if(!in[i]){root=i;break;}}dfs(root,0);cout<<door_max;
}

这说明只对根节点进行分析时用vector存图比前向星更快一些

注意:


如果加上上面的代码,结果会变为

因此存在一种样例(即样例1),使得迷宫的入口背后是没有门的

L2-031 深入虎穴(24分与25分的dfs)相关推荐

  1. 7-1 房屋分拆 (25 分)(C语言版)

    厂长买了一整间房屋作为车间,现准备将整个房屋分成若干个车间.装修公司规定分拆房屋的价格等于被分拆房屋的面积.如想将面积为200的房间分拆为面积为80.70和50的三个车间,第一次将房屋分拆为面积120 ...

  2. PAT_B_1070_Java(25分)_C++(25分)

    import java.io.*; import java.util.Arrays;public class Main {private static BufferedReader input;pri ...

  3. PAT_B_1065_Java(17分)_C++(25分)

    import java.io.*; import java.util.*;public class Main {public static void main(String[] args) throw ...

  4. *PAT_B_1030_Java(22分)_C++(25分)

    Collections.sort 升序 首先,可以想到的是将数据存储后,从小到大排序,题目知,要求队列的最长数据,需要最大值和最小值,则可以循环从头和尾获取数据,判断是否符合标准,符合则记录下数据个数 ...

  5. PTA 7-15(查找) 航空公司VIP客户查询(25 分) 25分代码 哈希方法

    本来用map 写的,死活超时,看来卡不过去 只能哈希了 这里还稍微优化了一下,其实每个 哈希后的值存个 vector 来表示他的原值也行 (注: 博客作为交流使用,请勿抄袭应付作业) // #incl ...

  6. 7-121 深入虎穴 (25 分)(dfs,bfs)

    7-121 深入虎穴 (25 分) 著名的王牌间谍 007 需要执行一次任务,获取敌方的机密情报.已知情报藏在一个地下迷宫里,迷宫只有一个入口,里面有很多条通路,每条路通向一扇门.每一扇门背后或者是一 ...

  7. 【CCCC】L2-031 深入虎穴 (25分),,求多叉树最深的节点编号,大水题!!!

    problem L2-031 深入虎穴 (25分) 著名的王牌间谍 007 需要执行一次任务,获取敌方的机密情报.已知情报藏在一个地下迷宫里,迷宫只有一个入口,里面有很多条通路,每条路通向一扇门.每一 ...

  8. 题目:L2-031 深入虎穴 (25 分)

    题目:题目详情 - L2-031 深入虎穴 (25 分) (pintia.cn) 大意 已知情报藏在一个地下迷宫里,迷宫只有一个入口,里面有很多条通路,每条路通向一扇门.每一扇门背后或者是一个房间,或 ...

  9. 天梯赛L2-3 深入虎穴 (25 分)

    PTA L2-3 深入虎穴 (25 分) 著名的王牌间谍 007 需要执行一次任务,获取敌方的机密情报.已知情报藏在一个地下迷宫里,迷宫只有一个入口,里面有很多条通路,每条路通向一扇门.每一扇门背后或 ...

最新文章

  1. RAID与软RAID命令应用
  2. SpringBoot使用Gradle构建war包
  3. mysql打开的文件描述符限制_linux fopen个数限制的问题(文件描述符限制)
  4. 王道408数据结构——第八章 排序
  5. 学成在线--23.课程图片管理(上传图片)
  6. ddmmyy日期格式是多少_DDMMYY什么意思?
  7. 2021-08-31 转载 Scala Akka 系列文章
  8. 素数环java_素数环(java实现)
  9. redhat7 linux修改语言,RedHatLinux7.1中语言化完全攻略(二)
  10. 《自己动手写操作系统》实践(一)
  11. YOLOV5出现.acceptable suffix is [‘.pt‘]的错误||不使用权重报错
  12. python 模拟键盘鼠标输入_Python模拟键盘输入和鼠标操作
  13. 数独问题每行每列每3X3
  14. Python爬虫学习总结
  15. 待我代码编成 娶你为妻可好
  16. 接地电阻的测量方法和规范要求
  17. win2012r2下微软杀毒软件SCEP不能手动更新
  18. 关于提取百度文库无法复制的正文内容方法
  19. 自动加权GCN算法实现反洗钱识别-有数据有代码
  20. https://p.3.cn/prices/mgets爬取京东商品信息报错error pdos_captcha

热门文章

  1. Java程序员职业规划如何做?发展方向有哪些?
  2. 少儿编程启蒙课程3:冰河世纪 调试程序
  3. 【解决方案】智慧数据中心机房三维可视化运维系统
  4. 不花一分钱,利用免费电脑软件将视频MV变成歌曲音频MP3
  5. 一起来算圆周率(转载)
  6. Java-java中冒号(:)的用法
  7. 在学习python的过程中,遇到的最大的困难是什么?
  8. 文件夹变成计算机程序,文件夹变成exe快速解决方法
  9. hbase周学习——赵俊杰
  10. elementui表格自定义合并单元格根据相同值合并单元格;指定列合并;解决自定义合并后单元格样式错乱