数学系的学渣
码龄6年
关注
提问 私信
  • 博客:37,978
    动态:3
    37,981
    总访问量
  • 57
    原创
  • 2,014,874
    排名
  • 65
    粉丝
  • 0
    铁粉
  • 学习成就
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:浙江省
  • 加入CSDN时间: 2019-02-26
博客简介:

weixin_44692221的博客

查看详细资料
  • 原力等级
    成就
    当前等级
    3
    当前总分
    278
    当月
    1
个人成就
  • 获得73次点赞
  • 内容获得10次评论
  • 获得383次收藏
  • 代码片获得139次分享
创作历程
  • 1篇
    2024年
  • 1篇
    2023年
  • 16篇
    2022年
  • 39篇
    2021年
成就勋章
TA的专栏
  • 机器学习笔记
    3篇
  • 笔记
    3篇
  • 数学
    4篇
  • acwing算法基础课笔记
    1篇
  • 01基础算法
    9篇
  • 02数据结构
    11篇
  • 03搜索与图论
    6篇
  • 04数学知识
    9篇
  • 05动态规划
    2篇
  • 06贪心
    5篇
兴趣领域 设置
  • 数据结构与算法
    推荐算法
创作活动更多

HarmonyOS开发者社区有奖征文来啦!

用文字记录下您与HarmonyOS的故事。参与活动,还有机会赢奖,快来加入我们吧!

0人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

Nand2Tetris笔记

Nand2Tetris
原创
发布博客 2024.01.12 ·
1182 阅读 ·
18 点赞 ·
0 评论 ·
24 收藏

cs61b-sp21笔记

介绍课程+基本的java语法,如果java零基础,可先阅读(optional)如何编写测试程序,以及要如何使用JUnit来简化测试流程。介绍选择排序,将其拆分成三个helper function,并编写和测试了它们。介绍接口、接口的继承(what)、实现继承(how)关于中的X静态类型(编译时期):在声明时指定的类型。确定我们需要调用方法的名字。动态类型(运行时期):在实例化时指定的类型,等于指向对象的类型。调用动态类型中有该名字的方法,可能使用Dog**重写(override)**过的方法。
原创
发布博客 2023.04.13 ·
2131 阅读 ·
11 点赞 ·
3 评论 ·
20 收藏

Transformer

目录介绍模型架构Encoder and DecoderMulti-Head AttentionScaled Dot-Product AttentionMulti-Head公式Masked Multi-Head AttentionAdd & NormFeed ForwardPositional EncodingTransformer的优缺点代码实现总结介绍在Encoder-Deconder模型中,引入了self-attention(自注意力机制),不像之前的RNN模型,只能获取到时序之前的信息,
原创
发布博客 2022.03.17 ·
757 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

05推公式

耍杂技的牛农民约翰的 N 头奶牛(编号为 1…N)计划逃跑并加入马戏团,为此它们决定练习表演杂技。奶牛们不是非常有创意,只提出了一个杂技表演:叠罗汉,表演时,奶牛们站在彼此的身上,形成一个高高的垂直堆叠。奶牛们正在试图找到自己在这个堆叠中应该所处的位置顺序。这 N 头奶牛中的每一头都有着自己的重量 WiW_iWi​ 以及自己的强壮程度 SiS_iSi​。一头牛支撑不住的可能性取决于它头上所有牛的总重量(不包括它自己)减去它的身体强壮程度的值,现在称该数值为风险值,风险值越大,这只牛撑不住的可能性
原创
发布博客 2022.02.07 ·
576 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

04绝对值不等式

货仓选址在一条数轴上有 N 家商店,它们的坐标分别为 A1∼ANA_1∼A_NA1​∼AN​。现在需要在数轴上建立一家货仓,每天清晨,从货仓到每家商店都要运送一车商品。为了提高效率,求把货仓建在何处,可以使得货仓到每家商店的距离之和最小。#include <iostream>#include <algorithm>using namespace std;const int N = 1e5 + 10;int n;int d[N];int main() {
原创
发布博客 2022.02.07 ·
407 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

