摘要: 删数问题 题目链接 首先找出最小的k个数:用堆每次取出最小的元素p,将p*2+1和p*4+5压入堆。 贪心求最大数:从前往后找第一个data[j+1]>data[j],删除data[j].(链表应该是比较快的,然而蒟蒻懒得写链表,用了一个数组瞎搞。。不开氧气优化会T一个点) 阅读全文
posted @ 2018-03-05 19:01 yjk 阅读(476) 评论(0) 推荐(0) 编辑
摘要: 约瑟夫问题 链表模拟大概是正解 用数组乱搞: 阅读全文
posted @ 2018-03-05 18:44 yjk 阅读(239) 评论(0) 推荐(0) 编辑
摘要: 单源最短路径 题目链接:https://www.luogu.org/problemnew/show/P4779 直到做了这个题才发现我之前写的堆优化dijkstra一直是错的。。 这个堆优化其实很容易理解,将枚举最小值改为从堆中取出最小值,改变dis时入堆即可 用单调队列维护时必须有两个值:点的编号 阅读全文
posted @ 2018-03-05 18:43 yjk 阅读(1465) 评论(0) 推荐(0) 编辑
摘要: 单源最短路(dijkstra算法及堆优化) 弱化版题目链接 n^2 dijkstra模板 毒瘤标准版 题目链接:https://www.luogu.org/problemnew/show/P4779 直到做了这个题才发现我之前写的堆优化dijkstra一直是错的。。 这个堆优化其实很容易理解,将枚举 阅读全文
posted @ 2018-03-03 15:16 yjk 阅读(344) 评论(0) 推荐(0) 编辑
摘要: 合并果子 题目链接 贪心:每次先合并最小的两堆果子 用堆实现 手写堆真恶心。。 STL是个好东西 阅读全文
posted @ 2018-03-02 20:51 yjk 阅读(176) 评论(0) 推荐(0) 编辑
摘要: 关押罪犯 题目链接 思路: 二分图或并查集 这里讲并查集算法: 1.将每对罪犯的冲突关系按影响从大到小排序 2.将集合与(i+n)合并表示编号为i的罪犯不能在该集合内 3.依次从大到小处理冲突关系: 若x与y+n、y与x+n不在同一个集合内,将集合find(x)与集合find(y+n)合并,将集合f 阅读全文
posted @ 2018-03-02 20:41 yjk 阅读(137) 评论(0) 推荐(0) 编辑
摘要: 并查集模板 题目链接1 题目链接2 题目链接3 代码: 1. 2. 3. 阅读全文
posted @ 2018-03-02 20:27 yjk 阅读(171) 评论(0) 推荐(0) 编辑
摘要: 时间复杂度 题目链接 对于 100%的数据:L≤100 。 很明显的模拟题 然而考试时还是爆炸了。。 调了一下午。。 蒟蒻表示不会离线操作。。 直接贴代码: 阅读全文
posted @ 2018-03-02 20:07 yjk 阅读(170) 评论(0) 推荐(0) 编辑
摘要: 借教室 【题目描述】 在n天中每天有一个可以借出的教室数,有m个订单,每个订单从第l天到第r天要借用x个教室。问能否满足所有的订单,若不能,输出第一个不能满足的订单编号。 思路: 1.1 ≤ n,m ≤ 10^6,区间的整体修改可以用差分数组实现,每次修改的时间复杂度为O(1),查询的时间复杂度为O 阅读全文
posted @ 2018-03-02 12:36 yjk 阅读(165) 评论(0) 推荐(0) 编辑
摘要: 蚂蚁 【题目描述】 在一根无限长的木棍上,用n只蚂蚁,每只蚂蚁有一个初始位置和初始朝向,蚂蚁们以每秒一个单位的速度向前移动,当两只蚂蚁相遇时,它们会掉头(掉头时间忽略不计)。现给出每只蚂蚁的初始位置和初始朝向,请你计算出它们在t秒后的位置和朝向。 思路: 1.对于每只蚂蚁,它的坐标在所有蚂蚁中的次序 阅读全文
posted @ 2018-03-01 21:56 yjk 阅读(270) 评论(0) 推荐(1) 编辑