题意: 给n,m个,给出n个字符串,再给出m个s1,s2,要求s1在s2之前,最小字典序排列,如果不符合就 1 思路: 拓扑排序,但如果用字符串来优先队列中一直tle,呜呜呜,然后又加上博客没有拓扑排序模板,我居然拓扑排序写错了,导致tle的原因 真正的思路,是先字典序排序,然后优先队列拓扑排序。 ...
分类:
编程语言 时间:
2020-05-24 15:13:31
阅读次数:
82
问题 A: K优先队列 时间限制: 1 Sec 内存限制: 128 MB[提交] [状态] 题目描述 你需要维护一个队列,支持以下两种操作: 1.加入一个非负整数x; 2.取出当前队列中第k大的数字。 保证进行第二种操作时,队列中至少有k个数字。 部分数据经过加密,你需要依次处理每个操作才能获得正确 ...
分类:
其他好文 时间:
2020-05-20 22:48:44
阅读次数:
78
题目大意: 输入一行的字符串, 分别用8bit ASCII编码和Huffman编码, 求出编码后所占的空间以及压缩比(ASC/Huffman) 思路: 利用优先队列实现Huffman编码, 其中并不需要建树, 只需要求出每个字符出现的频数, 借助优先队列求出根节点的频次. Huffman编码的实现过 ...
分类:
其他好文 时间:
2020-05-18 12:46:40
阅读次数:
63
题目链接:http://class.51nod.com/Challenge/Problem.html#problemId=1117 一、题目描述 一位老木匠需要将一根长的木棒切成N段。每段的长度分别为L1,L2,......,LN(1 <= L1,L2,…,LN <= 1000,且均为整数)个长度单 ...
分类:
其他好文 时间:
2020-05-17 17:35:19
阅读次数:
63
题意: 给出一串初始值全为0的序列,每次操作找到最长的连续为0的子区间,如果有并列则取靠左的那个,修改区间的中间值为对应操作的编号,询问最后的序列状态。 题解: 枚举最大子区间,一开始想到的是双指针法,结果TLE了,看了网上的题解才知道可以利用题目的性质用优先队列做,太神奇了。。。 #include ...
分类:
其他好文 时间:
2020-05-16 17:03:50
阅读次数:
129
题意 :有一个长度为$n$元素均为$0$的序列,进行$n$次操作构造出一个新序列$a$:每次选择最长的连续为$0$的区间$[l,r]$,使得第$i$次操作时,$a[\frac{l+r}{2}]=i$(下取整),求$a$. 题解 :刚开始我打算用归并分治的思想来写,但是发现左区间递归不到,然后就gg了 ...
分类:
其他好文 时间:
2020-05-15 19:56:45
阅读次数:
61
struct cmp { bool operator ()(Pair a,Pair b) //你想要定义的比较函数 { if(a.second-a.first==b.second-b.first) return a.first>b.first; return a.second-a.first<b.s ...
分类:
编程语言 时间:
2020-05-15 15:15:46
阅读次数:
126
堆的定义 堆就是一棵可以自我平衡的完全二叉树 优先队列的底层数据结构就是堆,实现和堆基本一样 由于堆存储在下标从0开始计数的数组中,因此,在堆中给定下标为i的结点时: 如果 i = 0,结点 i 是根结点,无父结点;否则结点 i 的父结点为结点 [(i - 2) / 2] 如果 2i + 1 > n ...
分类:
其他好文 时间:
2020-05-14 23:51:45
阅读次数:
85
首先介绍一下PriorityQueue优先队列,普通队列是先进先出的,但是优先队列刚好不是这样的,优先队列存在着一个优先级,换句话说也就是排序问题,队列里的对象,某个值越大,或越小,排的就越靠前。这里就用到了Comparable接口。pic-1589438395307.png这里的Student对象... ...
分类:
其他好文 时间:
2020-05-14 15:53:20
阅读次数:
65
这场整体质量感觉可以算 2020 年度(目前为止)最垃圾。 A 按数值从小到大扫描,维护一个优先队列,每遇到一个数加入队列,每次数值发生 $+1$ 时弹掉队列中价值最大元素,然后把此时队列中所有元素的价值和类加进答案。 时间复杂度 $O(n\log n)$. 代码: "78541690" B 这题看 ...
分类:
其他好文 时间:
2020-05-10 19:18:09
阅读次数:
62