
栈&队列&集合&向量
栈&队列&集合&向量
_rhinoceros_
非淡泊无以明志,非宁静无以致远。
展开
-
洛谷P2665 [USACO08FEB]连线游戏Game of Lines
一、算法分析本题上来先想到的就是爆搜一下,结果tle两个点。后仔细看题,原来只要求出所有斜率的可能,每种斜率各一条直线,就可以得到答案。注意对斜率的计算一定要对分母为0的情况进行特判。二、暴搜代码(tle两个点)#include<iostream>#include<cstdio>#include<cstring>#include<vector&...原创 2020-01-15 20:27:25 · 150 阅读 · 0 评论 -
基础数据结构-UVa12096 集合栈计算机 紫书代码解析
思想代码是紫书上的代码,本文主要写一些对书上知识的理解,希望能够帮助大家理解这方面的知识。本题的基本解题思路就是利用Stl里自带的进栈、出栈,求交集并集的函数来做题。但是这里涉及的问题是如何来保存集合,并对其进行操作。紫书上给出的思路是利用map,来将集合映射成整数编号,给每一个集合分配一个整数编号(编写一个ID函数实现),通过对编号的操作,就能实现对集合的操作。就像在学校里,如果要将一个班的同...原创 2019-11-13 15:43:21 · 277 阅读 · 0 评论 -
(堆)CF12BCorrect Solution?
一、算法分析没有用排序,而是用了一个小根堆,个人感觉蛮直观的。基本思路是先求题目要求的“最小数”,然后和输入的第二行相比较。求“最小数”的基本步骤分三步:把第一行序列中最小的非0数字放到目标序列最前面如果有第一行序列中有0,则把0跟在目标序列后面再把剩下的数放到小根堆里面,然后从小根堆里面取数,依次放到目标序列后面二、代码及注释#include<iostream>#include<cstring>#include<algorithm>#include&原创 2020-05-09 09:31:11 · 201 阅读 · 0 评论 -
(对顶堆)SP15376 RMID - Running Median
一、算法分析题意很显然,要求在线动态维护中位数。这时要用到对顶堆思路,即既然我们是每次取中位数,那就要涉及从中间取数,这样我们设置一个大顶堆,一个小顶堆,把两个堆的堆顶“挨”在一起,维持两个堆的大小相等或最多相差1(因为可能总数是奇数个)这样中间的数就一定是从两个堆的堆顶产生了。难点在于维护的过程。其实个人对这个对顶堆的维护,个人理解是这样的,想象自己有一条绳子,绳子从中间分开,左边是大顶堆,...原创 2020-01-26 23:49:38 · 227 阅读 · 0 评论