给定一段一段的绳子,你需要把它们串成一条绳。每次串连的时候,是把两段绳子对折,再如下图所示套接在一起。这样得到的绳子又被当成是另一段绳子,可以再次对折去跟另一段绳子串连。每次串连后,原来两段绳子的长度就会减半。 给定 N 段绳子的长度,你需要找出它们能串成的绳子的最大长度。 输入格式: 每个输入包含 ...
分类:
其他好文 时间:
2019-07-15 09:28:28
阅读次数:
167
SPFA和DIJ求最短路的算法的坑点一直是很多的。经常会让人搞不懂。 易错案例: 用重载运算符来排序,如: 这种做法是不对的,该dis值在堆里不会更新甚至会堵住。 正确案例: 目前只有两种优化算法最可靠,分别为优先队列来优化spfa或dij。 $SPFA$: 每次从堆中只需要取出到t的最短路最小的元 ...
分类:
其他好文 时间:
2019-07-14 19:57:54
阅读次数:
103
优先队列是队列的高级版,最大的特点是可以内部实现排序 优先队列的定义 优先队列内部使用堆排序,从而实现队列内一直保持着某种顺序规律(比如递增,递减等) 在使用优先队列时,首先要引入头文件:#include <queue> 定义一个新类型的优先队列,通常使用: type为优先队列内所存元素的数据类型, ...
分类:
其他好文 时间:
2019-07-13 13:23:26
阅读次数:
126
优秀的算法往往取决于你采用哪种数据结构,除了常规数据结构,日常更多也会遇到高级的数据结构,实现要比那些常用的数据结构要复杂得多,这些高级的数据结构能够让你在处理一些复杂问题的过程中多拥有一把利器。同时,掌握好它们的性质以及所适用的场合,在分析问题的时候回归本质,很多题目都能迎刃而解了。 这篇文章将重 ...
分类:
编程语言 时间:
2019-07-05 19:35:44
阅读次数:
139
目的 其实就是想总结一下自己做题中用到的思考方式,虽然我知道即使写了也没用😭(还是要靠多多刷题)。本文纯粹瞎写。 正文 模拟思维: 模拟思维是最常见的做题方式:按照题意和样例的操作,一步步模拟过程,从中理解到问题的本质。一般看不懂题目也需要进行合理的模拟进行突破,或者直接通过模拟得出答案。 暴力思 ...
分类:
编程语言 时间:
2019-06-29 22:02:52
阅读次数:
117
数据结构总结 堆(优先队列) 堆(优先队列) 黑匣子 开一个大根堆,一个小根堆,保证大根堆的元素个数为查询的i-1,输出小根堆的堆顶即可。如果插入的数a[j]比大根堆堆顶小,则把大根堆堆顶放到小根堆,a[j]放到大根堆里,保证大根堆里的最大值小于小根堆里的最小值。查询时把小根堆的堆顶放到大根堆里,使 ...
分类:
其他好文 时间:
2019-06-20 23:50:34
阅读次数:
136
#include <queue> 与queue不同的是可以自定义其中数据的优先级,让优先级高的先出队列。 优先队列具有队列的所有特性,包括基本操作,只是在这基础上添加了内部的一个排序,它本质是一个堆实现的 和队列基本操作相同: top 访问队头元素 empty 队列是否为空 size 返回队列内元素 ...
分类:
其他好文 时间:
2019-06-17 15:42:54
阅读次数:
122
内容 vector:不定长数组 map:映射 queue:队列 sort:排序 priority_queue:优先队列 暂更 ...
分类:
编程语言 时间:
2019-06-10 21:10:00
阅读次数:
146
妈耶,因为自己脑残调了2个小时(我一直以为自己贪心写错了..) 做法就是先安排不可以到根的第一个儿子的军队,找出没安排的儿子 然后将可以到根的第一个儿子的军队放到优先队列里去 将要安排的儿子放到另一个里 然后逐个判断就行了.. 有点啰嗦的逻辑... 贪心:若一个军队rest最小,他到他可以到的距离最 ...
分类:
其他好文 时间:
2019-06-04 17:45:15
阅读次数:
92
贝壳找房函数最值 35.12% 1000ms 262144K 贝壳找房的攻城狮最近在研究一次函数 f(x) = ax + bf(x)=ax+b。 现在有 nn 个一次函数,f_i(x) = a_ix+b_i,\ i = \{1 \mathellipsis n\}fi?(x)=ai?x+bi?, i= ...
分类:
其他好文 时间:
2019-06-01 23:30:02
阅读次数:
211