基础算法
文章平均质量分 61
优雅的暴力
liamaking
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
求最小交换次数
排序的最小交换次数原创 2022-11-19 15:27:39 · 500 阅读 · 0 评论 -
7-3 哈夫曼树与哈夫曼编码
为使不等长编码为前缀编码(即要求一个字符的编码不能是另一个字符编码的前缀),可用字符集中的每个字符作为叶子结点生成一棵编码二叉树,为了获得传送报文的最短长度,可将每个字符的出现频率作为字符结点的权值赋予该结点上,显然字使用频率越小权值越小,权值越小叶子就越靠下,于是频率小编码长,频率高编码短,这样就保证了此树的最小带权路径长度效果上就是传送报文的最短长度。所谓树的带权路径长度,就是树中所有的叶结点的权值乘上其到根结点的路径长度(若根结点为0层,叶结点到根结点的路径长度为叶结点的层数)。记录着本题的符号表。原创 2022-11-10 18:35:39 · 4058 阅读 · 1 评论 -
biweekly_contest_67_leetcode2102. 序列顺序查询
一个观光景点由它的名字 name 和景点评分 score 组成,其中 name 是所有观光景点中 唯一 的字符串,score 是一个整数。景点按照最好到最坏排序。景点评分 越高 ,这个景点越好。如果有两个景点的评分一样,那么 字典序较小 的景点更好。 你需要搭建一个系统,查询景点的排名。初始时系统里没有任何景点。这个系统支持: 添加 景点,每次添加 一个 景点。 查询 已经添加景点中第 i 好 的景点,其中 i 是系统目前位置查询的次数(包括当前这一次)。 比方说,如果系统正在进行第 4 次查询,那么需要返原创 2021-12-13 20:46:24 · 440 阅读 · 0 评论 -
weekly_contest_271_leetcode2106. 摘水果
在一个无限的 x 坐标轴上,有许多水果分布在其中某些位置。给你一个二维整数数组 fruits ,其中 fruits[i] = [positioni, amounti] 表示共有 amounti 个水果放置在 positioni 上。fruits 已经按 positioni 升序排列 ,每个 positioni 互不相同 。 另给你两个整数 startPos 和 k 。最初,你位于 startPos 。从任何位置,你可以选择 向左或者向右 走。在 x 轴上每移动 一个单位 ,就记作 一步 。你总共可以走 最多原创 2021-12-13 20:35:52 · 494 阅读 · 0 评论 -
weekly_contest_271_leetcode2104. 子数组范围和
给你一个整数数组 nums 。nums 中,子数组的 范围 是子数组中最大元素和最小元素的差值。 返回 nums 中 所有 子数组范围的 和 。 子数组是数组中一个连续 非空 的元素序列。 示例 1: 输入:nums = [1,2,3] 输出:4 解释:nums 的 6 个子数组如下所示: [1],范围 = 最大 - 最小 = 1 - 1 = 0 [2],范围 = 2 - 2 = 0 [3],范围 = 3 - 3 = 0 [1,2],范围 = 2 - 1 = 1 [2,3],范围 = 3 - 2 = 1 [原创 2021-12-13 19:42:14 · 981 阅读 · 0 评论 -
2021_CCPC_harbin_I. Power and Zero
传送门:https://codeforces.com/gym/103447/problem/I 二分+二进制拆分 题目大意:给定一个数组,每次操作可以选择任意个元素(可重复选择),对这多个元素分别 -1,-2,-4,-8…。 求最少操作多少次使得数组变为全0数组。 I. Power and Zero time limit per test1 second memory limit per test512 megabytes inputstandard input outputstandard output原创 2021-12-02 20:52:17 · 1538 阅读 · 0 评论 -
二分模板(整数、浮点)
划分成[l, mid]和[mid + 1, r] int bsearch_1(int l, int r) { while (l < r) { int mid = l + r >> 1; if (check(mid)) r = mid; else l = mid + 1; } return l; } 划分成[l, mid - 1]和[mid, r]时 int bsearch_2(int l, int r) {原创 2021-07-16 22:31:51 · 170 阅读 · 0 评论 -
并查集(加入、查找、删除)
并查集 题目描述 如题,现在有一个并查集,你需要完成合并和查询操作。 输入格式 第一行包含两个整数 N,M ,表示共有 N 个元素和 M 个操作。 接下来 M 行,每行包含三个整数Z i ,X i ,Y i 。 当Z i =1 时,将 X i 与Y i 所在的集合合并。 当 Z i =2 时,输出 X i 与 Y i 是否在同一集合内,是的输出 Y 否则输出 N。 输出格式 对于每一个Z i =2 的操作,都有一行输出,每行包含一个大写字母,为 Y 或者 N 。 输入输出样例 输入 #1复制 4原创 2021-06-18 20:46:48 · 504 阅读 · 0 评论 -
差分 算法
差分 ----------------来源acwing 输入一个长度为 n 的整数序列。 接下来输入 m 个操作,每个操作包含三个整数 l,r,c,表示将序列中 [l,r] 之间的每个数加上 c。 请你输出进行完所有操作后的序列。 输入格式 第一行包含两个整数 n 和 m。 第二行包含 n 个整数,表示整数序列。 接下来 m 行,每行包含三个整数 l,r,c,表示一个操作。 输出格式 共一行,包含 n 个整数,表示最终序列。 数据范围 1≤n,m≤100000, 1≤l≤r≤n, −1000≤c≤1000,原创 2021-06-17 23:41:37 · 182 阅读 · 0 评论 -
快速幂(一般数字快速幂、矩阵快速幂)
矩阵快速幂 --------------题目来源洛谷 题目背景 矩阵快速幂 题目描述 给定 n×n 的矩阵 A,求 A^k 。 输入格式 第一行两个整数 n,k 接下来 n 行,每行 n 个整数,第 i行的第 j的数表示 A i,j 。 输出格式 输出 A^k 共 n 行,每行 n 个数,第 i行第 j个数表示 Ai,j,每个元素对 10^9+7取模。 输入输出样例 输入 #1复制 2 1 1 1 1 1 输出 #1复制 1 1 1 1 说明/提示 【数据范围】 对于 100% 的数据:1≤n≤100,0≤原创 2021-06-17 21:25:07 · 149 阅读 · 0 评论
分享