首页 > 其他分享 >hihoCoder 1224 : 赛车

hihoCoder 1224 : 赛车

时间:2023-08-15 17:34:52浏览次数:43  
标签:index head 1224 int hihoCoder Edge maxn 赛车 include



链接:http://hihocoder.com/problemset/problem/1224

//深搜一遍求最大深度,从最大深度的叶子回溯到根的所经过的每个顶点在深搜求最大深度

#include <iostream>
#include <math.h>
#include <stdio.h>
#include <queue>
#include <string.h>
#include <algorithm>
using namespace std;
const int maxn=100000+10;

struct Node
{
    int v,next;
}Edge[maxn];

struct node
{
    int start,step;
}p[maxn];
int head[maxn],vis[maxn],length[maxn],pre[maxn],temp,ldeepv;

void add(int u,int v,int index)
{
    Edge[index].v=v;
    Edge[index].next=head[u];
    head[u]=index;
}

void dfs(int v,int length)  //求最大深度
{
    if(temp<length)
    {
        temp=length;
        ldeepv=v;
    }
    if(vis[v]) return;
    vis[v]=1;
    for(int i=head[v];i!=-1;i=Edge[i].next)
    {
        if(!vis[Edge[i].v])
            dfs(Edge[i].v,length+1);
    }
}



int main()
{
    int n;
    while(~scanf("%d",&n))
    {
        int a,b,cnt=0;
        memset(head,-1,sizeof(head));
        memset(length,0,sizeof(length));
        memset(pre,0,sizeof(pre));
        for(int i=1;i<n;i++)
        {
            scanf("%d%d",&a,&b);
            add(a,b,i);
            pre[b]=a;
        }
        ldeepv=temp=0;
        dfs(1,0);
        length[cnt++]=temp;  //存入length
       // printf("%d\n",temp);
        int k=ldeepv;
        memset(vis,0,sizeof(vis));
        while(pre[k]!=0) //回溯
        {
            vis[k]=1;
            k=pre[k];
            temp=0;
            dfs(k,0);
            length[cnt++]=temp;
        }
        sort(length,length+cnt);
        printf("%d\n",length[cnt-1]+length[cnt-2]);
    }
    return 0;
}




标签:index,head,1224,int,hihoCoder,Edge,maxn,赛车,include
From: https://blog.51cto.com/u_3936220/7091409

相关文章

  • hihocoder #1078 : 线段树的区间修改
    解题思路:基础的线段树区间修改我按照书上敲的代码不知道为什么WA。。。#include<iostream>#include<cstdio>#include<cstring>usingnamespacestd;constintmaxn=1e5;intn,q,l,r,_sum;intsetv[maxn<<2],sum[maxn<<2];voidmaintain(into,intL,intR){ intl......
  • 图解LeetCode——1224. 最大相等频率(难度:困难)
    一、题目给你一个正整数数组 nums,请你帮忙从该数组中找出能满足下面要求的最长前缀,并返回该前缀的长度:从前缀中恰好删除一个元素后,剩下每个数字的出现次数都相同。如果删除这个元素后没有剩余元素存在,仍可认为每个数字都具有相同的出现次数(也就是0次)。二、示例2.1>示例1:【......
  • hihoCoder Challenge 28 异或问题 思维
    Givenasequencea[1..n],youneedtocalculatehowmanyintegersSsatisfythefollowingconditions:(1).0≤S<260(2).Foreveryiin[1,n-1],(a[i]xorS)≤(a[i+1]xorS)InputOnthefirstlinethereisonlyoneintegernOnthesecondlinethere......
  • 【macOS游戏】Gear.Club Stradale赛车游戏
    原文来源于黑果魏叔官网,转载需注明出处。Gear.ClubStradale是一个现实的梦想:您将在别致的别墅里度过一个漫长的假期,您将有尽可能多的时间乘坐世界上最美丽的汽车旅行。特点......
  • [macOS游戏]Horizon Chase Turbo——一款赛车游戏
    原文来源于黑果魏叔官网,转载需注明出处。​HorizonChaseTurbo是一款赛车游戏,灵感来自80年代和90年代的精彩歌曲:OutRun、TopGear(SNES)、Rush等。它重现了经典的街机游戏,并......
  • hihoCoder 1098 : 最小生成树二·Kruscal算法
    #1098:最小生成树二·Kruscal算法10000ms1000ms256MB描述随着小Hi拥有城市数目的增加,在之间所使用的Prim算法已经无法继续使用了——但是幸运的是,经过计算机的......
  • hihoCoder 1081 : 最短路径·一
    #1081:最短路径·一10000ms1000ms256MB描述万圣节的早上,小Hi和小Ho在经历了一个小时的争论后,终于决定了如何度过这样有意义的一天——他们决定去闯鬼屋!在鬼屋门......
  • hihoCoder 1097 : 最小生成树一·Prim算法
    #1097:最小生成树一·Prim算法10000ms1000ms256MB描述最近,小Hi很喜欢玩的一款游戏模拟城市开放出了新Mod,在这个Mod中,玩家可以拥有不止一个城市了!但是,问题也接踵......
  • hihoCoder 1089 : 最短路径·二:Floyd算法
    #1089:最短路径·二:Floyd算法10000ms1000ms256MB描述万圣节的中午,小Hi和小Ho在吃过中饭之后,来到了一个新的鬼屋!鬼屋中一共有N个地点,分别编号为1..N,这N个地点之......
  • hihoCoder 1043 : 完全背包
    #1043:完全背包20000ms1000ms256MB描述且说之前的故事里,小Hi和小Ho费劲心思终于拿到了茫茫多的奖券!而现在,终于到了小Ho领取奖励的时刻了!等等,这段故事为何似曾......