<考试题> codevs 5440 运输计划 (二分+lca+dfs序+树上差分)

Codeforces 1467E DFS序 + 树上差分        题目大意为,定义合法的根:根到任意结点的路径上的点权唯一,求合法的根的数量。        我们很容易想到,合法的根的数量 = 总点数 - 非法根的数量。        对于任意点权相同的结点,只有它们之间的路径上的结点以及结点的子树才有可能合法,除此之外一定不合法。  &nb 阅读详情

*PS:wzd、dcx与cgold他们组的考试题%%%。。。emmmm,本人太懒qwq,题解也写不明白,大部分抄的考试题解。侵删。

题目描述 Description

公元 2044 年,人类进入了宇宙纪元。

L 国有 n 个星球,还有 n−1 条双向航道,每条航道建立在两个星球之间,这 n−1 条航道连通了 L 国的所有星球。

小 P 掌管一家物流公司, 该公司有很多个运输计划,每个运输计划形如:有一艘物流飞船需要从 ui 号星球沿最快的宇航路径飞行到 vi 号星球去。显然,飞船驶过一条航道是需要时间的,对于航道 j,任意飞船驶过它所花费的时间为 tj,并且任意两艘飞船之间不会产生任何干扰。

为了鼓励科技创新, L 国国王同意小 P 的物流公司参与 L 国的航道建设,即允许小P 把某一条航道改造成虫洞,飞船驶过虫洞不消耗时间。

在虫洞的建设完成前小 P 的物流公司就预接了 m 个运输计划。在虫洞建设完成后,这 m 个运输计划会同时开始,所有飞船一起出发。当这 m 个运输计划都完成时,小 P 的物流公司的阶段性工作就完成了。

如果小 P 可以自由选择将哪一条航道改造成虫洞, 试求出小 P 的物流公司完成阶段性工作所需要的最短时间是多少?

输入描述 Input Description

输入格式

第一行包括两个正整数 n,m,表示 L 国中星球的数量及小 P 公司预接的运输计划的数量,星球从 1 到 n 编号。

接下来 n−1 行描述航道的建设情况,其中第 i 行包含三个整数 ai,bi 和 ti,表示第 i 条双向航道修建在 ai 与 bi 两个星球之间,任意飞船驶过它所花费的时间为 ti。数据保证 1≤ai,bi≤n 且 0≤ti≤1000。

接下来 m 行描述运输计划的情况,其中第 j 行包含两个正整数 uj 和 vj,表示第 j 个运输计划是从 uj 号星球飞往 vj号星球。数据保证 1≤ui,vi≤n

输出描述 Output Description

输出格式

输出文件只包含一个整数,表示小 P 的物流公司完成阶段性工作所需要的最短时间。

样例输入 Sample Input

样例一

6 3
1 2 3
1 6 4
3 1 7
4 3 6
3 5 5
3 6
2 5
4 5

样例输出 Sample Output

11

数据范围及提示 Data Size & Hint

将第 1 条航道改造成虫洞: 则三个计划耗时分别为:11,12,11,故需要花费的时间为 12。

将第 2 条航道改造成虫洞: 则三个计划耗时分别为:7,15,11,故需要花费的时间为 15。

将第 3 条航道改造成虫洞: 则三个计划耗时分别为:4,8,11,故需要花费的时间为 11。

将第 4 条航道改造成虫洞: 则三个计划耗时分别为:11,15,5,故需要花费的时间为 15。

将第 5 条航道改造成虫洞: 则三个计划耗时分别为:11,10,6,故需要花费的时间为 11。

故将第 3 条或第 5 条航道改造成虫洞均可使得完成阶段性工作的耗时最短,需要花费的时间为 11。

限制与约定

1 =100 =1
2 =100 第 i 条航道连接 i 号星球与 i+1 号星球
3
4 =2000 =1
5 =1000 =1000 第 i 条航道连接 i 号星球与 i+1 号星球
6 =2000 =2000
7 =3000 =3000
8 =1000 =1000
9 =2000 =2000
10 =3000 =3000
11 =80000 =1
12 =100000
13 =70000 =70000 第 i 条航道连接 i 号星球与 i+1 号星球
14 =80000 =80000
15 =90000 =90000
16 =100000 =100000
17 =80000 =80000
18 =90000 =90000
19 =100000 =100000
20 =300000 =300000


