数据结构
数据结构
Victayria
给时光以生命
展开
-
Supermarket —— (优先队列 || 并查集优化)
Supermarketmethod 1:优先队列(47ms)毕竟看起来就像优先队列的题目,第一反映就是沿着时间线反向看,将所有的截止日期大于等于第 i 天的商品全都push进优先队列,然后将堆顶(价值最大的)弹出,就是在这一天要出售的商品。下面是AC代码:#include <iostream>#include <cstdio>#include <cs...原创 2020-02-09 15:17:39 · 352 阅读 · 0 评论 -
二维并查集
1. Wireless Network 核心思想:若 a 在以 b 为圆心,d 为半径的圆以内,那么布尔数组 inter[a][b] = inter[b][a] = true,表示二者有潜力相联系。每维修好一台电脑 x ,就遍历所有的电脑,如果第 y 台电脑满足 inter[x][y] == true && x ! = y && 第y台电脑也能运作,就把二...原创 2020-05-11 14:36:50 · 450 阅读 · 0 评论 -
种类并查集
种类并查集是我自己分的类,下面是几道相关的题,都要求分类。A Bug's Life核心思想:不难发现,一旦我们有了两个bug之间的关系,我们一定可以判断出它们的性别异同,甚至可以相互推断,比如 a 与 b 能性交,b 与 c 能性交,那么就能推出 a,c 与 b 性别相反,我们把这三个成为已经建立了关系的bug,现在将建立关系的插到同一棵树上,关系不确定的不插进去。在这棵树上,与根节...原创 2020-02-08 18:35:35 · 235 阅读 · 0 评论 -
Cube Stacking —— 带权并查集(终于搞懂了)
题目链接#include <iostream>#include <cstdio>#include <cstring>#define N 30010#define M 30000using namespace std;// 我们让根节点为每个堆中最下方的点,f[x]也为与x相连的下方的点int f[N];int height[N]; //...原创 2020-02-08 17:35:52 · 859 阅读 · 2 评论 -
剪花布条 —— KMP
题目链接#include <iostream>#include <cstdio>#include <cstring>#define N 1010using namespace std;char m[N], s[N];int ne[N];int main(){ while(scanf("%s", m + 1), *(m + 1) ...原创 2020-02-08 14:50:13 · 243 阅读 · 0 评论 -
字典树基础知识学习笔记
节点最多有N个时,开一个二维数组son[N][M](M为所有字符的总个数),记录每个点的儿子。对每一个字符串的结尾的序号,用cnt[N] 数组来记录有多少个这样的字符串,这张图可以帮助理解:假设给定的字符串(只由a, b, c, d组成)为:aabc, aabd, aabd, cdb, cdbason[i][4] 就是第i个节点下面的4个格子下面附两道模板题:1.https:/...原创 2020-02-07 20:45:21 · 289 阅读 · 0 评论