問題文N を 1 以上の整数とします。 長さ 3N の数列 a=(a1,a2,…,a3N) があります。 すぬけ君は、a からちょうど N 個の要素を取り除き、残った 2N 個の要素を元の順序で並べ、長さ 2N の数列 a' を作ろうとしています。 このとき、a' のスコアを (a'の前半N要素の総 ...
分类:
其他好文 时间:
2018-05-12 15:08:45
阅读次数:
96
链接:https://www.nowcoder.com/acm/contest/112/A 现有n组人,m个地点,给出每组人的人数,每个地点可容纳的最大人数和选择的价格 要求一种方式,使得每组人都到一个各不相同的地点,最小化选择的价格 每个队伍的人都要在同一个地方每个地方只能有一个队伍 要求一种方式 ...
分类:
其他好文 时间:
2018-05-12 03:06:02
阅读次数:
250
支持两种操作:删除最大元素和插入元素的数据类型叫做优先队列。 队列:删除最老的元素。 栈:删除最新的元素。 基于二叉堆数据结构的一种优先队列的经典实现方法,用数组保存元素并按照一定条件排序。 数据结构二叉堆能够很好地实现优先队列的基本操作。在二叉堆的数组中,每个元素都要保证大于等于另两个特定位置的元 ...
分类:
其他好文 时间:
2018-05-10 23:26:54
阅读次数:
198
思路:写的时候感觉是贪心但是没有什么思路... 看了题解,原来有一个选了能反悔的贪心思路, 如果最优那么每个城市只能和旁边的相邻 城市连边,所以问题变成了由n个数,不能取相邻的两个数,取k个最小是多少。 我们将这n个数放进优先队列里边贪心地取小的,取完最小 的之后,把当前这个now和当前这个的左边l ...
分类:
其他好文 时间:
2018-05-08 11:12:32
阅读次数:
139
https://vjudge.net/problem/POJ-3190 ...
分类:
其他好文 时间:
2018-05-07 00:00:24
阅读次数:
247
https://vjudge.net/problem/POJ-3190 cin和scanf差这么多么。。tle和300ms 思路:先对结构体x升序y升序,再对优先队列重载<,按y升序。 然后依次入队,如果node[i].x<=q.top().y ans++, 否则出队,入队,使用出队的那个摊位。 ...
分类:
其他好文 时间:
2018-05-06 23:58:00
阅读次数:
344
按老师上课的话来总结,队列变化多端: 普通模板没有代价: 普通队列FIFO 01代价: 双端队列,单调队列 任意代价: 优先队列/堆,最短路SPFA/DIJKSTRA ...
分类:
其他好文 时间:
2018-05-06 20:00:06
阅读次数:
124
算法分类合集 ACM 所有算法 数据结构 栈,队列,链表 哈希表,哈希数组 堆,优先队列双端队列可并堆左偏堆 二叉查找树Treap伸展树 并查集集合计数问题二分图的识别 平衡二叉树 二叉排序树 线段树一维线段树二维线段树 树状数组一维树状数组N维树状数组 字典树 后缀数组,后缀树 块状链表 哈夫曼树 ...
分类:
编程语言 时间:
2018-05-06 01:40:10
阅读次数:
228
一、前言 之前用java实现堆结构,一直用的优先队列,但是在实际的面试中,可能会要求用数组实现,所以还是用java老老实实的实现一遍堆结构吧。 二、概念 堆,有两种形式,一种是大根堆,另一种是小根堆。堆,一般是二叉树,这个概念当然也可以扩展到k叉树。大根堆指的是根节点的值要大于左子树和右子树所有节点 ...
分类:
编程语言 时间:
2018-05-04 14:17:48
阅读次数:
192
这个题方法还挺多的,不过洛谷上要输出方案所以用堆最方便 先按起始时间从小到大排序。 我用的是greater重定义优先队列(小根堆)。用pair存牛棚用完时间(first)和牛棚编号(second),每次查看队首的first是否比当前牛的起始时间早,是则弹出队首记录当前牛的答案,再把新的pair放进去 ...
分类:
其他好文 时间:
2018-05-02 22:22:23
阅读次数:
196