来自 cgold dalao 的暴力做法+题解%%% ,侵删:

http://blog.youkuaiyun.com/qq_36312502/article/details/78121945

http://blog.youkuaiyun.com/qq_36312502/article/details/78312579

题解

m=1:只有一条路,那么只要把这条路上的最大边删去,可以保证这条线路总长度最小,可以用SPFA或lca做。

n,m<=3000: 显然只能n^2做,我们标记一下每条路线上出现的边,然后,枚举删边并更新删去这条边后中最长路线,同时更新答案。复杂度O(nm)

对于剩下的链的情况:考虑将链转化成区间,维护前缀和,然后在区间上做二分和差分;也可以枚举删去最长路线的每一条边,更新答案,因为数据随机,可能会有分;
或者直接输出0;

官方正解:
1.tarjan离线求lca+二分+树上差分;
2.树链剖分+二分+树上差分+dfs序;

第二种解法:

1.我们要删的边一定在最长路线上;
2.我们将边的信息映射到点上,也就是说儿子与父亲的边的信息,我们放在了儿子身上;

首先,最大值最小化,我们可以想到二分这个最大路线长度;

假设我们已经二分出一个mid:删边后最大路线的长度;

1.所有路线长度大于mid的路线都必须删去一条边,使之小于或等于mid;
2.总共只能删一条边;

联立1,2得:
我们要删的边出现在所有路线长度大于mid的路线上,删去这条边,使得原本最长的路线的路线长度要等于mid,其他路线的长度小于mid;

此时我们的mid是合法答案;

如何求一条边被所有路线经过的次数?
树上差分!
对于每条路线,我们将它起点的边+1,终点的边+1,lca上面的边-2;(把边映射到点)
最后求一遍树上前缀和,就可以得到答案;

但是,如果我们每次都从根节点dfs一遍求前缀和,它的复杂度虽然是O(n),但递归会耗费大量时间,会被卡掉最后一个点;所以我们考虑用dfs序来求解;

在处理树上信息时顺便求出dfs序;
然后我们从后往前求前缀和就可以了,这样是没有后效性的,因为我们dfs时先访问父亲,再访问儿子,父亲的dfs序必然小于它儿子的dfs序,如果从后往前,必然先更新儿子,再更新父亲,复杂度是常数很小的O(n);

总复杂度:O(nlogn);

PS:dalao写的真好qwq. %%%


不会打树链剖分,用倍增lca做的…codevs 上原数据的可以过,加强了数据的题和洛谷的则会T掉一个点。

代码

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<cmath>
using namespace std;
const int Cn=300000+10;
const int Cm=300000+10;

int N,M,cnt,A,B,T,tot,l,r;
int first[Cn],next[Cn<<1];
int fa[Cn][30],dis[Cn],deep[Cn],dfs[Cn],rank[Cn],Cnt[Cn]; 

struct maple{
    int f,t,d,lca;
}Rode[Cn<<1],line[Cm];

