先分析答案,即$x$和$y$的关系有以下两种:

1.$y$在$x$子树中,那么答案即为包含$y$的$x$的儿子

2.$y$不在$x$子树中,那么答案即为$x$的父亲

那么第一个问题就是判断$y$是否在$x$的子树中,构造的思路有两个:1.记录每一个点到根的路径的状压;2.让每一个子树对应一个区间,记录该区间

前者显然行不通,考虑后者

为了找出这个区间,根最好是其中一个端点,之后考虑有哪些情况不可以:

1.当某两个兄弟(所包含区间相邻)为不同端点状态,那么无法区别这两个节点内部$y$属于哪棵子树

2.当子树的根与所有儿子端点状态相同,那么无法找到该子树所对应的区间

为了避免这两种情况,对于左端点的儿子,都需要记录右端点(反之同理),通过这个可以构造出一个dfs序列(不妨假定根的dfs序为1),考虑判定:

1.$x=1$(根),直接查找$S$中大于等于$y$的最小数即可

2.$|S|=1$(叶子),直接输出$S$中唯一的元素(父亲)即可

3.若$x<\min S$,则$x$必然是左端点,令$z$为$S$中的次大值(其父亲为右端点,大于所有其他数):若$x< y\le z$则答案为$S$中大于等于$y$的最小数,否则,答案为$S$中最大的数

4.若$x>\max S$,则$x$必然是右端点,令$z$为$S$中的次小值(其父亲为左端点,小于所有其他数):若$z\le y<x$则答案为$S$中小于等于$y$的最大数,否则,答案为$S$中最小的数

 1 #include "stations.h"
2 #include<bits/stdc++.h>
3 using namespace std;
4 #define N 1005
5 struct ji{
6 int nex,to;
7 }edge[N<<1];
8 int E,x,head[N],id[N];
9 void add(int x,int y){
10 edge[E].nex=head[x];
11 edge[E].to=y;
12 head[x]=E++;
13 }
14 void dfs(int k,int fa,int s){
15 if (!s)id[k]=++x;
16 for(int i=head[k];i!=-1;i=edge[i].nex)
17 if (edge[i].to!=fa)dfs(edge[i].to,k,s^1);
18 if (s)id[k]=++x;
19 }
20 vector<int> label(int n,int k,vector<int>u,vector<int>v){
21 memset(head,-1,sizeof(head));
22 for(int i=0;i<n-1;i++){
23 add(u[i],v[i]);
24 add(v[i],u[i]);
25 }
26 x=0;
27 dfs(1,0,0);
28 }
29 int find_next_station(int x,int y,vector<int>s){
30 if (x==1)return (*s.lower_bound(s.begin(),s.end(),y));
31 if (s.size()==1)return s[0];
32 if (x<s[0]){
33 int z=s[s.size()-2];
34 if ((x>=y)||(y>z))return s[s.size()-1];
35 return (*s.lower_bound(s.begin(),s.end(),y));
36 }
37 z=s[1];
38 if ((z>y)||(y>=x))return s[0];
39 return (*--s.upper_bound(s.begin(),s.end(),y));
40 }