03排序不等式

排队打水有 n 个人排队到 1 个水龙头处打水,第 i 个人装满水桶所需的时间是 tit_iti​,请问如何安排他们的打水顺序才能使所有人的等待时间之和最小?#include <iostream>#include <algorithm>using namespace std;const int N = 1e5 + 10;int n;int t[N];int main() { cin >> n; for (int i = 0; i &
原创
发布博客 2022.02.07 ·
472 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

02Huffman树

合并果子在一个果园里,达达已经将所有的果子打了下来,而且按果子的不同种类分成了不同的堆。达达决定把所有的果子合成一堆。每一次合并,达达可以把两堆果子合并到一起,消耗的体力等于两堆果子的重量之和。可以看出,所有的果子经过 n−1 次合并之后,就只剩下一堆了。达达在合并果子时总共消耗的体力等于每次合并所耗体力之和。因为还要花大力气把这些果子搬回家,所以达达在合并果子时要尽可能地节省体力。假定每个果子重量都为 1,并且已知果子的种类数和每种果子的数目,你的任务是设计出合并的次序方案,使达达耗费的体力
原创
发布博客 2022.02.07 ·
124 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

01区间问题

区间选点给定 N 个闭区间 [ai,bi],请你在数轴上选择尽量少的点,使得每个区间内至少包含一个选出的点。输出选择的点的最小数量。位于区间端点上的点也算作区间内。#include <iostream>#include <algorithm>using namespace std;const int N = 1e5 + 10;struct Range{ int l, r; bool operator< (const Range &
原创
发布博客 2022.02.07 ·
1144 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

06二分图:染色法、匈牙利算法

染色法判定二分图给定一个 n 个点 m 条边的无向图,图中可能存在重边和自环。请你判断这个图是否是二分图。#include <iostream>#include <cstring>using namespace std;const int N = 1e5 + 10, M = 2e5 + 10;int n, m;int h[N], e[M], ne[M], idx;int st[N]; // 点被染的颜色void add(int a, int b) {
原创
发布博客 2022.02.02 ·
514 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

05最小生成树

Prim算法求最小生成树给定一个 n 个点 m 条边的无向图,图中可能存在重边和自环,边权可能为负数。求最小生成树的树边权重之和,如果最小生成树不存在则输出 impossible。给定一张边带权的无向图 G=(V,E),其中 V 表示图中点的集合,E 表示图中边的集合,n=|V|,m=|E|。由 V 中的全部 n 个顶点和 E 中 n−1 条边构成的无向连通子图被称为 G 的一棵生成树,其中边的权值之和最小的生成树被称为无向图 G 的最小生成树。#include <iostream>
原创
发布博客 2022.02.02 ·
1321 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

04最短路

Dijkstra求最短路 I给定一个 n 个点 m 条边的有向图,图中可能存在重边和自环,所有边权均为正值。请你求出 1 号点到 n 号点的最短距离,如果无法从 1 号点走到 n 号点,则输出 −1。朴素版Dijkstra#include <iostream>#include <cstring>#include <algorithm>using namespace std;const int N = 510;int n, m;int g[N]
原创
发布博客 2022.02.02 ·
607 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

03树与图的遍历、拓扑排序

树的重心给定一颗树,树中包含 n 个结点(编号 1∼n)和 n−1 条无向边。请你找到树的重心,并输出将重心删除后,剩余各个连通块中点数的最大值。重心定义:重心是指树中的一个结点,如果将这个点删除后,剩余各个连通块中点数的最大值最小,那么这个节点被称为树的重心。#include <iostream>#include <algorithm>#include <vector>using namespace std;const int N = 1e5 +
原创
发布博客 2022.02.02 ·
300 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

02BFS

走迷宫给定一个 n×m 的二维整数数组,用来表示一个迷宫,数组中只包含 0 或 1,其中 0 表示可以走的路,1 表示不可通过的墙壁。最初,有一个人位于左上角 (1,1) 处,已知该人每次可以向上、下、左、右任意一个方向移动一个位置。请问,该人从左上角移动至右下角 (n,m) 处,至少需要移动多少次。数据保证 (1,1) 处和 (n,m) 处的数字为 0,且一定至少存在一条通路。#include <iostream>#include <algorithm>#incl
原创
发布博客 2022.02.02 ·
2385 阅读 ·
2 点赞 ·
0 评论 ·
2 收藏