void Build(int f,int t,int d)
{
    Rode[++cnt]=(maple){f,t,d};
    next[cnt]=first[f];
    first[f]=cnt; 
}
void Dfs(int f,int t,int sum)  // dfs处理lca和dfs序 
{
    deep[t]=deep[f]+1;
    fa[t][0]=f;
    rank[t]=sum;
    dfs[++tot]=t; 
    dis[t]=sum-rank[f];  //把边权映射到点权 
    for(int i=first[t];i;i=next[i])
       if(Rode[i].t!=f)
          Dfs(t,Rode[i].t,sum+Rode[i].d);
}
void Make_lca() 
{
    for(int i=1;i<=20;++i)
       for(int j=1;j<=N;++j)
          fa[j][i]=fa[fa[j][i-1]][i-1];
}
int Lca(int x,int y)  //求lca 
{
    if(deep[x]<deep[y]) swap(x,y);
    for(int i=20;i>=0;--i)
       if(deep[fa[x][i]]>=deep[y])
          x=fa[x][i];
    if(x==y) return x;
    for(int i=20;i>=0;--i)
       if(fa[x][i]!=fa[y][i])
           x=fa[x][i],y=fa[y][i];
    return fa[x][0];
}
bool check(int mid) // 二分判断 
{
    int count=0,maxn=-1;
    memset(Cnt,0,sizeof(Cnt)); //差分数组 
    for(int i=1;i<=M;++i)
        if(line[i].d>mid)  // 对总时间不合条件的路径做处理 
        {
            ++count;
            ++Cnt[line[i].f];
            ++Cnt[line[i].t];
            Cnt[line[i].lca]-=2;
            maxn=max(maxn,line[i].d);  //统计最大时间 
        }
    for(int i=N;i>=1;--i) Cnt[fa[dfs[i]][0]]+=Cnt[dfs[i]];  //计算差分数组前缀和 
    for(int i=2;i<=N;++i) 
        if(Cnt[i]==count&&maxn-dis[i]<=mid)  // 如果有的边被删过count次并且删去可以满足路径时间都不大于mid 
           return true;
    return false;
}
int main()
{
    scanf("%d%d",&N,&M);
    for(int i=1;i<N;++i)
    {
        scanf("%d%d%d",&A,&B,&T);
        Build(A,B,T);
        Build(B,A,T);
    }
    Dfs(1,1,0);
    Make_lca();
    for(int i=1;i<=M;++i)
    {
        scanf("%d%d",&line[i].f,&line[i].t);
        line[i].lca=Lca(line[i].f,line[i].t);   
        line[i].d=rank[line[i].f]+rank[line[i].t]-2*rank[line[i].lca];  //求路径所用时间 
        r=max(r,line[i].d);
    }
    while(l+1<r)   //  二分 
    {
        int mid=(l+r)>>1;
        if(check(mid)) r=mid;
        else l=mid;
    }
    printf("%d",r);
    return 0;
}
未连接互联网的银河麒麟v10安装g++,各种报错,如何处理? 🏆本文收录于《全栈Bug调优(实战版)》专栏,主要记录项目实战过程中所遇到的Bug或因后果及提供真实有效的解决方案,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!! 备注:部分问题/疑难杂症搜集于互联网。 阅读详情

相关推荐

银河麒麟服务器操作系统V10SP2实战:基于vsftpd构建多角色精细化权限FTP服务

本文详细介绍了在银河麒麟服务器操作系统V10SP2上基于vsftpd构建多角色精细化权限FTP服务的实战指南。从环境准备、核心配置到多角色用户权限管理,全面解析了FTP服务的部署与优化技巧,特别针对企业级应用场景提供了安全加固和故障排查方案。

weixin_30312563的博客 357

LOJ146 DFS 序3,树上差分1【DFS】

DFS 序3,树上差分1 Time Limit: 2000 MS Memory Limit: 131072 K Problem Description 这是一道模板题。 给一棵有根树,这棵树由编号为1…N的N个结点组成。根结点的编号为 R。每个结点都有一个权值,结点i的权值为vi。 接下来有M组操作,操作分为两类: 1 a b x,表示将「结点a到结点b的简单路径」上所有结点的权值都增加x...

Dust_heart的博客 2382

告别手动打点计时:用Lauterbach TRACE32的RunTime功能,5分钟搞定嵌入式代码段性能分析

本文深入解析了Lauterbach TRACE32的RunTime功能在嵌入式代码性能分析中的革命性应用。通过硬件级计时原理和非侵入式设计,该功能能快速精确测量代码执行时间,显著提升开发效率,特别适用于汽车电子和工业控制领域。文章还提供了从基础设置到高级分析的完整实战指南,帮助工程师轻松掌握这一强大工具。

weixin_30615767的博客 278

【C++】dfs序与树上差分

dfs序与树上差分 引入 dfs序就是用递归的方法遍历一棵树的顺序。 这是一个括号序列,有助于解决树上的很多问题。树上差分算法,是一个适用于树上区间操作的算法.它是差分数组,前缀和求解的树上拓展. 众所周知,树这类特殊的结构,往往具有很多性质,而树上差分往往就是结合这些性质,进行高效率的处理.我们还需要知道一点,树上差分基本上不会出裸题,往往会和大量的算法结伴出行.树上差分,准确来说不是算法,而是一种优秀的思想.

Ljnoit 1262

