- 遥感影像智能化分割分类工程化实施路径摸索
grainseed
pythonai深度学习图像处理分类开源软件
本文总结了基于遥感影像的信息采集工作中“自上而下、一步到位”工作模式下应用深度学习最新智能解译技术方面面临的问题与困境,期望通过“自下而上、分步到位”的途径进行突破,回顾了在这方面的摸索、试验过程,对初步成果——一个交互式自动识别地物边线的QGIS插件Monitask——进行了介绍,并与同类工作进行了比较,可供从事遥感影像分析、地理信息采集工作和研究的同行们参考借鉴。如果对过程不感兴趣,可以直接跳
- 小智机器人相关函数解析,BackgroundTask::Schedule (***)将一个回调函数添加到后台任务队列中等待执行
LS_learner
人工智能嵌入式嵌入式硬件人工智能
以下是对BackgroundTask::Schedule函数代码的详细解释:voidBackgroundTask::Schedule(std::functioncallback){std::lock_guardlock(mutex_);if(active_tasks_>=30){intfree_sram=heap_caps_get_free_size(MALLOC_CAP_INTERNAL);if
- Android开发过滤掉其他不需要的渠道或者类型build variant,加快构建速度
893151960
android开发日记androidAndroid教程Android开发Android加快构建速度加快build速度
Android开发过滤掉其他不需要的渠道或者类型buildvariant,加快构建速度在app的build.gralde的android{}这层里面加入以下代码//过滤掉其他不需要的渠道或者类型buildvariant,加快构建速度(运行代码速度加快,不在runtask时出现)android.variantFilter{variant->variant.getFlavors().each(){fl
- hive 写 es 报EsHadoopRemoteException: index_closed_exception: closed null
守猫de人
Elasticsearches6/es7大数据
错误由来,es添加xpack后,hive写es总报index关闭。通过测试,其实数据是可以写入index,且数据量对不上,怀疑是最后提交的时候无法成功,一直提交刷新,最后报错。Status:FailedVertexfailed,vertexName=Map1,vertexId=vertex_1605086559607_0014_1_00,diagnostics=[Taskfailed,taskId
- JAVA ZGC相关GC日志详情分析
wppwpp1
javajvm算法
可以通过设置-Xlog:gc*:gc.log选项以开启ZGC日志。其中"gc*"意为打印所有tag中以"gc"开头的日志,"gc.log"为日志存储路径。下面以AutoMQ在实际运行时的一次GC为例,按照不同的logtag,解释ZGC日志的含义。"gc,start","gc,task","gc"[gc,start]GC(100)GarbageCollection(Timer)[gc,task]GC
- Spring Task 定时任务
圈圈编码
springjava前端
SpringTaskSpringTask是Spring框架提供的轻量级定时任务调度模块,通过简单的注解和配置即可实现任务调度。1.核心功能定时任务:按固定频率(fixedRate)、固定间隔(fixedDelay)、或自定义时间规则(Cron表达式)执行任务。异步任务:结合@Async注解实现异步任务执行。动态调整:支持运行时动态修改任务规则。2.基本使用2.1启用定时任务支持在SpringBoo
- 【无标题】
兔斯基灬木木
Linux实时内核机制Linux时间子系统Linux实时内核
1080staticint__hrtimer_start_range_ns(structhrtimer*timer,ktime_ttim,1081u64delta_ns,constenumhrtimer_modemode,
- 探索STM32F103C8T6的外设:GPIO、ADC与定时器
AI_Guru人工智能
stm32单片机嵌入式硬件
探索STM32F103C8T6的外设:GPIO、ADC与定时器引言STM32F103C8T6微控制器拥有丰富的外设接口,包括通用输入/输出(GPIO)、模拟/数字转换器(ADC)和定时器(Timer)。这些外设为嵌入式系统的设计提供了极大的灵活性。本文将介绍STM32F103C8T6的这些核心外设,并提供一些基础的代码示例。GPIO通用输入/输出(GPIO)是微控制器中最基本的外设之一,用于与外部
- Gantt - config配置信息
Ariel_提拉米苏
Gantt-DHXjavascript前端甘特图
gantt.config={auto_scheduling_move_projects:'定义是否将整个项目移动(请参阅下面的详细信息)',preserve_scroll:'在重新绘制甘特图时保留垂直和水平滚动的当前位置',auto_scheduling_descendant_links:'允许或禁止创建从父任务(项目)到子任务的链接',task_date:'设置灯箱“时间段”部分中日期标签的格式
- 如何实现高性能的在线 PDF 预览
水煮白菜王
2025前端pdf前端性能优化
作者简介:水煮白菜王(juejin/csdn同名),一位前端劝退师文章专栏:高德AMap专栏,记录一下平时学习在博客写作中记录,总结出的一些开发技巧✍。感目录思路实现方案1.服务器对PDF文件进行分片2.浏览器(客户端)根据用户交互行为获取并渲染指定的分片获取远程的pdf文档PDFDocumentLoadingTaskPDFDocumentProxyPDFPageProxy实现细节下载PDF分片渲
- C++基础知识--从宏定义变量名看相关展开顺序
沐怡旸
c++基础知识
TIME_STAT_1和TIME_STAT_2两个宏的目的是想定义一个不重复的变量名(根据行号),但是只有TIME_STAT_1能够达到目的以下是TIME_STAT_1和TIME_STAT_2两种宏展开的详细流程解析,配合图示说明关键差异:1.宏定义说明#defineCONCAT(x,y)x##y#defineTIME_STAT_LOGIC_1(node,num)TimeRecorderCONCA
- C#多线程并发控制
Winemonk
.NETc#开发语言多线程并发控制
C#多线程并发控制1Parallel.ForEach在C#里,Parallel.ForEach是System.Threading.Tasks命名空间下的一个方法,它能并行处理集合中的元素。与传统的foreach循环不同,Parallel.ForEach会利用多个线程同时处理集合中的元素,以此提升性能,特别是在处理大型集合或者每个元素的处理操作较为耗时的情况下。1.1基本语法Parallel.For
- 记录关于Unitask的一些基础使用
相良宗介x
笔记学习
文章目录前言一、Unitask插件Github路径二、基本使用方法记录1.文本异步加载Mono托管非Mono托管2.加载场景的运用3.请求下载图片并且切换成Sprite动画4.UniTask.DelayI.简单的按秒数延时时间II.简单按帧数延时时间5.UniTask.NextFrame\WaitForEndOfFrame\Yield6.UnitaskWhenAll和WhenAny使用方法7.Un
- C++多线程的性能优化
写代码写到手抽筋
C/C++编码学习linux进程和线程c++性能优化java
高效线程池设计与工作窃取算法实现解析1.引言现代多核处理器环境下,线程池技术是提高程序并发性能的重要手段。本文解析一个采用工作窃取(WorkStealing)算法的高效线程池实现,通过详细代码分析和性能测试展示其优势。2.线程池核心设计2.1类结构概览classThreadPool{public:usingTask=std::function;private:structWorkerData{st
- Netty源码—10.Netty工具之时间轮
牛马程序员2025
.netunity网络hadoop
Netty源码—10.Netty工具之时间轮大纲1.什么是时间轮2.HashedWheelTimer是什么3.HashedWheelTimer的使用4.HashedWheelTimer的运行流程5.HashedWheelTimer的核心字段6.HashedWheelTimer的构造方法7.HashedWheelTimer添加任务和执行任务8.HashedWheelTimer的完整源码9.Hashe
- Android学习总结之Kotlin 协程
每次的天空
kotlin开发语言android
一、引言在Android开发中,异步任务处理是绕不开的话题。传统的线程、Handler、AsyncTask等方案要么过于繁琐,要么存在生命周期管理问题。Kotlin协程的出现,以优雅的语法和强大的结构化并发能力,成为解决异步编程难题的理想方案。本文将结合核心概念、使用场景和实战经验,带您全面掌握协程的精髓。二、协程核心概念:轻量级的异步处理首先要明确的是,协程不是线程。线程是操作系统调度的基本单位
- Qt 练习
yayyy4
qtui开发语言
制作小闹钟widget.cpp文件#include"widget.h"#include"ui_widget.h"#include#include#includeWidget::Widget(QWidget*parent):QWidget(parent),ui(newUi::Widget){ui->setupUi(this);//给定时器事件指针实例化t1=newQTimer(this);t2=ne
- Python使用总结之深入理解 asyncio.Future——Python 异步编程的核心基石
阿福不是狗
Python使用总结python开发语言
深入理解asyncio.Future:Python异步编程的核心基石在现代异步编程中,asyncio.Future对象是Python异步生态系统的底层核心组件之一。它不仅是Task的基类,更是所有异步操作结果的统一抽象容器。本文将深入探讨它的设计哲学、运作机制和典型应用场景。一、Future的本质:异步时空胶囊Future对象本质上是一个异步状态容器,其核心功能可以用一个物理实验来类比:想象将一段
- Qt非阻塞延时实现
@hdd
Qtqt延时
一、需求背景在Qt开发中,当我们需要实现延时操作时,直接使用QThread::sleep()会导致线程阻塞,造成界面卡顿甚至程序无响应。本文将深入探讨6种非阻塞延时方案,涵盖从基础到进阶的不同场景需求。二、核心方案对比方案实现难度线程依赖适用场景精度QTimer单次定时器⭐主线程简单单次延时10ms级事件循环+QTimer⭐⭐任意线程需要阻塞等待的延时10ms级QFuture异步延时⭐⭐工作线程后
- CDS526: Artificial Intelligence-based Optimization
后端
CDS526:ArtificialIntelligence-basedOptimizationCaseStudy:Multi-objectiveOptimisation1TaskThiscasestudyiscomposedoftwomaintasks,problemsolving(detailedinSection2)andpaperpresentation(detailedinSection3
- python版 聊天软件
qinhoupingss
Python
#!/usr/bin/python3.4fromtkinterimport*fromtkinter.filedialogimportaskopenfilenameimporttimefromthreadingimportThreadimportsocketimportsysimportos.pathimportprocess#聊天实现类classChatClient(Thread):#构造函数de
- MapReduce论文精读
寒冰陨云
MIT6.824分布式系统mapreducehadoop大数据
文章目录概述研究意义编程模型与系统实现编程模型MapReduce示例:统计文档中所有单词的出现次数系统实现基本流程容错处理worker异常master异常localityTaskGranularityBackupTasksCombinationFunction总结概述本文主要目的是记录MapReduce论文中的核心思想,方便个人和大家进行记录和查看。MapReduce同时也是MIT6.824的必读
- 大数据论文_02_MapReduce(个人总结)
hellosrc2023
大数据hadoop大数据
声明:1.本文为我的个人复习总结,并非那种从零基础开始普及知识内容详细全面,言辞官方的文章2.由于是个人总结,所以用最精简的话语来写文章3.若有错误不当之处,请指出MapReduce目的:让开发人员意识不到分布式的存在架构:Master(JobTracker)Worker(TaskTracker:MapTask,ReduceTask)三个问题:简单易用:只有Map和Reduce,增加机器数量即可提
- DTS304TC Machine Learning
后端
XJTLUEntrepreneurCollege(Taicang)CoverSheetModulecodeandTitleDTS304TCMachineLearningSchoolTitleSchoolofAIandAdvancedComputingAssignmentTitleAssessmentTask2SubmissionDeadline23:59,6thApril(Sunday),2025
- Total size of serialized results of 20 tasks (1088.8 MB) is bigger than spark.driver.maxResultSize (
Levin__NLP_CV_LLM
Totalsizeofserializedresultsof20tasks(1088.8MB)isbiggerthanspark.driver.maxResultSize(1024.0MB)pypark2.0(sparkpython)执行中出现上述错误,解决方案:SparkContext.setSystemProperty('spark.driver.maxResultSize','10g')
- PaddlePaddle Uie-Base 信息抽取
weixin_37806923
paddlepaddle人工智能
微调代码,打标签后的文件放在work目录下不会被删除,若放在data下重启环境后会被删掉pythondoccano.py\--doccano_file./work/admin.jsonl\--task_typeext\--save_dir./data\--splits0.80.20\--schema_langchexportfinetuned_model=./checkpoint/model_be
- 跟着野火视频学习FreeRTOS——支持多优先级
AAAA啊啊啊啊啊
学习
前言本节就是关于对任务切换方式这一部分的补充。之前是定义了taskYILED()函数实现两个任务轮流切换,还不支持多优先级。在本节之前,FreeRTOS还没有支持多优先级,只支持两个任务互相切换,从此,开始加入优先级的功能。在FreeRTOS中,数字优先级越小,逻辑优先级越小。1、如何支持多优先级就绪列表是一个数组,存的是就绪任务的TCB,数组下标对应任务优先级,优先级越低对应数组下标越小,空闲任
- dolphin上MySQL到hive、seatunnel任务创建
元亨利贞之乾
mysqlhive数据库
dolphin上MySQL到hive、seatunnel任务创建:1.先获取所需数量的taskCodeLongtaskCode=getClient().opsForProcess().generateTaskCode(projectCode,1).get(0);2.创建MySqlSource对象,result_table_name、url、user、password、query是必须的public
- 使用cgroup纪要
chenyi4155
cgroup的使用方式有很多文档可循,下面记录了我使用(踩坑)过后觉得需要特别注意的.release_agent(presentintherootcgrouponly)的使用与notify_on_release搭配使用,可以使用release_agent来在tasks为空时释放cgroupcgroup.procs与taskspid写入cgroup.procs,tid写入tasks,如果一个多线程的
- 线程池详解
一个public的class
java开发语言后端
1.线程池的核心概念线程池是一种用于管理和复用线程的机制,旨在减少线程创建和销毁的开销,提高系统的性能和资源利用率。以下是线程池的核心组成部分:1.1核心组件任务队列(TaskQueue):存储待执行的任务。通常是一个阻塞队列(如BlockingQueue),当线程池中的线程都在忙碌时,新任务会被放入队列中等待。工作线程(WorkerThreads):线程池中实际执行任务的线程。工作线程会从任务队
- 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节点最多