Just__Joker 2021-10-31 18:29 采纳率: 0%
浏览 59
已结题

有人能分析一下这段50行的代码吗?

具体各个函数的作用,各个数组的作用,提供代码和题目

img

#include <bits/stdc++.h>
using namespace std;

const int N = 1E5+5,M = 2E5+10;
int h[N],ne[M],e[M],mark[N];
int n,m,idx;

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

int dfs(int u,int fa)
{
    int sum=0;
    for(int i=h[u];~i;i=ne[i])
    {
        int j=e[i];
        if(j==fa) continue; 
        int t=dfs(j,u);
        if(t>0)
           sum+=t+2;
        else if(mark[j]>0)
           sum+=2;
    }
    return sum;
}


int main()
{
    int a,b,y;
    memset(h,-1,sizeof(h));   //初始化h数组都为-1 
    cin>>n>>m; 
    for(int i=1;i<=n-1;i++)
    {
        cin>>a>>b;
        add(a,b);
        add(b,a);
    }
    for(int i=1;i<=m;i++)
    {
        cin>>y;
        mark[y]++;
    }
    printf("%d",dfs(1,-1));
    return 0;
}

  • 写回答

1条回答 默认 最新

  • 有问必答小助手 2021-11-02 10:11
    关注

    你好,我是有问必答小助手,非常抱歉,本次您提出的有问必答问题,技术专家团超时未为您做出解答


    本次提问扣除的有问必答次数,将会以问答VIP体验卡(1次有问必答机会、商城购买实体图书享受95折优惠)的形式为您补发到账户。


    因为有问必答VIP体验卡有效期仅有1天,您在需要使用的时候【私信】联系我,我会为您补发。

    评论

报告相同问题?

问题事件

  • 系统已结题 11月8日
  • 创建了问题 10月31日

悬赏问题

  • ¥50 ID中开关量采样信号通道、以及程序流程的设计
  • ¥15 U-Mamba/nnunetv2固定随机数种子
  • ¥15 vba使用jmail发送邮件正文里面怎么加图片
  • ¥15 vb6.0如何向数据库中添加自动生成的字段数据。
  • ¥20 在easyX库下编写C语言扑克游戏跑的快,能实现简单的人机对战
  • ¥15 svpwm波形异常求解答
  • ¥15 STM32——硬件IIC从机通信代码实现
  • ¥15 微生物组数据分析--微生物代谢物
  • ¥30 求一跃动小子保卫主公Java算法实现
  • ¥15 地图软件开发技术答疑(api, 地点获取,外观样式)