[luogu6838]网络站点的更多相关文章

  1. 9个用来爬取网络站点的 Python 库

    上期入口:10个不到500行代码的超牛Python练手项目 1️⃣Scrapy 一个开源和协作框架,用于从网站中提取所需的数据. 以快速,简单,可扩展的方式. 官网:https://scrapy.or ...

  2. Hyper-V虚拟化--逻辑网络、VM网络、逻辑交换机

    逻辑网络承接物理网卡和VM网卡 可以关联站点.主机组.VLAN.IP子网,配置静态IP地址池(虚机的PA地址从该静态IP地址池获取) 只有当逻辑网络中的网络站点关联了VLAN后,在VM中才可以选择VL ...

  3. crawler_网络爬虫之数据分析_httpwatcher

    所谓爬虫,首先要通过各种手段爬取到想要站点的数据. web2.0之后,各种网络站点类型越来越多,早期的站点多为静态页面[html .htm],后来逐步加入 jsp.asp,等交互性强的页面.再后来随着 ...

  4. 五十二、linux 编程——网络介绍

    52.1 网络介绍 使用远程资源 共享信息.程序和数据 分布处理 52.1.1 协议的概念 计算机网络中实现通信必须有一些约定,如对速率.传输代码.代码结构.传输控制步骤和出错控制等约定,这些约定即被 ...

  5. 第12章 网络基础(1)_网络分层和TCP/IP协议族

    1. 协议的概念 (1)计算机网络中实现通信必须有一些约定.如对速率.传输代码.代码结构.传输控制步骤和出错控制等约定,这些约定即被称为通信协议 (2)在两个节点之间要成功地进行通信,两个节点之间必须 ...

  6. 黄聪:WordPress 多站点建站教程(一):怎样开启WordPress多站点功能,实现手机移动端主题开发,与主站用户数据共享

    为了开发手机移动端的wordpress,需要使用Wordpress的多站点功能. 1.打开WordPress根目录下的wp-config.php文件, 在文件的任何位置加上以下内容: define(' ...

  7. Python网络爬虫学习手记(1)——爬虫基础

    1.爬虫基本概念 网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本.--------百度百科 简单的说,爬 ...

  8. Python 资源大全中文版

    Python 资源大全中文版 我想很多程序员应该记得 GitHub 上有一个 Awesome - XXX 系列的资源整理.awesome-python 是 vinta 发起维护的 Python 资源列 ...

  9. [转载]Python 资源大全

    原文链接:Python 资源大全 环境管理 管理 Python 版本和环境的工具 p – 非常简单的交互式 python 版本管理工具. pyenv – 简单的 Python 版本管理工具. Vex  ...

随机推荐

  1. mybatis-plus最新版代码生成器(Swagger3)

    写项目想用mybatis-plus+swagger3,百度最新版代码生成器都是旧版的,且官网的配置过于简洁,所以手敲一份,在官网的基础上加了一堆配置,lombok,restful,mvc三层结构目录等 ...

  2. 9.亿级流量电商系统JVM模型参数预估方案

    1. 需求分析 大促在即,拥有亿级流量的电商平台开发了一个订单系统,我们应该如何来预估其并发量?如何根据并发量来合理配置JVM参数呢? 假设,现在有一个场景,一个电商平台,比如京东,需要承担每天上亿的 ...

  3. css3新增属性-background背景

    css3新增属性 边框属性 背景属性 文字属性 颜色属性 背景属性 属性 说明 background-image 添加背景图片 background-size 指定背景图像的大小 background ...

  4. SpringBoot配置文件application

    配置文件 SpringBoot使用一个全局的配置文件 , 配置文件名称是固定的,有两种文件格式: application.properties 语法结构 :key=value application. ...

  5. 快速入门maven

    1.快速介绍 maven(翻译:专家,内行)是apache(一个公司/组织)做的一个项目,或者说是软件,这个东西可以干什么? 可以用它来对咱们做的项目进行改进,增加开发效率,比如帮助你自动导入jar包 ...

  6. pycharm运行测试程序提示no tests were found

    转载: https://blog.csdn.net/qq_33834328/article/details/75095078

  7. 【UE4 C++ 基础知识】<2> UFUNCTION宏、函数说明符、元数据说明符

    UFunction声明 UFunction 是虚幻引擎4(UE4)反射系统可识别的C++函数.UObject 或蓝图函数库可将成员函数声明为UFunction,方法是将 UFUNCTION 宏放在头文 ...

  8. aritest发送测试报告到邮件

    #!/usr/bin/env python # -*- coding=utf-8 -*- __CreateAt__ = '2020/4/19-17:34' import shutil from air ...

  9. gridlayout在kv中的引用

    from kivy.app import App from kivy.uix.gridlayout import GridLayout class GridLayoutWidget(GridLayou ...

  10. the Agiles Scrum Meeting 博客汇总

    the Agiles 团队博客目录 一.Scrum Meeting 1. Alpha the Agiles Scrum Meeting 1 the Agiles Scrum Meeting 2 the ...