基础算法
文章平均质量分 61
优雅的暴力
liamaking
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
求最小交换次数
排序的最小交换次数原创 2022-11-19 15:27:39 · 470 阅读 · 0 评论 -
7-3 哈夫曼树与哈夫曼编码
为使不等长编码为前缀编码(即要求一个字符的编码不能是另一个字符编码的前缀),可用字符集中的每个字符作为叶子结点生成一棵编码二叉树,为了获得传送报文的最短长度,可将每个字符的出现频率作为字符结点的权值赋予该结点上,显然字使用频率越小权值越小,权值越小叶子就越靠下,于是频率小编码长,频率高编码短,这样就保证了此树的最小带权路径长度效果上就是传送报文的最短长度。所谓树的带权路径长度,就是树中所有的叶结点的权值乘上其到根结点的路径长度(若根结点为0层,叶结点到根结点的路径长度为叶结点的层数)。记录着本题的符号表。原创 2022-11-10 18:35:39 · 4005 阅读 · 1 评论 -
biweekly_contest_67_leetcode2102. 序列顺序查询
一个观光景点由它的名字 name 和景点评分 score 组成,其中 name 是所有观光景点中 唯一 的字符串,score 是一个整数。景点按照最好到最坏排序。景点评分 越高 ,这个景点越好。如果有两个景点的评分一样,那么 字典序较小 的景点更好。你需要搭建一个系统,查询景点的排名。初始时系统里没有任何景点。这个系统支持:添加 景点,每次添加 一个 景点。查询 已经添加景点中第 i 好 的景点,其中 i 是系统目前位置查询的次数(包括当前这一次)。比方说,如果系统正在进行第 4 次查询,那么需要返原创 2021-12-13 20:46:24 · 421 阅读 · 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 · 467 阅读 · 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 · 954 阅读 · 0 评论 -
2021_CCPC_harbin_I. Power and Zero
传送门:https://codeforces.com/gym/103447/problem/I二分+二进制拆分题目大意:给定一个数组,每次操作可以选择任意个元素(可重复选择),对这多个元素分别 -1,-2,-4,-8…。求最少操作多少次使得数组变为全0数组。I. Power and Zerotime limit per test1 secondmemory limit per test512 megabytesinputstandard inputoutputstandard output原创 2021-12-02 20:52:17 · 1500 阅读 · 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 · 139 阅读 · 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 · 474 阅读 · 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 · 166 阅读 · 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 11 11 1输出 #1复制1 11 1说明/提示【数据范围】对于 100% 的数据:1≤n≤100,0≤原创 2021-06-17 21:25:07 · 128 阅读 · 0 评论
分享