Unity3D 2022版如何一键安装Newtonsoft.Json?最新Package Manager教程

本文详细介绍了在Unity3D 2022及以上版本中,如何通过Package Manager一键安装和配置Newtonsoft.Json(Json.NET)。教程涵盖了从打开Package Manager、搜索并安装正确包源,到验证安装和基础使用的完整流程,旨在帮助开发者以现代化、可靠的方式集成这一强大的JSON处理框架,提升开发效率并规避手动导入的常见问题。

lg888的博客 921

跨模态行人重识别实战:Python复现SYSU-MM01官方评估协议

本文详细介绍了如何用Python复现SYSU-MM01数据集的官方评估协议,以解决原Matlab代码在Python生态中不便使用的问题。文章深入解析了数据集的`indoor`与`all`两种评估模式,并提供了完整的Python代码实现,包括特征加载、相似度计算、Rank-k与mAP指标计算等核心步骤,确保评估结果与官方Matlab版本完全一致,助力跨模态行人重识别研究。

weixin_29081163的博客 99

LOJ146 dfs序3 题解(dfs序+树状数组+树上差分)

题目:LOJ146. 题目大意:给定一棵nnn个点的树,要求支持以下操作: 1.格式1&ThinSpace;a&ThinSpace;b&ThinSpace;c1\,a\,b\,c1abc,表示把链(a,b)(a,b)(a,b)上的点点权加上ccc. 2.格式2&ThinSpace;a2\,a2a,表示查询点aaa的点权. 2.格式3&ThinSpace;a3...

hzk_cpp的博客 2369

三极管NPN与PNP的工作原理及快速识别技巧

本文深入浅出地解析了三极管NPN与PNP的核心工作原理。通过“水龙头”比喻,阐明其以小电流控制大电流的放大与开关本质。文章重点对比了NPN与PNP在电流方向、电位关系和控制逻辑上的根本区别,并提供了快速识别技巧与实用的选型、应用指南,帮助电子爱好者与工程师快速掌握这两种基础元件的关键知识。

neovim7hacker的博客 452

树上差分

看一个简单的问题: 对于一棵树,一开始权值都为0,有K个操作,每次操作对应一组(x,y),将x到y路径上的节点权值+1,最后问节点最大权值。 对于每个节点,记一个差分数组f【】,每次操作将f【x】、f【y】加1,将f【LCA】和f【LCA的父亲】减1,最后每个数的权值等于子树内f数组的和。取个max即可。是不是很简单~~~例题 代码

Moon1125666900的博客 583

uniapp [全端兼容] - 最新详细实现拍摄视频录像并可播放预览视频,调起本机摄像头开启录像录制完毕后保存到本机临时存放,可对拍摄的视频进行压缩处理减少文件大小不损失画质,详解录制视频并读取播放!

uni-app,h5移动端网页,微信小程序,支付宝小程序,Android安卓,苹果ios,app,nvue,录视频,拍视频,拍摄录制视频后上传服务器,调起摄像头录视频并可预览,录视频上传,录像,uniapp录制视频并上传,录制视频并保存到本地设备,如何本地保存并播放预览,提供给用户观看MP4视频录像并上传到后端服务器完整功能源码,视频压缩,mp4文件,删除视频,录像后怎么预览,临时视频文件怎么减少压缩大小,视频压缩及上传,自己录视频并生成可播放的文件,录视频并能打开查看,视频压缩后上传,本机相册,录完怎么预

🏆 前端领域优质创作者 1万+

SAP SD模块定价过程后台配置简介

只有手工输入定价时(例如,在定价中的定价浏览屏幕中),或者只有从外部处理转移这些定价时(例如,成本核算),才将这些定价包括在确定(价格确定、输出确定,批次确定)之中。定价过程的定义和分配是SD模块中最核心的配置,包含了条件表、条件类型、存取顺序、发票类型、客户定价过程等,确定了销售订单已什么价格销售、税率、附加折扣等多个条件行程有一个定价过程。12、小计:记录该条件类型在VBAP表中是否存储,以及其后续用途,如记入信贷,占用信贷额度,记入成本等,如果需要金额暂用信贷额度的话,在小计这里选择A即可。

我小时候很黑的博客 3782

TREE(dfs序+树上差分)

