【rqnoj 28】[Stupid]愚蠢的宠物

题目描述

背景

大家都知道,sheep有两只可爱的宠物(一只叫神牛,一只叫神菜)。有一天,sheep带着两只宠物到狗狗家时,这两只可爱的宠物竟然迷路了……

描述

狗狗的家因为常常遭到猫猫的攻击,所以不得不把家里前院的路修得非常复杂。狗狗家前院有N个连通的分叉结点,且只有N-1条路连接这N个节点,节点的编号是1-N(1为根节点)。sheep的宠物非常笨,他们只会向前走,不会退后(只向双亲节点走),sheep想知道他们最早什么时候会相遇(即步数最少)。

N的范围《=1000000

输入格式第1行:一个正整数N,表示节点个数。

第2~N行:两个非负整数A和B,表示A是B的双亲。(保证A,B<=n)

第N+1行:两个非负整数A和B,表示两只宠物所在节点的位置。(保证A,B<=n)

输出格式输出他们最早相遇的节点号。

样例输入

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

样例输出

1

#include<iostream>
#include<cstring>
using namespace std;
int father[1000000];
int a[1000000],b[1000000];
int main(){
    memset(a,127/3,sizeof(a));
    memset(b,127/3,sizeof(b));
    int x,y;
    int n;
    cin>>n;
    for(int i=1;i<=n;i++) father[i]=i;
    for(int i=1;i<n;i++){
        cin>>x>>y;
        father[y]=x;
    }
    cin>>x>>y;
    for(int i=0;i<n;i++){
        a[x]=min(i,a[x]);
        x=father[x];
        b[y]=min(i,b[y]);
        y=father[y];
    }
    int mn=999999,ans;
    for(int i=1;i<=n;i++)
        if(a[i]+b[i]<mn){mn=a[i]+b[i];ans=i;}
    cout<<ans;
    return 0;
}
时间: 2024-08-10 19:18:00

【rqnoj 28】[Stupid]愚蠢的宠物的相关文章

Codevs 1503 愚蠢的宠物 解题报告

Codevs 1503 愚蠢的宠物 解题报告 题目描述 Description 大家都知道,sheep有两只可爱的宠物(一只叫神牛,一只叫神菜).有一天,sheep带着两只宠物到狗狗家时,这两只可爱的宠物竟然迷路了-- 狗狗的家因为常常遭到猫猫的攻击,所以不得不把家里前院的路修得非常复杂.狗狗家前院有N个连通的分叉结点,且只有N-1条路连接这N个节点,节点的编号是1-N(1为根节点).sheep的宠物非常笨,他们只会向前走,不会退后(只向双亲节点走),sheep想知道他们最早什么时候会相遇(即步

1503 愚蠢的宠物

1503 愚蠢的宠物 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题解 查看运行结果 题目描述 Description 大家都知道,sheep有两只可爱的宠物(一只叫神牛,一只叫神菜).有一天,sheep带着两只宠物到狗狗家时,这两只可爱的宠物竟然迷路了…… 狗狗的家因为常常遭到猫猫的攻击,所以不得不把家里前院的路修得非常复杂.狗狗家前院有N个连通的分叉结点,且只有N-1条路连接这N个节点,节点的编号是1-N(1为根节点).sheep的宠物非常笨,他们只会向

CodeVS 1503 愚蠢的宠物

题目描述 Description 大家都知道,sheep有两只可爱的宠物(一只叫神牛,一只叫神菜).有一天,sheep带着两只宠物到狗狗家时,这两只可爱的宠物竟然迷路了…… 狗狗的家因为常常遭到猫猫的攻击,所以不得不把家里前院的路修得非常复杂.狗狗家前院有N个连通的分叉结点,且只有N-1条路连接这N个节点,节点的编号是1-N(1为根节点).sheep的宠物非常笨,他们只会向前走,不会退后(只向双亲节点走),sheep想知道他们最早什么时候会相遇(即步数最少). 输入描述 Input Descri

【rqnoj28】[Stupid]愚蠢的宠物

题目描述 背景 大家都知道,sheep有两只可爱的宠物(一只叫神牛,一只叫神菜).有一天,sheep带着两只宠物到狗狗家时,这两只可爱的宠物竟然迷路了…… 描述 狗狗的家因为常常遭到猫猫的攻击,所以不得不把家里前院的路修得非常复杂.狗狗家前院有N个连通的分叉结点,且只有N-1条路连接这N个节点,节点的编号是1-N(1为根节点).sheep的宠物非常笨,他们只会向前走,不会退后(只向双亲节点走),sheep想知道他们最早什么时候会相遇(即步数最少). N的范围<=1000000 输入格式 第1行:

互联网+宠物:有宠能否引爆宠物市场

概念:"互联网+"是创新2.0下的互联网发展的新业态,是知识社会创新2.0推动下的互联网形态演进及其催生的经济社会发展新形态."互联网+"是互联网思维的进一步实践成果.推动经济形态不断的发生演变,从而带动社会经济实体的生命力,为改革.创新.发展提供广阔的网络平台. 互联网的发展,让人类社会各方面发生翻天覆地的变化.随着生活水平的不断提高,人们对事物欣赏的水平也提高到一个历史制高点. "互联网+"模式的出现,也更加刺激了互联网经济时代的变革.创业者

大神刷题表

9月27日 后缀数组:[wikioi3160]最长公共子串 dp:NOIP2001统计单词个数 后缀自动机:[spoj1812]Longest Common Substring II [wikioi3160]最长公共子串 [spoj7258]Lexicographical Substring Search 扫描线+set:[poj2932]Coneology 扫描线+set+树上删边游戏:[FJOI2013]圆形游戏 结论:[bzoj3706][FJ2014集训]反色刷 最小环:[poj1734

Windows7WithSP1/TeamFoundationServer2012update4/SQLServer2012

[Info   @09:03:33.737] ====================================================================[Info   @09:03:33.743] Team Foundation Server Administration Log[Info   @09:03:33.748] Version  : 11.0.61030.0[Info   @09:03:33.748] DateTime : 05/24/2014 17:0

RQNOJ 329 刘翔!加油!:01背包

题目链接:https://www.rqnoj.cn/problem/329 题意: 刘翔有n封信,每封信都有自己的欣赏价值value[i].消耗时间time[i].消耗体力h[i].和得到的鼓舞w[i]. 观看信件必须按照价值递增(大于)的顺序观看,不一定需要全看. 可是,刘翔在伤病中,时间和体力分别为t,m,同时看完之后体力不能为0. 问你受到的鼓舞最大为多少. 题解: 这道题里value[i]真的没有用... 表示状态: dp[i][j][k] = max encouraging i:考虑到

【解题报告】[动态规划]RQNOJ PID2 / 开心的金明

原题地址:http://www.rqnoj.cn/problem/2 解题思路:背包问题. 状态转移方程:DP[i][j]=max(DP[i-v[j]][j-1]+p[j]*v[j],DP[i][j-1]) DP[i][j]表示最多话费i的钱,购买前j+1个物品所能达到的最大价值. 解题代码: 1 #include<stdio.h> 2 #include<iostream> 3 #include<algorithm> 4 using namespace std; 5 i