menu zcmimi's blog

arrow_back set

可以发现按dfs序排序后路径是a_1,a_2,a_3,...,a_k,a_1

那答案就是dist(a_1,a_2)+dist(a_2,a_3)+...+dist(a_k,a_1)

设现在要

zc
2020-02-01 00:38
  1. b_i = a_i + 1

    一条链

    直接二分最小值,然后判断即可

  2. m=1

    直接找树的直径

  3. a_i = 1

    记录所有边权

zc
2019-12-21 19:47

在每条重链上搞一个set

或者用线段树+二分 ```cpp // luogu-judger-enable-o2

include<bits/stdc++.h>

namespace ZDY{

zc
2019-12-21 19:47

```cpp

include<bits/stdc++.h>

namespace ZDY{

#pragma GCC optimize(3)
#define il __inline__ 
zc
2019-12-21 19:47

```cpp

include<bits/stdc++.h>

namespace ZDY{

#pragma GCC optimize(3)
#define il __inline__ 
zc
2019-12-21 19:47

先用set预处理出离每个点最近的点和第二近的点

n~1 每次往set里插入{a[i],i} 然后把前驱后继找出来比较一下 具体看代码

(听说有排序后双向链表的神仙做法)

zc
2019-12-21 19:47
1 / 1
Search
search