L2-2 病毒溯源 (25 分)

输出路径

题目链接

记录每个点的前一个点
记录最长路径的最后一个点
便可以从后往前得到最长路径

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring> 
#include<queue>

using namespace std;
const int N=1e4+10; 
//int a[N],h[N],cnt[N];

int e[N],ne[N],idx,h[N],pre[N];
int n,end1;
int ans[N],b[N];
int dist[N];



void insert(int a,int b)
{
    pre[b]=a;
	e[idx]=b;
	ne[idx]=h[a];
	h[a]=idx++;
}

int bfs()
{
	int ans1=0;
	for(int j=0;j<n;j++)
	{
	    memset(dist,0,sizeof dist);
		queue<int> q;
		q.push(j);
		while(!q.empty())
		{
		    int hh=q.front();
		    q.pop();
			for(int i=h[hh];i!=-1;i=ne[i])
			{
				int p=e[i];
				q.push(p);
				dist[p]=dist[hh]+1;
				if(dist[p]>=ans1)
				{
				    end1=p;
				    ans1=dist[p];
				}
			}
		}
		
	}
	
	return ans1;
}

int main()
{
	//memset(ne,-1,sizeof ne);
	memset(h,-1,sizeof h);
	memset(pre,-1,sizeof pre);
	scanf("%d",&n);
	for(int i=0;i<n;i++)
	{
		int k;
		scanf("%d",&k);
		if(k==0) continue;
		else 
		{
			for(int j=1;j<=k;j++)	scanf("%d",&b[j]);
			sort(b+1,b+k+1);	
			for(int j=1;j<=k;j++) insert(i,b[j]);
			//for(int j=k;j>=1;j--) insert(i,b[j]);
		}
	}

	int res;
	res=bfs()+1;
	int k=res;
	
	//printf("endr=%d\n",endr);
	printf("%d\n",res);
	for(int i=end1;i!=-1;i=pre[i]) ans[k--]=i;
	
	for(int i=1;i<=res-1;i++) printf("%d ",ans[i]);
    printf("%d",ans[res]);
}

dfs

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring> 
#include<queue>

using namespace std;
const int N=1e4+10; 
//int a[N],h[N],cnt[N];

int e[N],ne[N],idx,h[N],pre[N];
int b[N];
bool st[N],st1[N];
int ans[N];
int res=0,end1,n;

void insert(int a,int b)
{
    pre[b]=a;
	e[idx]=b;
	ne[idx]=h[a];
	h[a]=idx++;
}

void dfs(int x,int sum)
{
    
    st1[x]=1;
    if(sum>res)
    {
        res=sum;
        end1=x;
    }
    //printf("h[x]=%d\n",h[x]);
	for(int i=h[x];i!=-1;i=ne[i])
	{
	    int j=e[i];
	    
	    if(!st1[j])
	    {
	        //printf("j=%d\n",j);
	        dfs(j,sum+1);
	    }
	}
}

int main()
{
	//memset(ne,-1,sizeof ne);
	memset(h,-1,sizeof h);
	memset(pre,-1,sizeof pre);
	scanf("%d",&n);
	for(int i=0;i<n;i++)
	{
		int k;
		scanf("%d",&k);
		if(k==0) continue;
		else 
		{
			for(int j=1;j<=k;j++)	scanf("%d",&b[j]),st[b[j]]=1;
			sort(b+1,b+k+1);	
			for(int j=k;j>=1;j--) insert(i,b[j]);
			//for(int j=k;j>=1;j--) insert(i,b[j]);
		}
	}
	
	for(int i=0;i<n;i++)
	{
	    if(st[i]==0) 
	    {
	        dfs(i,1);
	        break;
	    }
	}

	
	int k=res;
	
	printf("%d\n",res);
	for(int i=end1;i!=-1;i=pre[i]) ans[k--]=i;
	
	for(int i=1;i<=res-1;i++) printf("%d ",ans[i]);
    printf("%d",ans[res]);
}