01DFS

排列数字给定一个整数 n,将数字 1∼n 排成一排,将会有很多种排列方法。现在,请你按照字典序将所有的排列方法输出。#include <iostream>using namespace std;const int N = 10;int n;int path[N];bool st[N];void dfs(int cur) { if (cur == n) { for (int i = 0; i < n; i ++ ) printf("%d
原创
发布博客 2022.02.02 ·
404 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

11哈希表

模拟散列表维护一个集合,支持如下几种操作:I x,插入一个数 x;Q x,询问数 x 是否在集合中出现过;拉链法#include <iostream>using namespace std;const int N = 1e5 + 3; // 最好取质数// 拉链法:每个下标存一组对应的值,值对应的下标根据取模N得到int h[N], e[N], ne[N], idx = 1; // h存放链表头节点,e和ne模拟链表void insert(int x) {
原创
发布博客 2022.01.24 ·
430 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

10堆··

堆排序输入一个长度为 n 的整数数列,从小到大输出前 m 小的数。#include <iostream>#include <algorithm>using namespace std;const int N = 1e5 + 10;int n, m;int h[N], cnt;// 堆的下沉操作void down(int k) { // 找到k和两个子节点中的最小值 int t = k; if (k * 2 <= cnt &a
原创
发布博客 2022.01.24 ·
200 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

09并查集

合并集合一共有 n 个数,编号是 1∼n,最开始每个数各自在一个集合中。现在要进行 m 个操作,操作共有两种:M a b,将编号为 a 和 b 的两个数所在的集合合并,如果两个数已经在同一个集合中,则忽略这个操作;Q a b,询问编号为 a 和 b 的两个数是否在同一个集合中#include <iostream>using namespace std;const int N = 1e5 + 10;int n, m;int father[N]; // father[
原创
发布博客 2022.01.24 ·
493 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

08Trie

Trie字符串统计维护一个字符串集合,支持两种操作:I x 向集合中插入一个字符串 x;Q x 询问一个字符串在集合中出现了多少次。共有 N 个操作,输入的字符串总长度不超过 105,字符串仅包含小写英文字母。#include <iostream>using namespace std;const int N = 1e5 + 10;// 字符串“总”长度不超过N// son[i][j]存储节点下标为i,且指向字母为j的节点下标,如果为0,说明节点不存在int s
原创
发布博客 2022.01.24 ·
528 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

07KMP

KMP字符串给定一个模式串 S,以及一个模板串 P,所有字符串中只包含大小写英文字母以及阿拉伯数字。模板串 P 在模式串 S 中多次作为子串出现。求出模板串 P 在模式串 S 中所有出现的位置的起始下标。KMP思路:两步:求next数组,匹配字符串next数组是求出每个p的下标能与前缀匹配的最长距离,求出那个点的下标。求法就是和自己做匹配匹配过程就是当遇到匹配不想等时,p字符串最少后退多少才能继续匹配,这个最少后退不长度就是我们next所求出的下标。#include <io
原创
发布博客 2021.12.05 ·
282 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

06单调队列

滑动窗口给定一个大小为 n≤106n≤10^6n≤106 的数组。有一个大小为 k 的滑动窗口,它从数组的最左边移动到最右边。你只能在窗口中看到 k 个数字。每次滑动窗口向右移动一个位置。思路:窗口用队列来存储,类似于单调栈那一题,只不过不是从右往左删除,而是从左往右删除,每次将窗口内比自己大或相等的数从左边弹出,因为窗口往右移动的过程中,最小值不可能选取比当前值还有小的数。例如:窗口 [1 3 -1] 中选最小值时应该将1,3弹出#include <iostream>
原创
发布博客 2021.12.05 ·
385 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏
加载更多