10.10NOIP模拟赛

本文详细解析了NOIP模拟赛中的几道图论题目,包括砍树问题、教主的花园路径最短距离计算以及连通数的求解。针对每道题目,提供了思路分析和解题方法,如DFS、二分答案和树形DP等,并给出了部分错误思路的反思。
摘要由CSDN通过智能技术生成


砍树

题目描述

 给出一个树形图(“tree-shaped” network),有N个顶点。如果删除树上某一个顶点,整棵树就会分割成若干个部分。显然,每个部分内部仍保持连通性。

现在问:删除哪个点,使得分割开的每个连通子图中点的数量不超过N/2?如果有很多这样的点,就按升序输出。

    例如,如下图所示的树形图,砍掉顶点3或者顶点8,分割开的各部分满足条件。

 

 

输入

 第1行:1个整数N,表示顶点数。顶点编号1-N。   接下来n-1行每行两个整数x,y,表示x到y有一条边。

输出

 若干行,每行1个整数,表示一个符合条件的顶点的编号。如果没有顶点符合条件,则仅在第1行输出“NONE”。

样例输入

10

1 2

2 3

3 4

4 5

6 7

7 8

8 9

9 10

3 8

样例输出

3

8

提示

【数据范围及约定】

对于50%的数据,满足1≤N≤10000

对于100%的数据,满足1≤N≤1000000



教主的花园

题目描述

     教主最近总困扰于前来膜拜他的人太多了,所以他给他的花园加上了一道屏障。

可以把教主的花园附近区域抽像成一个正方形网格组成的网络,每个网格都对应了一个坐标(均为整数,有可能为负),若两个网格(x1, y1),(x2, y2)有|x1 - x2| + |y1 - y2| = 1,则说这两个网格是相邻的,否则不是相邻的。

教主在y = 0处整条直线上的网格设置了一道屏障,即所有坐标为(x, 0)的网格。当然,他还要解决他自己与内部人员的进出问题,这样教主设置了N个入口a1, a2, …, aN可供进出,即对于y = 0上的所有网格,只有 (a1,0),(a2, 0), ……, (aN, 0) 可以通过,之外的所有纵坐标为0的网格均不能通过,而对于(x,y)有y不为0的网格可以认为是随意通过的。

现在教主想知道,给定M个点对(x1, y1),(x2, y2),并且这些点均不在屏障上,询问从一个点走到另一个点最短距离是多少,每次只能从一个格子走到相邻的格子。

输入

 输入的第1行为一个正整数N,为屏障上入口的个数。

    第2行有N个整数,a1, a2, …, aN,之间用空格隔开,为这N个入口的横坐标。

    第3行为一个正整数M,表示了M个询问。

    接下来M行,每行4个整数x1, y1, x2,y2,有y1与y2不等于0,表示了一个询问从(x1,y1)到(x2, y2)的最短路。

 

输出

输出共包含m行,第i行对于第i个询问输出从(x1, y1)到(x2, y2)的最短路距离是多少

样例输入

2

2 -1

2

0 1 0 -1

1 1 2 2

样例输出

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值