import numpy as np import os class DIS_JOIN(object): def __init__(self): ''' 并查集算法 拥有两个函数 一个是把某个元素放在某个集合中 另一个是返回一个list,包含所有集合和集合中所有的点 ''' self.Set = N ...
分类:
编程语言 时间:
2020-02-22 15:28:19
阅读次数:
79
有点特定的知识点,不过还是需要补的 模板: int ls[N],rs[N]; int val[N],dis[N],fa[N]; //将根为x,y的两个堆合并 返回合并后的根 int merge(int x,int y) { if(!x || !y) return x+y; //此为小根堆 记得对于p ...
分类:
其他好文 时间:
2020-02-22 09:21:52
阅读次数:
64
当我们在两个相邻区间里求出最小后,这个最小不一定为最小,因为可能为两个区间内得数进行组合才得出得最小; 而这个时候如果我们暴力求两个区间内得数的情况的话,会超时,这个时候,我们已经算出了最小值dis 于是,我们从这两个区间的mid开始 向左向右延申长为dis,高为2dis的区间(我们就是将这个范围内 ...
分类:
其他好文 时间:
2020-02-21 14:17:49
阅读次数:
58
思路 两次bfs找出树的直径并处理出端点离树上各叶子节点的距离,在直径上找一点使得dis(p1,p2) + dis(p2,p3) + dis(p1,p3)最大 易知上式是路径实长的两倍 1 #include <bits/stdc++.h> 2 #define dbg(x) cout << #x << ...
分类:
其他好文 时间:
2020-02-20 10:07:36
阅读次数:
52
题意简述:给出一个n个点的完全图,边权要么是1要么是0,输入只给出权值的是1的那些边,求解最小生成树的权值 解答:边很多,我们考虑使用prim算法,prim算法的过程中维护了一个dis数组,这里我们可以发现数组的值单调递减,并且只有01两种取值 因此我们考虑用数据结构去加速他,具体来说就是维护两个集 ...
分类:
其他好文 时间:
2020-02-18 20:57:54
阅读次数:
70
"Problem Link" $dis(u,v)$ 表示 $u$ 到 $v$ 在原来那棵树上的距离,可以用倍增lca $O(\log n)$ 求 从 $a$ 走到 $b$ 不走新边,那么距离 $len_1=dis(a,b)$ 因为树上的边可以随便走,所以只要 $len_1$ 与 $k$ 同奇偶并且 ...
分类:
其他好文 时间:
2020-02-16 12:56:30
阅读次数:
74
1、如果没有开启的话会导致在开启网络发现后又关闭,无法被周围的电脑发现;2、解决办法:(1)同时按住"win+r"键调出"运行",在方框内输入"services.msc"后点击"确定"打开服务;(2)启动Function Discovery Resource Publication、SSDP Dis... ...
分类:
其他好文 时间:
2020-02-16 01:45:46
阅读次数:
85
直接上代码 #include "gpio.h" //设置GPIO0下降沿中断 PIN_FUNC_SELECT(PERIPHS_IO_MUX_GPIO0_U , FUNC_GPIO0);//GPIO0做为普通IO使用 GPIO_DIS_OUTPUT(0);//0:GPIO0 如果以前设置过GPIO为输 ...
分类:
其他好文 时间:
2020-02-14 01:10:47
阅读次数:
89
#include<bits/stdc++.h> #define MAXN 200005 using namespace std; int n,m,k,tot,beg,end; int h[MAXN*15],dis[MAXN*15]; bool vis[MAXN*15]; struct node{ i ...
分类:
其他好文 时间:
2020-02-11 19:17:27
阅读次数:
68
F. Three Paths on a Tree 思路 两种方法: 1.两次bfs求树的直径,顺便求出一个直径端点到所有点的最短距离;再bfs一次,求另一个直径上的端点到其它所有点的最短距离;之后枚举第三个端点(不等于端点1和端点2),dis(a,b) + dis(b,c) + dis(a,c) 再 ...
分类:
其他好文 时间:
2020-02-11 12:01:45
阅读次数:
53