题目 一棵 N 个节点的树,每个节点有整数值的点权。树上节点标号为 1∼N。 Q 个询问,形式如下: (1) 0 x y:把编号 x 的节点的点权修改为 y。 (2) 1 x y:对于编号 x∼y 路径上的每一种点权,是否都出现偶数次? 数据保证每次询问的路径上最多只有一种点权的出现次数是奇数次。 输入格式: 第一行两个数 N、Q 表示树的节点数和询问个数。(5<=...

weixin_43823476的博客 596

从模糊到清晰:让AI教相机自动对焦的实战指南

AI自动对焦技术:让模糊照片成为过去式 深度学习驱动的自动对焦技术正颠覆传统摄影,使相机能在复杂场景下智能锁定焦点。相比传统对焦方法在弱光、低对比度环境下的失效,AI通过学习"清晰-模糊"规律,实现全场景精准对焦。本文详细解析了该技术的三大优势: 自适应各种光线条件; 毫秒级对焦速度; 突破物理限制的精度。 通过PyTorch搭建的CNN模型,展示了从数据采集到模型训练的全流程实战方案,包括使用拉普拉斯算子评估图像清晰度等关键技术。该技术已成功应用于手机摄影、工业检测、无人机航拍和安防监

LXY_LOVE36的博客 346

SDUT---OJ《程序设计基础(B)II》实验6--动态规划

A - 递归的函数 Description 给定一个函数 f(a, b, c): 如果 a ≤ 0 或 b ≤ 0 或 c ≤ 0 返回值为 1; 如果 a > 20 或 b > 20 或 c > 20 返回值为 f(20, 20, 20); 如果 a < b 并且 b < c 返回f(a, b, c−1) + f(a, b−1, c−1) − f(a, b−1, c); 其它情况返回 f(a−1, b, c) + f(a−1, b−1, c) + f(a−1, .

m0_46062697的博客 1259

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

nefu 1330 树上计算 (dfs序+树状数组)

树上计算 Problem:1330 Time Limit:1000ms Memory Limit:65535K Description 给出一棵以 1 为根的树,初始每个顶点的权值为 0 。 现有两种操作: 1 x 代表将顶点 x 的权值加一 2 x 询问顶点 x 的子

Timeclimber 612

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

【校内模拟】fibonacci(斐波那契通项公式)(DFS序)(树状数组)(树上差分)

题面见校内OJ4695 题解: 首先利用斐波那契通项公式转化为等比数列求和。 然后树上差分,考虑修改对询问的贡献,发现有一部分与询问点的深度无关,另一部分有关,分开维护即可。 代码: #include<bits/stdc++.h> #define ll long long #define re register #define gc get_char #define cs cons...

zxyoi_dreamer的博客(不定期诈尸) 255

LOJ 147 DFS序+ST表求LCA+树上差分

题目链接 理解链接 ①先用dfs序或欧拉序把树转成区间,因为dfs序是前序遍历,根节点总在前面,而子树结点数,可以dfs时回溯求得,因此dfs序可以轻松维护子树的信息。 ②然后用树状数组维护每个点到根的距离(通过前缀和求),这题用树状数组因为只涉及区间加减的修改,复杂度常数比线段树小。(但树状数组局限性大,不支持乘除等复杂的修改) ③最后如何求两点距离?树上差分(通俗理解,前缀和or子树和...

zjyang12345的博客 770

LibreOJ #144. DFS 序 1 - (DFS序+树状数组)

题目链接:https://loj.ac/problem/144 题面: 给一棵有根树,这棵树由编号为1…N的N个结点组成。根结点的编号为R。每个结点都有一个权值,结点i的权值为vi​。接下来有M组操作,操作分为两类: 1 a x,表示将结点a的权值增加x; 2 a,表示求结点a的子树上所有结点的权值之和。 输入格式: 第一行有三个整数 N,M和R。 第二行有 N 个整数,第 i 个整数...

Orz 1468

LOJ147 dfs序4 题解(dfs序+树状数组+树上差分)

题目:LOJ147. 题目大意:给定一棵nnn个点的树,要求支持以下操作: 1.格式1&ThinSpace;a&ThinSpace;x1\,a\,x1ax,表示将点aaa的点权增加xxx. 2.格式2&ThinSpace;a&ThinSpace;x2\,a\,x2ax,表示将点aaa的子树增加xxx. 3.格式3&ThinSpace;a&ThinSp...

hzk_cpp的博客 1345

[luogu模拟赛] 11.1

//挺好的一套题,就是没控制住看了题解,浪费了 //明天的要好好做斐波那契(fibonacci)【题目描述】小 C 养了一些很可爱的兔子。 有一天,小 C 突然发现兔子们都是严格按照伟大的数学家斐波那契提出的模型来进行 繁衍: 一对兔子从出生后第二个月起, 每个月刚开始的时候都会产下一对小兔子。 我们假定, 在整个过程中兔子不会出现任何意外。 小 C 把兔子按出生顺序,把兔子们从 1 开始

Taunt_的博客 714

2020年第十一届蓝桥杯大赛软件类决赛(国赛) C/C++ 大学A组【题面】

记录一下国赛的题面,真的和省赛完全不是一个难度的。这次估计国三都混不到,还是太菜了QAQ,之后如果能补题就补吧。 题面的pdf文件我也上传到优快云下载区了,内容和本篇文章一致(题面真长,我复制到markdown修改格式都搞了半天) 文章目录试题 A: 合数个数(5 分)试题 B: 含 2 天数(5 分)试题 C: 本质上升序列(10 分)试题 D: 咫尺天涯(10 分)试题 E: 玩具蛇(15 分)试题 F: 皮亚诺曲线距离(15 分)试题 G: 出租车(20 分)试题 H: 答疑(20 分)试题 I:

nefu_ljw的博客 5648

NOIP 2015 Day2 T3 运输计划(二分+dfs序+树上差分+倍增LCA)

题目大意:给你一棵n个点的边带权树,再给树上m条路径,让你将一条边权改为0,是的路径的最大值最小  题解:

Assmel 378

BZOJ4771 七彩树(dfs序+树上差分+主席树)

  考虑没有深度限制怎么做。显然的做法是直接转成dfs序上主席树,但如果拓展到二维变成矩形数颜色数肯定没法做到一个log。   另一种做法是利用树上差分。对于同种颜色的点,在每个点处+1,dfs序相邻点的lca处-1,那么查询子树颜色数就只需要查询子树和了。   然后加上深度限制。考虑将点一层层加进去,利用set查找dfs序中前驱后继同色点,对dfs序建线段树实现动态树上差分。于是再对深度建主...

weixin_30505043的博客 149

dfs序

青出于蓝胜于蓝(jisuanke) 青出于蓝胜于蓝 武当派一共有nn人,门派内nn人按照武功高低进行排名,武功最高的人排名第11,次高的人排名第22,... 武功最低的人排名第nn。现在我们用武功的排名来给每个人标号,除了祖师爷,每个人都有一个师父,每个人可能有多个徒弟。 我们知道,武当派人才辈出,连祖师爷的武功都只能排行到pp。也就是说徒弟的武功是可能超过师父的,所...

weixin_33709219的博客 196

DFS序

\(dfs\)序就是一棵树在\(dfs\)遍历时组成的节点序列. 它有这样一个特点:一棵子树的\(dfs\)序是一个区间. 下面是\(dfs\)序的基本代码: void dfs(int u)//dfs序:u是根节点 { in[u]=tot; for(auto v:g[u]) { tot++; dfs(v); } out[u]=...

weixin_30567471的博客 145

BZOJ4999 This Problem Is Too Simple!(树上差分+dfs序+树状数组)

  对每个权值分别考虑。则只有单点加路径求和的操作。树上差分转化为求到根的路径和,子树加即可。再差分后bit即可。注意树上差分中根的父亲是0,已经忘了是第几次因为这个挂了。 #include<iostream> #include<cstdio> #include<cmath> #include<cstdlib> #include&lt...

weixin_30376163的博客 154

DFS序——解决一类树上数据结构问题的方法

以下内容有大段摘自《数据结构漫谈》(BY许昊然)

KuribohG 1964
上一篇: bzoj 2763 飞行路线(分层图最短路)
下一篇: <考试题> bzoj 1821 部落划分 (二分、最小生成树)
Loi_Mapleleaf
博客等级 码龄10年 17粉丝 72原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值