随笔分类 - gplt
摘要:题目链接:L2-012 关于堆的判断 题意 将一系列给定数字顺序插入一个初始为空的小顶堆 H[] 。随后判断一系列相关命题是否为真。命题分下列几种: x is the root:x 是根结点; x and y are siblings:x 和 y 是兄弟结点; x is the parent of
阅读全文
摘要:题目链接:L2-014 列车调度 题意 如果一个排列最终可以按照降序输出,至少需要多少个队列来存储。 思路 如果当前数比之前的数都大,则需要新开一个队列,否则每次替换掉第一个大于它的数。 证明 我们担心的是如果将一个较小的数接在一个较大的数后面,之后更长的递减序列会无法接在较大的数后面,但如果我们想
阅读全文
摘要:数据有些弱,Union函数不判不等也可以过。 题意: 依次给出 n 个人的兴趣,不同人兴趣相交、不同兴趣所属人员相交均属于同一集群,求形成的不相交集群个数及每个集群的人数。 思路: 枚举每个兴趣的人员,以序号最小者作为集群代表与其他成员合并,追加 cnt 数组记录每个集群的人数。 如题目输入: 1
阅读全文
摘要:N ≤ 104,输入如下数据如果没有路径压缩可能会超时。 10000 2 1 2 2 3 4 2 5 6 …… 2 9997 9998 2 9999 10000 2 9999 9997 …… 2 5 3 2 3 1 10000 10000 10000 …… 10000 10000 但事实上,两种写法
阅读全文
摘要:Tips: 数据范围较小时可把二维数组当做map<pair<int,int>,int>使用。 #include <bits/stdc++.h> using namespace std; const int M=110; int fri[M]; bool is_enemy[M][M]; int Fin
阅读全文
摘要:题意: 给定每个人的家庭成员和其自己名下的房产,请你统计出每个家庭的人口数、人均房产面积及房产套数。 思路: 输入和输出各构造一个结构体,利用并查集归并输入,枚举编号进行输出。 #include <bits/stdc++.h> using namespace std; const int M=110
阅读全文
摘要:题意: 给定一棵二叉树的后序遍历和中序遍历,请你输出其层序遍历的序列。这里假设键值都是互不相等的正整数。 思路: 后序遍历序列 = 左子树遍历序列 + 右子树遍历序列 + 根节点。 中序遍历序列 = 左子树遍历序列 + 根节点 + 右子树遍历序列。 找到根节点,再利用根节点计算新的后、中遍历序列端点
阅读全文

浙公网安备 33010602011771号