- 安卓笔记本 - Handler Message MessageQueue Looper
SocialException
不爱写字,一张图解决。Handler,Message,MessageQueue,Looper工作原理
- STM32 消息队列处理串口发送的报文
S安东尼
stm32嵌入式硬件单片机
文章目录概要整体流程具体实现小结概要本文写自正在做的项目,需要使用串口2处理EasyModBus传输的报文,原本采用中断处理的方式,在屏幕,按键,感应器同时传输下,产生了丢包现象,偶发性的死机问题,所以改用消息队列进行缓存,逐条处理。整体流程创建队列串口中断接收报文,简易判别添加入队列解包任务,从队列中取出报文解包做相应处理具体实现创建队列结构体#defineQUEUE_LENGTH20struc
- 力扣126双周赛
koshi484
leetcode算法职场和发展
k三题求出加密整数的和classSolution{publicintsumOfEncryptedInt(int[]nums){intans=0;for(inti=0;ipq=newPriorityQueue{if(nums[a]!=nums[b]){returnnums[a]-nums[b];}returna-b;});SetmarkedSet=newHashSet0&&!pq.isEmpty()
- [Java安全入门]六.CC2+CC4+CC5+CC7
网安小丑
JAVA安全java安全python网络空间安全
一.前言与前面几条cc不同的是,cc2的依赖是4.0版本,并且解决了高版本无法使用AnnotationInvocationHandler类的弊端。cc2使用javassist和PriorityQueue来构造链。二.添加依赖org.apache.commonscommons-collections44.0org.javassistjavassist3.22.0-GA三.构造链ObjectInput
- 复习笔记 队列
李不存
笔记
约瑟夫问题:约瑟夫问题:有N个人围成一圈,每个人都有一个编号,编号由入圈的顺序决定,第一个入圈的人编号为1,最后一个为N,从第k(1queue=newLinkedList<>();Scannersc=newScanner(System.in);intn=sc.nextInt();intm=sc.nextInt();for(inti=1;i<=n;i++){queue.add(i);}intcoun
- 添加视频AVPacket到队列中
张俊峰0613
视频解码流程创建C++类-JfVideo,保存Video相关参数:JfVideo.hclassJfVideo{public:intstreamIndex=-1;AVCodecContext*avCodecContext=NULL;AVCodecParameters*codecpar=NULL;JfQueue*queue=NULL;JfPlayStatus*playStatus=NULL;JfCal
- 无锁队列(Lock-Free Queue)
笨死de猪
游戏服务器架构开发语言c++无锁队列
一、什么是无锁队列无锁队列(Lock-FreeQueue)是一种不使用锁机制(如互斥锁或读写锁)来实现线程安全的数据结构,是lock-free中最基本的数据结构。它通过复杂的原子操作(如CAS操作,在C++中,可以使用std::atomic库提供的原子操作)来确保在多线程环境下的正确性和一致性。无锁队列的设计目标是在高并发场景下提供高性能的入队和出队操作,避免了锁机制带来的性能开销和潜在的死锁问题
- 每日三个JAVA经典面试题(十六)
金克斯在coding
java面试开发语言
1.AQS对资源的共享方式?AbstractQueuedSynchronizer(AQS)是Java并发包中的一个关键框架,用于构建锁和其他同步器。AQS提供了对资源共享方式的支持,主要分为两种模式:独占模式和共享模式。这两种模式决定了同步状态(即资源)的获取和释放方式。独占模式(ExclusiveMode)独占模式意味着每次只有一个线程可以获取同步状态。这种模式适用于实现互斥锁等同步器,例如Re
- RabbitMq高级特性-2
letg
springamqprabbitmq分布式
一、死信队列死信队列,英文缩写:DLX。DeadLetterExchange(死信交换机),当消息成为Deadmessage后,可以被重新发送到另一个交换机,这个交换机就是DLX。1.1消息在什么情况下会成为死信?1.队列消息长度到达限制;⒉消费者拒接消费消息,basicNack/basicReject,并且不把消息重新放入原目标队列,requeue=false;3.原队列存在消息过期设置,消息到
- rabbitmq发送json消息
陌以然I
rabbitmqjava分布式
rabbitmq发送json格式消息packageorg.secp.rabbitmq.exchange;importorg.springframework.amqp.core.Binding;importorg.springframework.amqp.core.BindingBuilder;importorg.springframework.amqp.core.Queue;importorg.s
- JavaGuide知识点整理——集合使用注意事项总结
唯有努力不欺人丶
这篇文章是根据阿里巴巴java开发手册总结了关于集合使用常见的逐一实现以及原理。集合判空判断所有集合内部的元素是否为空使用isEmpty()方法,而不是size()==0的方式。这是因为isEmpty()方法的可读性更好,并且时间复杂度为O(1).不过也有很多复杂度不是O(1)的,比如JUC包下的某些集合ConcurrentLinkedQueue、ConcurrentHashMap...下面是Co
- AQS抽象的队列式同步器
俊采星驰_coder_qi
常问问题整理于网络参考https://segmentfault.com/a/1190000017372067推荐确实写的不错J.U.C简单解释一下J.U.C,是JDK中提供的并发工具包,java.util.concurrent。里面提供了很多并发编程中很常用的实用工具类,比如atomic原子操作、比如lock同步锁、fork/join等。AQSAQS,队列同步器AbstractQueuedSync
- 每日简报 6月3日简报新鲜事 每天一分钟 了解新鲜事!
简报新鲜事
今日简报6月3号简报新鲜事,星期五,好运连连,生活喜乐!1、端午预计全国铁路日均发送旅客540万;2、国家卫健委:各地对上海返回人员不能层层加码;3、比亚迪董秘谈为何砍掉燃油车,电动汽车完全供不应求燃油车盈利比不上电动车;4、市场监管总局公布《明码标价和禁止价格欺诈规定》;(完整版在上方)5、直击雅安震中太平镇:房屋大多损伤较小,全镇居民住进安置点;6、据2022端午消费趋势数据显示,5月中旬至下
- C#常见的.Net类型(二)
林祖师
C#c#.net开发语言
目录一、在集合中存储多个对象理解集合的选择1.列表2.字典3.堆栈4.队列5.集二、使用Span、索引和范围Span索引范围处理类型和属性1.特性2.创建自定义特性3.反射一、在集合中存储多个对象处理集合的常见类型类型描述List动态大小的数组,可以按索引访问Dictionary键值对集合,根据键进行快速查找Queue先进先出的队列集合Stack后进先出的栈集合HashSet不包含重复元素的集合L
- 游戏网站除了steam还有什么 游戏网站在线玩小游戏
会飞的鱼儿
免费在线游戏网站为我们的日常休闲娱乐提供了丰富多样的游戏体验。有些游戏平台相当优质,同时还提供实时动态、活动福利等。现在让我们一起探寻哪些免费在线游戏网站值得你投入时间和精力,沉浸在游戏的世界中,畅玩各种好玩的游戏。2024最火的免费游戏网站排行榜大全───┅┈━━━━━━━━┅┈─────────────Top1──────────游戏名字:游戏豹官网-特点-:手机游戏门户网站日活跃量:1.3w
- Yii实现RabbitMQ队列
huaweichenai
rabbitmq分布式phpyii
一:拓展安装composerrequireyiisoft/yii2-queuecomposerrequireenqueue/amqp-lib2:RabbitMQ队列配置在配置文件中配置RabbitMQ队列'components'=>[...'queue'=>['class'=>yii\queue\amqp_interop\Queue::class,'host'=>'192.168.6.88',//
- 周期性任务线程池 - ScheduledThreadPoolExecutor & DelayedWorkQueue
weixin_44612246
java开发语言
今天要复习一下线程池,这同样是很久以前的一篇文章,格式不对所以看起来太难受,所有修改格式,重新发一下。ScheduledThreadPoolExecutor是ThreadPoolExecutor的扩展类,用来实现延迟执行的任务、或者周期性执行的任务。一般来讲,周期性任务或者定时任务包含两大组件:一个是执行任务的线程池,一个是存储任务的存储器。还记得Quartz吗?企业级定时任务框架,最重要的内容其
- OJ_复数集合
Listennnnnnm
数据结构与算法c语言算法c++
题干C++实现#define_CRT_SECURE_NO_WARNINGS#include#include#includeusingnamespacestd;structComplex{intre;intim;//构造函数Complex(int_re,int_im){//注意参数名字必须不同re=_re;im=_im;}};//结构体不支持小于号运算符,所以我们要自定义pqueue;for(int
- OJ_哈夫曼树
Listennnnnnm
数据结构与算法c++算法
题干C++实现从小根堆的选择最小的两个合并加和,然后插入回小根堆然后重复上述两个步骤,直到只剩一个元素#define_CRT_SECURE_NO_WARNINGS#include#include#includeusingnamespacestd;intmain(){intn;scanf("%d",&n);priority_queuepqueue;//存储权值相反数,以实现小根堆效果for(inti
- Dropping Balls(UVA 679)
Fool256353
算法数据结构c++
网址如下:DroppingBalls-UVA679-VirtualJudge(vjudge.net)(第三方网站)二叉树别说了,我只会模拟,最后用时530ms结果算法书给出了一个优化的解法:因为小球要么往左,要么往右,根据到这个点有几个小球可以推断出当前点的状态,根据要求的第几个小球可以推断在这个点有多少个球往左走了,多少个球往右走了这样可以根据I直接推断出第I个的动向,配合D直接算出答案用时20
- 打卡圣莲山⛰北京房山爬山记-10月13日
鱼丸v粗面
2020年10月13号和张先生去爬了圣莲山,一直没来得及整理,今天给记一下。圣莲山(圣米石塘莲花山)位于北京西南,房山区西北的群山峻岭之中,海拔930米,是道教的聚集之地。景区大门游览图游览图第二个景区门景点级别:4A门票:成人60元,(京津冀旅游一卡通免费)停车:免费的停车场海拔:到达最高海拔930米,停车场地方海拔390米,如果不坐摆渡车实际爬山的海拔高度大概540米。收费项目:渡车20元/位
- RabbitMQ 进阶- 阿里云服务器部署RabbitMQ集群
Java北边
一、为什么要搭建RabbitMQ集群?未部署集群的缺点如果RabbitMQ集群只有一个broker节点,那么该节点的失效将导致整个服务临时性的不可用,并且可能会导致message的丢失(尤其是在非持久化message存储于非持久化queue中的时候)。可以将所有message都设置为持久化,并且使用持久化的queue,但是这样仍然无法避免由于缓存导致的问题:因为message在发送之后和被写入磁盘
- 数据结构STL——golang实现优先队列priority_queue
hlccd
数据结构数据结构golang算法
github仓库存储地址:https://github.com/hlccd/goSTL概述优先队列(priority_queue)它虽然名字上是被称之为队列,单它底层其实是以堆的方式实现的,而堆这个数据结构,它是通过建立一棵完全二叉树来进行实现的。它在逻辑上并非是一个线性结构,但由于二叉树可以用数组表示的特性,本次实现采用数组的形式实现,后续会再使用完全二叉搜实现一次。堆或者说优先队列的主要特点为
- 2020-04-11规模化敏捷学习记录
家有小魔怪
规模化敏捷可能存在的问题:沟通的有效性降低、协作更复杂、对齐困难、集成复杂敏捷宣言是否依然适用于规模化敏捷?结论是依然试用规模化敏捷的几种方式:SAFe/LeSS/DAD/EA/Nexus/Scrum@ScaleSoS(scrumofscrums)的实现方式Backlog如何维护?1:一个PO,一个PBL,区分不同的team2:一个PO,维护多个PBL3:每个团队有自己的PO,每个PO负责自己的b
- Steamed bun
8414551fde5b
Itismyfirsttimetomakesteamedbun,Itisdelicious,Asanortherner,Iampartialofit.图片发自App
- 推荐N款Steam上特别好评的多人联机游戏(2)
绘空之事
今天推荐几款Steam上特别好评的多人联机游戏给大家,适合拥有2个或更多朋友的玩家一起快乐游玩~~上次已经推荐了《为了吾王》、《怪物猎人世界:冰原》、《无主之地3》、《英灵神殿》、《深岩银河》、《雨中冒险2》、《你画我猜》、《人类一败涂地》这里就不再赘述了,感兴趣的朋友可以移步此链接:今天我再为大家推荐8款游戏,以下游戏都是我亲自和朋友一起玩过的,涵盖多个类型且游玩时间均不短,话不多说让我们直接进
- 990-09产品经理:How project management benefits different teams 项目管理如何使不同的团队受益
丰。。
990产品经理
Projectmanagementmethodsandtoolscanbedeployedacrossallteamsandindustriestohelpimproveefficiencyanddriveresults.Inthischapter,we’llprovideanoverviewofhowPMbenefitsconstruction,IT,marketing,andoperation
- AcWing 845. 八数码
远不及你的微笑
算法
解题思路相关代码importjava.util.*;publicclassMain{staticQueuequeue=newLinkedListhash=newHashMap<>();publicstaticvoidmain(String[]args){Scannerscanner=newScanner(System.in);Stringstart="";for(inti=0;i<9;i++)st
- 授权的艺术
俞凡 DeepNoMind
其他
管理者在面对纷乱复杂的任务时,最需要做的就是授权。授权可以帮助管理者留出时间做更重要的事情,同时发展团队技能,实现更好的团队绩效。原文:TheArtofDelegation:astep-by-stepguidetobuildastrongerteam你是否经历过,当新任务出现时,却根本没精力再做这件事的情况?这种情况就需要授权。但不应该只考虑授权那些比其他事情更重要的任务。授权是培养团队技能、激励
- RabbitMq
wayzinx
java中间件
五种工作模式1.工作队列(workqueues):工作队列与入门程序相比,多了一个消费端,两个消费端共同消费同一个队列中的消息。应用场景:对于任务过重或任务较多情况使用工作队列可以提高任务处理的速度。测试:1、使用入门程序,启动多个消费者。2、生产者发送多个消息。结果:1、一条消息只会被一个消费者接收;2、rabbit采用轮询的方式将消息是平均发送给消费者的;3、消费者在处理完某条消息后,才会收到
- 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 "
[email protected]" //设置邮箱
---------------查看环境配置
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节点最多