#include<bits/stdc++.h>
using namespace std;
const int N = 10010;
vector<int>v[N];
int pre[N], h[N];
void bfs(int root, int& maxh, int& leaf) {
    queue<int>q;
    q.push(root);
    h[root] = 1;
    pre[root] = -1;
    while (!q.empty()) {
        root = q.front();
        for (int i = 0; i < v[root].size(); i++) {
            q.push(v[root][i]);
            pre[v[root][i]] = root;
            h[v[root][i]] = h[root] + 1;
            if (maxh < h[v[root][i]]) {
                maxh = h[v[root][i]];
                leaf = v[root][i];
            }
        }
        q.pop();
    }
}
void ouput(int x) {
    if (pre[x] == -1) cout << x;
    else {
        ouput(pre[x]);
        cout << " " << x;
    }
}
int main() {
    int n, root = 0, maxh = 1, leaf; cin >> n;
    for (int i = 0; i < n; i++) {
        int k; cin >> k;
        root += i;
        while (k--) {
            int x; cin >> x;
            v[i].push_back(x);
            root -= x;
        }
        stable_sort(v[i].begin(), v[i].end());
    }
    bfs(root, maxh, leaf);
    cout << maxh << endl;
    ouput(leaf);
    return 0;
}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
目录:网盘文件,永久连接 华为安全HCIE-第二门-防火墙基础(12篇) 1_网络安全简述.mp4 2_华为安全认证体系及相关产品介绍 3_防火墙互联技术 4_防火墙初始化配置 5_安全策略技术-流量处理流程 6_安全策略-来回路径不一致 7_智能策略调优 8_防火墙路由基础_静态路由多出口 9_防火墙路由基础_ospf_bgp 10_防火墙路由基础_智能选路_策略路由_案例分析 11_防火墙NAT原理介绍.mp4 12_nat配置_nat_server_目的nat_双向nat 华为安全HCIE-第三门-防火墙高级技术(17篇) 1_用户认证_用户_认证域_认证策略 2_用户认证_服务器认证方式_单点认证 3_用户认证_接入用户使用场景_本地认证实验 4_用户认证_服务器认证_不同的认证域配置 5_用户认证-单点登录-上篇 6_用户认证_AD单点登录下篇 7_防火墙虚拟化原理 8_防火墙虚拟化配置 9_带宽管理原理 10_带宽管理配置及故障排除 11_双机热备_vrrp_vgmp协议介绍 12_VGMP状态切换 13_VGMP故障检测_流量引导 14_hrp协议_主备_负载模式 15_双机热备-上下交换机-主备 16_双机热备-上下交换机-负载 17_双机热备-上行路由器下行交换机 华为安全HCIE-第四门-防火墙UTM技术(5篇) 1_内容安全_内容过滤 2_内容安全-url过滤 3_内容安全-文件过滤 4_内容安全-邮件过滤 5_内容安全-病毒-应用行为控制 华为安全HCIE-第五门-防火墙攻击防范技术(8篇) 1_单包攻击防范 2_IPS技术-威胁防护原理 3_ips技术-威胁防护实验 4_ips技术-ips部署方式 5_ddos防范-tcp-udp_flood 6_ddos防范-dns-http_flood 7_二层攻击防范-dhcp_snooping 8_二层攻击防范-端口安全 华为安全HCIE-第六门-VPN技术(36篇) 1_vpn概述 2_密码学-对称加密算法 3_密码学-非对称加密 4_散列算法_数字签名_数字证书 5_PKI架构_证书管理 6_ipsec协议介绍 7_ikev1协议精讲 8_ikev2协议讲解 9_site-to-site_vpn实验讲解 10_hub_spoke_策略模板 11_site-2-site_数字证书_数字信封认证 12_gre over ipsec技术讲解 13_l2tp_vpn_lac_auto讲解 14_l2tp_vpn_lac_auto实验演示 15_l2tp_vpn_nas_init 16_l2tp_vpn_client_init 17_E_VPN技术讲解 18_为什么要引入nat穿越 19_nat穿越协商4步走 20_nat穿越实验演示 21_DPD技术讲解 22_vpn高可用性_链路冗余_物理接口_隧道化方式 23_vpn高可用性_链路冗余_物理接口应用策略实验演示 24_vpn高可用性_链路冗余_隧道化部署 25_vpn高可用_设备冗余 26_vpn高可用_设备冗余_上行交换机或路由器部署实验 27_dsvpn技术_normal模式 28_dsvpn_shortcut模式_应用场景 29_dsvpn_normal_shortcut实验演示 30_ipv6技术讲解 31_ssl协议介绍 32_ssl_vpn功能介绍 33_ssl_vpn实验_web代理 34_ssl_vpn_端口转发和文件共享 35_ssl_vpn_网络扩展及其它特性演示 36_ssl_vpn_网络扩展及其它特性演示_补充知识 华为安全HCIE-第七门-Agile Controller(12篇) 1_aglie_controller产品亮点讲解 2_aglie_controller产品定位及部署场景 3_radius认证协议讲解 4_802.1x协议讲解 5_sacg_portal_mac认证技术讲解 6_802.1x配置讲解 7_sacg_实验演示_无终端安全检查 8_终端安全检查 9_终端安全检查_域切换 10_访客管理 11_portal认证实验演示 12_portal_访客管理
"第1套试卷 " " " " 总分数:50.0分 " " 总试题数: 25 " " " " " " " " " " " "窗体顶端 " " 问题1 " "单项选择题(2.0分 难度:基本题) " " " " " " " "物理安全中不包括( )。 " " " "环境安全 " " " "人员安全 " " " "设备安全 " " " "介质安全 " " " "窗体底端 " " " "窗体顶端 " " 问题2 " "单项选择题(2.0分 难度:基本题) " " " " " " " "防火墙的安全性角度,最好的防火墙结构类型是() " " " "路由器型 " " " "服务器型 " " " "屏蔽主机结构 " " " "屏蔽子网结构 " " " "窗体底端 " " " "窗体顶端 " " 问题3 " "单项选择题(2.0分 难度:基本题) " " " " " " " "以下关于DOS攻击的描述,哪句话是正确的? ( ) " " " "导致目标系统无法处理正常用户的请求 " " " "不需要侵入受攻击的系统 " " " "以窃取目标系统上的机密信息为目的 " " " "如果目标系统没有漏洞,远程攻击就不可能成功 " " " "窗体底端 " " " "窗体顶端 " " 问题4 " "单项选择题(2.0分 难度:基本题) " " " " " " " "代理服务作为防火墙技术主要在OSI的哪一层实现() " " " "数据链路层 " " " "网络层 " " " "表示层 " " " "应用层 " " " "窗体底端 " " " "窗体顶端 " " 问题5 " "单项选择题(2.0分 难度:基本题) " " " " " " " "VPN技术的实现过程综合应用了多项技术,其中不包括() " " " "隧道技术 " " " "加密技术 " " " "身份认证技术 " " " "访问控制技术 " " " "窗体底端 " " " "窗体顶端 " " 问题6 " "单项选择题(2.0分 难度:基本题) " " " " " " " "计算机病毒的危害性表现在()。 " " " "能造成计算机部分配置永久性失效 " " " "影响程序的执行或破坏用户数据与程序 " " " "不影响计算机的运行速度 " " " "不影响计算机的运行结果 " " " "窗体底端 " " " "窗体顶端 " " 问题7 " "单项选择题(2.0分 难度:基本题) " " " " " " " "以下各种功能不可能集成在防火墙上的是( ) " " " "网络地址转换NAT " " " "虚拟专用网VPN " " " "入侵检测和入侵防御 " " " "过滤内部网络设备中的MAC地址 " " " "窗体底端 " " " "窗体顶端 " " 问题8 " "单项选择题(2.0分 难度:基本题) " " " " " " " "TELNET协议主要应用于哪一层( )。 " " " "应用层 " " " "传输层 " " " "Internet层 " " " "网络层 " " " "窗体底端 " " " "窗体顶端 " " 问题9 " "单项选择题(2.0分 难度:基本题) " " " " " " " "下列不属于包过滤检查的是( ) " " " "源地址和目标地址 " " " "源端口和目标端口 " " " "协议 " " " "数据包的内容 " " " "窗体底端 " " " "窗体顶端 " " 问题10 " "单项选择题(2.0分 难度:基本题) " " " " " " " "在以下认证方式中,最常用的认证方式是( ) " " " "基于账户名/口令认证 " " " "基于摘要算法认证 " " " "基于PKI认证 " " " "基于数据库认证 " " " "窗体底端 " " " "窗体顶端 " " 问题11 " "单项选择题(2.0分 难度:基本题) " " " " " " " "当某一服务器需要同时为内网用户和外网用户提供安全可靠的服务时,该服务器" "一般要放置于防火墙的( ) " " " "内部 " " " "外部 " " " "DMZ区 " " " "都可以 " " " "窗体底端 " " " "窗体顶端 " " 问题12 " "单项选择题(2.0分 难度:基本题) " " " " " " " "PPTP,L2TP和L2F隧道协议属于( )协议。 " " " "第一层隧道 " " " "第二层隧道 " " " "第三层隧道 " " " "第四层隧道 " " " "窗体底端 " " " "窗体顶端 " " 问题13 " "单项选择题(2.0分 难度:基本题) " " " " " " " "在网络安全中,截取是指未授权的实体得到了资源的访问权,这是对( ) " " " "可用性的攻

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值