- Terminus:介绍+使用教程+技巧【全网保姆级教程】
码农耕地人~go
经验分享ssh运维
一、起因当我把电脑从win系统换成mac系统时候,我知道XShell已经不能在使用了,我需要找到最好的ssh客户端去登陆服务器二、心路历程我找了很多的软件:SSHConfigEditorProZOCVanDykeSecureCRTFinalShell每个下载都试用了几天,感觉总是使用起来差些火候,不是传输不行,就是代码显示问题,完全不能找到在win上使用XShell的感觉。最后我有些崩溃,直接问了
- 《网络安全自学教程》- DHCP协议详解
士别三日wyx
《网络安全自学教程》网络协议wireshark网络网络安全web安全安全
《网络安全自学教程》计算机想要「通信」必须要有一个IP地址,IP协议只是提供了IP,想要使用IP,你得自己配。DHCP(DynamicHostConfigurationProtocol)也叫动态主机配置协议,负责「管理」和「分配」IP。DHCP协议一、组成架构二、分配方式1)自动分配2)手工分配3)动态分配三、工作原理四、抓包分析五、租约一、组成架构DHCP使用UDP传输数据,客户端发送请求到「D
- React8+taro开发微信小程序,实现lottie动画
ace_TiAmo
taro微信小程序小程序reactReact
安装核心依赖npminstalllottie-miniprogram@tarojs/plugin-html--save修改Taro配置(config/index.js)constconfig={plugins:['@tarojs/plugin-html',//其他插件...],mini:{canvas:true,webpackChain(chain){chain.merge({module:{ru
- springboot创建bean通过构造方法(只有一个构造方法的情况下)注入其他bean(参数)
你是理想
springbootspringboot后端java
简介spring容器本身在创建bean的时候,会自动从容器中查找参数类型的bean,并将其注入到构造方法中。例子在AlgcPropertiesAutoConFiguration类中,构造方法接收一个AlgcProperties类型的参数。假设此时容器中已经存储在AlgcProperties类型的bean,AlgcPropertiesAutoConFiguration的bean实例时,会自动从容器中
- github 提交代码
陳錄生
github
1,在github创建snake仓库2,创建token3gitinitgitconfig--globaluser.email"lschen@fudan.edu.cn"gitconfig--globaluser.name"ch6sh"gitadd.gitcommit-m"firstcommit"4gitremoteset-urloriginhttps://@github.com/ch6sh/snak
- Git 常用命令集与实际使用 Demo
gqkmiss
git前端gitelasticsearch大数据git命令git命令大全
Git常用命令集与实际使用Demo一、初始化&配置命令说明Demogitinit在当前目录初始化本地Git仓库,生成.git/文件夹mkdirnewProject&&cdnewProjectgitinitgitconfig--globaluser.name“xxx”设置全局用户名gitconfig--globaluser.name“Alice”gitconfig--globaluser.email
- vite项目使用qiankun构建hash路由微前端
幽冥雪羽
web前端微应用前端
文章目录前言一、主应用使用react@18+react-router-dom@61、项目安装2、主应用中注册微应用3、主应用中设置路由和挂载子应用的组件二、创建react@18+react-router-dom@6子应用1、项目安装2、修改子应用vite.config.ts3、修改子应用main.tsx,区分qiankun环境和独立部署环境4、子应用路由需要增加basename配置,用来匹配qia
- C++ 实现 MIT6.824 环境配置
分布式
环境配置Thrift库这个Thrift是一个轻量级的,跨语言的rpc库。安装这个库,我们首先需要安装它需要的依赖。#相关依赖工具sudoyuminstallautomake\libtool\flex\bison\pkgconfig\gcc-c++\boost-devel\libevent-devel\zlib-devel\python-devel\ruby-devel然后下载对应的Thrift的版
- Elasticearch数据流向
小黑蛋学java
ELkELk
Elasticearch数据流向数据流向图---config:layout:elklook:classictheme:mc---flowchartLRsubgraphs1["图例"]directionTBW["写入流程"]R["读取流程"]endA["LogstashPipeline"]--写入请求-->B["Elasticsearch协调节点"]B-->C["索引路由"]C--主分片写入-->D
- 随笔1 认识编译命令
一大Cpp
ubuntulinuxopencv
1.认识编译命令1.1解释gcc编译命令:gcctest1.cpp-otest1pkg-config--cflags--libsopencv命令解析:gcc:GNUC/C++编译器,用于编译C/C++代码。test1.cpp:源代码文件。-otest1:指定输出的可执行文件名为test1。pkg-config--cflags--libsopencv:pkg-config是一个工具,用于查询库的编译
- elasticsearch 8设置验证登录查询
小李飞刀李寻欢
pythonelasticsearchjenkins大数据
最近总是困扰于9200网络勒索,老是在捣乱,动不动给我清理了index,实在是费劲,今天研究了下config配置,设置ca验证。以下是完整的步骤和配置,确保生成的证书文件与elasticsearch.yml的配置一致:1.生成CA证书运行以下命令生成CA证书:让输入账号或密码请直接回车。bin/elasticsearch-certutilca这将生成一个名为elastic-stack-ca.p12
- FacialExpressionDetection的conda虚拟环境搭建Window
xzl04
conda
安装conda的URL:Indexof/anaconda/archive/|清华大学开源软件镜像站|TsinghuaOpenSourceMirror清华源下载conda版本,哪个最新用哪个,这里下载Anaconda3-5.3.1-Windows-x86_64.exe版本安装conda虚拟环境condacreate--namepy10python=3.10pip换源:pipconfigsetglob
- conda 指定版本python_conda 安装指定版本的指定包
weixin_39798579
conda指定版本python
11.1TUNA还提供了Anaconda仓库的镜像,运行以下命令:condaconfig--addchannelshttps://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/condaconfig--setshow_channel_urlsyes即可添加AnacondaPython免费仓库。中科大的镜像:condaconfig--addchann
- 【杂记六】安装miniconda后,如何去除terminal的base
挪威的深林
个人笔记python
禁用基本环境的自动激活的步骤打开终端:打开终端窗口。运行配置命令:执行以下命令,关闭基础环境的自动激活功能。condaconfig--setauto_activate_basefalse验证更改:关闭并重新打开您的终端以确保更改生效。这解释condaconfig--setauto_activate_basefalse:此命令修改Miniconda配置,以防止在打开新的终端会话时自动激活基本环境。其
- 解决编译安装gdb-10.1 unistd.h:663:3: error: #error “Please include config.h first.“ 问题
曉~~
Linuxlinuxc++
最近在Arch中安装C++编译环境,本以为直接pacman-Scmakegdb就能解决,结果在clion中配置环境时竟然提示cmake和gdb版本过高,只好去cmake和gdb官网下载了,cmake官网提供了二进制文件,找个目录解压一下即可直接调用。而gdb则需要自己编译了,这里选择的是gdb-10.1。照例一通./configure、make、makeinstall时,编译出错...... CX
- configure make和make install
瘦弱的皮卡丘
Linuxmakemakeinstallconfigure
简单来说,make是编译,makeinstall是安装。总结:linux编译安装中configure、make和makeinstall各自的作用./configure是用来检测你的安装平台的目标特征的。比如它会检测你是不是有CC或GCC,并不是需要CC或GCC,它是个shell脚本。make是用来编译的,它从Makefile中读取指令,然后编译。makeinstall是用来安装的,它也从Makef
- 深入理解 Spring Boot 的@AutoConfiguration注解
有诺千金
springboot后端java
一、注解出处与定义1.所属包与版本•包名:org.springframework.boot.autoconfigure•引入版本:SpringBoot2.7+(替代旧的自动配置注册方式)2.核心作用@AutoConfiguration是SpringBoot用于标识自动配置类的核心注解。它明确标记一个类为SpringBoot自动配置逻辑的入口,用于根据项目依赖和配置条件,动态注册Bean或调整默认行
- gerrit配置及使用git-lfs
bob_young
gerritgitservletelasticsearch
gerrit服务器端配置下载git-lfs插件登录Dashboard[Jenkins](gerritforge.com),下载对应版本的插件配置gerrit将下载的lfs.jar插件放到${GERRIT_SITE}/plugins/下面为所有仓库启用git-lfs此步骤需要修改All-projects仓库配置,步骤如下1、克隆仓库,检出到refs/meta/config1234gitclone"s
- Vue3 + Vite使用Vitepress编辑基于Element-plus再次封装的Vue3基础组件库文档弃用vitepress-theme-demoblock,使用自己封装的Demo组件
wocwin
Vitevitepresstypescriptvue3demoblock
最终效果使用方式页面效果一、需求vitepress-theme-demoblock插件在编辑md文件时,不支持TSX模式,也无法import其他依赖,并且展开隐藏的vue代码都在md文件中,不够优雅,且每个md文件太长。至此弃用此拆件,改用自己封装demo组件二、plugins配置:在docs/.vitepress下新建config文件夹1、在config文件夹新建global.ts文件,代码如下
- 使用redux-undo实现撤销重做功能
szx的开发笔记
react.js前端框架
使用redux-undo实现撤销重做功能实现效果安装依赖redux-undo文档yarnaddredux-undo包装Reducer用undoable包装你的原始reducer,使其支持历史记录功能。import{configureStore}from'@reduxjs/toolkit'importcounterReducerfrom'./counterSlice'importuserInfoRe
- 【Prometheus】如何在 Prometheus 中正确重命名 Kubernetes Pod 标签
码上淘金
prometheuskubernetesjava
如何在Prometheus中正确重命名KubernetesPod标签在Kubernetes环境中,Prometheus的自动服务发现功能(通过kubernetes_sd_configs)极大简化了监控目标的动态管理。然而,当平台引入自定义标签(如阿里云的ali_metric_labels_job_code)时,这些冗长的标签名可能不利于数据查询和告警规则的编写。本文将完整演示如何通过Prometh
- 推荐项目:全方位Ubuntu 24.04 LTS配置指南(诺布尔·努巴特版)
卓丹游Kingsley
推荐项目:全方位Ubuntu24.04LTS配置指南(诺布尔·努巴特版)ubuntu-configurationConfigurationofDebianbasedOS,suchas:Ubuntu,Mint,andElementaryOS项目地址:https://gitcode.com/gh_mirrors/ub/ubuntu-configuration在开源世界的海洋中,找到一款全面且实用的系统
- 深入理解@EnableConfigurationProperties注解
有诺千金
springbootjava
一、注解出处与定义1.所属包与版本•包名:org.springframework.boot.context.properties•引入版本:SpringBoot1.2+(核心功能之一)2.核心作用@EnableConfigurationProperties是SpringBoot中用于激活外部化配置属性绑定的关键注解。它通过以下两个核心功能简化配置管理:将@ConfigurationProperti
- 深入理解@ConfigurationProperties注解
有诺千金
springboot
一、注解出处与定义1.所属包与版本•包名:org.springframework.boot.context.properties•引入版本:SpringBoot1.0+(核心功能之一)2.核心作用@ConfigurationProperties是SpringBoot中用于将配置文件中的属性批量绑定到Java对象的核心注解。它通过类型安全的方式,将分散在配置文件(如application.yml)中
- npm install时出现gyp ERR stack Error Could not find any Python installation to use
bp粉
前端htmlvue.jsjavascript前端
vue项目使用npminstall按照依赖时,报以下错误:gypverbcommandrebuild[]gypverbcommandclean[]gypverbcleanremoving"build"directorygypverbcommandconfigure[]gypverbfindPythonPythonisnotsetfromcommandlineornpmconfigurationgy
- RT-Thread GD32F4xx SPI驱动(mcp2515)
madao1024
RT-Thread学习记录GD32F4xxRT-ThreadSPI驱动mcp2515
目录1、SPI驱动1.1驱动文件1.1.1drv_spi.h1.1.2drv_spi.c1.2挂载SPI从设备2、SPI驱动配置3、应用测试代码3.1SPI应用接口函数3.1.1配置SPI设备rt_spi_configure3.1.2自定义传输数据3.2mcp2515驱动3.2应用测试代码4、SPI驱动及应用调用流程分析1、SPI驱动使用GitHub上下载的最新驱动文件drv_spi.c/drv_
- 用户画像(https://github.com/memodb-io/memobase)应用
fc&&fl
大模型实战应用状态模式人工智能python
1.下载项目的源代码,我们要先启动后端,用docker启动cdsrc/servercp.env.example.envcp./api/config.yaml.example./api/config.yaml这里我的配置内容如下config.yaml(因为我是调用的符合openai格式的大模型,所以我没改,如果要是别的大模型的话,需要自己再做兼容)llm_api_key:sk-llm_base_ur
- 静态ARP的原理与配置
独行侠1@tcl
网络智能路由器华为sqldatabasejsonetl工程师
相关命令行:Router>enableRouter#configureterminalRouter(config)#interfaceGigabitEthernet0/0Router(config-if)#arp192.168.1.10050.56AB.CDEF1Router(config-if)#exitRouter(config)#exitRouter#writememory相关知识点:在网络
- GDB调试程序的基本命令和用法(Qt程序为例)
漫步企鹅
qt开发语言gdb调试
1.引言GDB(GNUDebugger)是一个强大的命令行调试工具,它可以帮助开发者在程序运行时查找和修复错误。当调试Qt程序时,GDB同样适用,并且能够帮助开发者定位诸如数组越界挂死等复杂问题。2.基本命令2.1启动GDB要在GDB中调试Qt程序,首先需要编译程序时包含调试信息。这通常通过在qmake项目的.pro文件中添加CONFIG+=debug来实现,或者使用g++编译时添加-g选项。然后
- VS Code开发C++跳转配置
漫步企鹅
c++开发语言
C++配置c_cpp_properties.json{"env":{"myIncludePath":["${workspaceFolder}/src/include","${workspaceFolder}/src","${workspaceFolder}","/home/xxx/include/"],"myDefines":["RELEASE","MY_FEATURE=1"]},"configu
- C/C++Win32编程基础详解视频下载
择善Zach
编程C++Win32
课题视频:C/C++Win32编程基础详解
视频知识:win32窗口的创建
windows事件机制
主讲:择善Uncle老师
学习交流群:386620625
验证码:625
--
- Guava Cache使用笔记
bylijinnan
javaguavacache
1.Guava Cache的get/getIfPresent方法当参数为null时会抛空指针异常
我刚开始使用时还以为Guava Cache跟HashMap一样,get(null)返回null。
实际上Guava整体设计思想就是拒绝null的,很多地方都会执行com.google.common.base.Preconditions.checkNotNull的检查。
2.Guava
- 解决ora-01652无法通过128(在temp表空间中)
0624chenhong
oracle
解决ora-01652无法通过128(在temp表空间中)扩展temp段的过程
一个sql语句后,大约花了10分钟,好不容易有一个结果,但是报了一个ora-01652错误,查阅了oracle的错误代码说明:意思是指temp表空间无法自动扩展temp段。这种问题一般有两种原因:一是临时表空间空间太小,二是不能自动扩展。
分析过程:
既然是temp表空间有问题,那当
- Struct在jsp标签
不懂事的小屁孩
struct
非UI标签介绍:
控制类标签:
1:程序流程控制标签 if elseif else
<s:if test="isUsed">
<span class="label label-success">True</span>
</
- 按对象属性排序
换个号韩国红果果
JavaScript对象排序
利用JavaScript进行对象排序,根据用户的年龄排序展示
<script>
var bob={
name;bob,
age:30
}
var peter={
name;peter,
age:30
}
var amy={
name;amy,
age:24
}
var mike={
name;mike,
age:29
}
var john={
- 大数据分析让个性化的客户体验不再遥远
蓝儿唯美
数据分析
顾客通过多种渠道制造大量数据,企业则热衷于利用这些信息来实现更为个性化的体验。
分析公司Gartner表示,高级分析会成为客户服务的关键,但是大数据分析的采用目前仅局限于不到一成的企业。 挑战在于企业还在努力适应结构化数据,疲于根据自身的客户关系管理(CRM)系统部署有效的分析框架,以及集成不同的内外部信息源。
然而,面对顾客通过数字技术参与而产生的快速变化的信息,企业需要及时作出反应。要想实
- java笔记4
a-john
java
操作符
1,使用java操作符
操作符接受一个或多个参数,并生成一个新值。参数的形式与普通的方法调用不用,但是效果是相同的。加号和一元的正号(+)、减号和一元的负号(-)、乘号(*)、除号(/)以及赋值号(=)的用法与其他编程语言类似。
操作符作用于操作数,生成一个新值。另外,有些操作符可能会改变操作数自身的
- 从裸机编程到嵌入式Linux编程思想的转变------分而治之:驱动和应用程序
aijuans
嵌入式学习
笔者学习嵌入式Linux也有一段时间了,很奇怪的是很多书讲驱动编程方面的知识,也有很多书将ARM9方面的知识,但是从以前51形式的(对寄存器直接操作,初始化芯片的功能模块)编程方法,和思维模式,变换为基于Linux操作系统编程,讲这个思想转变的书几乎没有,让初学者走了很多弯路,撞了很多难墙。
笔者因此写上自己的学习心得,希望能给和我一样转变
- 在springmvc中解决FastJson循环引用的问题
asialee
循环引用fastjson
我们先来看一个例子:
package com.elong.bms;
import java.io.OutputStream;
import java.util.HashMap;
import java.util.Map;
import co
- ArrayAdapter和SimpleAdapter技术总结
百合不是茶
androidSimpleAdapterArrayAdapter高级组件基础
ArrayAdapter比较简单,但它只能用于显示文字。而SimpleAdapter则有很强的扩展性,可以自定义出各种效果
ArrayAdapter;的数据可以是数组或者是队列
// 获得下拉框对象
AutoCompleteTextView textview = (AutoCompleteTextView) this
- 九封信
bijian1013
人生励志
有时候,莫名的心情不好,不想和任何人说话,只想一个人静静的发呆。有时候,想一个人躲起来脆弱,不愿别人看到自己的伤口。有时候,走过熟悉的街角,看到熟悉的背影,突然想起一个人的脸。有时候,发现自己一夜之间就长大了。 2014,写给人
- Linux下安装MySQL Web 管理工具phpMyAdmin
sunjing
PHPInstallphpMyAdmin
PHP http://php.net/
phpMyAdmin http://www.phpmyadmin.net
Error compiling PHP on CentOS x64
一、安装Apache
请参阅http://billben.iteye.com/admin/blogs/1985244
二、安装依赖包
sudo yum install gd
- 分布式系统理论
bit1129
分布式
FLP
One famous theory in distributed computing, known as FLP after the authors Fischer, Lynch, and Patterson, proved that in a distributed system with asynchronous communication and process crashes,
- ssh2整合(spring+struts2+hibernate)-附源码
白糖_
eclipsespringHibernatemysql项目管理
最近抽空又整理了一套ssh2框架,主要使用的技术如下:
spring做容器,管理了三层(dao,service,actioin)的对象
struts2实现与页面交互(MVC),自己做了一个异常拦截器,能拦截Action层抛出的异常
hibernate与数据库交互
BoneCp数据库连接池,据说比其它数据库连接池快20倍,仅仅是据说
MySql数据库
项目用eclipse
- treetable bug记录
braveCS
table
// 插入子节点删除再插入时不能正常显示。修改:
//不知改后有没有错,先做个备忘
Tree.prototype.removeNode = function(node) {
// Recursively remove all descendants of +node+
this.unloadBranch(node);
// Remove
- 编程之美-电话号码对应英语单词
bylijinnan
java算法编程之美
import java.util.Arrays;
public class NumberToWord {
/**
* 编程之美 电话号码对应英语单词
* 题目:
* 手机上的拨号盘,每个数字都对应一些字母,比如2对应ABC,3对应DEF.........,8对应TUV,9对应WXYZ,
* 要求对一段数字,输出其代表的所有可能的字母组合
- jquery ajax读书笔记
chengxuyuancsdn
jQuery ajax
1、jsp页面
<%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()
- JWFD工作流拓扑结构解析伪码描述算法
comsci
数据结构算法工作活动J#
对工作流拓扑结构解析感兴趣的朋友可以下载附件,或者下载JWFD的全部代码进行分析
/* 流程图拓扑结构解析伪码描述算法
public java.util.ArrayList DFS(String graphid, String stepid, int j)
- oracle I/O 从属进程
daizj
oracle
I/O 从属进程
I/O从属进程用于为不支持异步I/O的系统或设备模拟异步I/O.例如,磁带设备(相当慢)就不支持异步I/O.通过使用I/O 从属进程,可以让磁带机模仿通常只为磁盘驱动器提供的功能。就好像支持真正的异步I/O 一样,写设备的进程(调用者)会收集大量数据,并交由写入器写出。数据成功地写出时,写入器(此时写入器是I/O 从属进程,而不是操作系统)会通知原来的调用者,调用者则会
- 高级排序:希尔排序
dieslrae
希尔排序
public void shellSort(int[] array){
int limit = 1;
int temp;
int index;
while(limit <= array.length/3){
limit = limit * 3 + 1;
- 初二下学期难记忆单词
dcj3sjt126com
englishword
kitchen 厨房
cupboard 厨柜
salt 盐
sugar 糖
oil 油
fork 叉;餐叉
spoon 匙;调羹
chopsticks 筷子
cabbage 卷心菜;洋白菜
soup 汤
Italian 意大利的
Indian 印度的
workplace 工作场所
even 甚至;更
Italy 意大利
laugh 笑
m
- Go语言使用MySQL数据库进行增删改查
dcj3sjt126com
mysql
目前Internet上流行的网站构架方式是LAMP,其中的M即MySQL, 作为数据库,MySQL以免费、开源、使用方便为优势成为了很多Web开发的后端数据库存储引擎。MySQL驱动Go中支持MySQL的驱动目前比较多,有如下几种,有些是支持database/sql标准,而有些是采用了自己的实现接口,常用的有如下几种:
http://code.google.c...o-mysql-dri
- git命令
shuizhaosi888
git
---------------设置全局用户名:
git config --global user.name "HanShuliang" //设置用户名
git config --global user.email "13241153187@163.com" //设置邮箱
---------------查看环境配置
git config --li
- qemu-kvm 网络 nat模式 (四)
haoningabc
kvmqemu
qemu-ifup-NAT
#!/bin/bash
BRIDGE=virbr0
NETWORK=192.168.122.0
GATEWAY=192.168.122.1
NETMASK=255.255.255.0
DHCPRANGE=192.168.122.2,192.168.122.254
TFTPROOT=
BOOTP=
function check_bridge()
- 不要让未来的你,讨厌现在的自己
jingjing0907
生活 奋斗 工作 梦想
故事one
23岁,他大学毕业,放弃了父母安排的稳定工作,独闯京城,在家小公司混个小职位,工作还算顺手,月薪三千,混了混,混走了一年的光阴。 24岁,有了女朋友,从二环12人的集体宿舍搬到香山民居,一间平房,二人世界,爱爱爱。偶然约三朋四友,打扑克搓麻将,日子快乐似神仙; 25岁,出了几次差,调了两次岗,薪水涨了不过百,生猛狂飙的物价让现实血淋淋,无力为心爱银儿购件大牌
- 枚举类型详解
一路欢笑一路走
enum枚举详解enumsetenumMap
枚举类型详解
一.Enum详解
1.1枚举类型的介绍
JDK1.5加入了一个全新的类型的”类”—枚举类型,为此JDK1.5引入了一个新的关键字enum,我们可以这样定义一个枚举类型。
Demo:一个最简单的枚举类
public enum ColorType {
RED
- 第11章 动画效果(上)
onestopweb
动画
index.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/
- Eclipse中jsp、js文件编辑时,卡死现象解决汇总
ljf_home
eclipsejsp卡死js卡死
使用Eclipse编辑jsp、js文件时,经常出现卡死现象,在网上百度了N次,经过N次优化调整后,卡死现象逐步好转,具体那个方法起到作用,不太好讲。将所有用过的方法罗列如下:
1、取消验证
windows–>perferences–>validation
把 除了manual 下面的全部点掉,build下只留 classpath dependency Valida
- MySQL编程中的6个重要的实用技巧
tomcat_oracle
mysql
每一行命令都是用分号(;)作为结束
对于MySQL,第一件你必须牢记的是它的每一行命令都是用分号(;)作为结束的,但当一行MySQL被插入在PHP代码中时,最好把后面的分号省略掉,例如:
mysql_query("INSERT INTO tablename(first_name,last_name)VALUES('$first_name',$last_name')");
- zoj 3820 Building Fire Stations(二分+bfs)
阿尔萨斯
Build
题目链接:zoj 3820 Building Fire Stations
题目大意:给定一棵树,选取两个建立加油站,问说所有点距离加油站距离的最大值的最小值是多少,并且任意输出一种建立加油站的方式。
解题思路:二分距离判断,判断函数的复杂度是o(n),这样的复杂度应该是o(nlogn),即使常数系数偏大,但是居然跑了4.5s,也是醉了。 判断函数里面做了3次bfs,但是每次bfs节点最多