一即一切2120
码龄9年
关注
提问 私信
  • 博客:38,740
    38,740
    总访问量
  • 89
    原创
  • 2,168,629
    排名
  • 4
    粉丝
  • 0
    铁粉

个人简介:加油,用博客记录读书轨迹

IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:北京市
  • 加入CSDN时间: 2016-05-05
博客简介:

六根胡子

博客描述:
期待自己成为一个直觉很准的人
查看详细资料
个人成就
  • 获得21次点赞
  • 内容获得6次评论
  • 获得42次收藏
  • 代码片获得214次分享
创作历程
  • 7篇
    2023年
  • 29篇
    2021年
  • 46篇
    2020年
  • 6篇
    2019年
  • 1篇
    2018年
成就勋章
TA的专栏
  • 算法新解
    6篇
  • 算法题_图
    1篇
  • 日常练习
    29篇
  • 算法的乐趣
    42篇
创作活动更多

AI大模型如何赋能电商行业,引领变革?

如何使用AI技术实现购物推荐、会员分类、商品定价等方面的创新应用?如何运用AI技术提高电商平台的销售效率和用户体验呢?欢迎分享您的看法

186人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
搜TA的内容
搜索 取消

【一文吃透归并排序】基本归并·原地归并·自然归并 C++

不从整体开始切分,而是一开始把每一个元素当成一个列表,然后,自底向上地合并相邻的列表,重复利用开始的那张图。
原创
发布博客 2023.05.14 ·
1266 阅读 ·
2 点赞 ·
0 评论 ·
3 收藏

【迷宫问题】找出迷宫所有可能的路径C++

用栈实现迷宫问题,找出所有可达的路径。
原创
发布博客 2023.05.13 ·
1717 阅读 ·
2 点赞 ·
1 评论 ·
9 收藏

【顶配快速排序】CUTOFF配合三点中值法的三路划分

Robert Sedgewick 观察到,当序列较短时,快速排序引入的额外代价比较明显,此时插入排序反而更快。极端情况下,所有数字都相同,会发生N/2次不必要的交换,因为划分是平衡的,故总体性能还是O(NlgN)。一种抽样的方法是检查,头,尾巴,中间的元素,然后选出其中的中位数作为pivot,即可保证最短序列至少有一个元素。
原创
发布博客 2023.05.11 ·
936 阅读 ·
1 点赞 ·
0 评论 ·
1 收藏

【Queue新技法】用双数组实现一个队列 C++

说明:记入队的列表为F(Front),出队的队列为R(Rear),那完整的队列。是O(N),可只有几次,但O(1)出队操作却有N个,即均摊到每次出队操作上只有。如上图所示,左边是原来的队列,右边是翻转后的队列。,也叫循环缓冲区,如图灰色部分就是队列的内容。
原创
发布博客 2023.05.10 ·
1089 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

【二分查找】求解单调方程的解 C++实现

查找是否存在某一个值。可以先找中间,每次放弃一半,效率。注意,为了一般化单调递增函数或者数列,我们把。,单调递增,现在给一个正整数。最常见的,一个严格单调递增。
原创
发布博客 2023.05.08 ·
617 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

【查找第K个元素】无需排序O(N),八岁都能懂

O(n)效率实现中位数,第k大值的算法。
原创
发布博客 2023.05.08 ·
459 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

八岁都能懂:BFS判断一个图是二分图

一个图用两种颜色涂(橙黄和橘绿),相邻节点不能同色,如下图,4与5相邻且同色,所以不是二分图。
原创
发布博客 2023.05.07 ·
501 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

2021-07-18Bert

# coding=utf-8from __future__ import absolute_import, division, print_functionimport copyimport jsonimport mathimport siximport torchimport torch.nn as nnfrom torch.nn import CrossEntropyLossimport torch.nn.functional as Ffrom torch.nn.utils.r
原创
发布博客 2021.07.18 ·
225 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

多行且每行不确定个数的数据读取 讨厌的换行和getline()

实例31 2 5 6 81 2258 3 65 14读到换行符停止void init() { _read(N); getchar(); int t; _for(i, 0, N) { char ch = ' '; while (ch!='
') { cin >> t; ch = getchar(); out(t); } }}字符串流void init() { _read(N); getchar();//必须去掉,否则会读到首
原创
发布博客 2021.04.01 ·
327 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

修改数组 第十届蓝桥杯省赛C++A/研究生组

AcWing原题链接Ac code#include<vector>#include<cstring>#include<iostream>#include<string>#include<cmath>#include<algorithm>using namespace std;#define _for(i,from,to) for(int i=(from);i<(to);++i)//[from,to)#defi
原创
发布博客 2021.04.01 ·
352 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

2021-1 索引优先队列 c++

原理背景:常见的,用例已经有了N个元素,且有多个平行数组。只需要把索引加入队列。如果有现成的结构体数组,只要一个关于索引的优先队列即可。注意到,只调整索引(一个整型数)要比交换结构体高效很多。索引优先队列,可理解为能够快速访问最小元素的数组(甚至是任意一部分子集的最小元素,只把这一部分加入队列就好)。API函数名功能void insert(int k,KEY key)插入元素key,并和索引k关联void change(int k,KEY key)将索引为k的值
原创
发布博客 2021.01.30 ·
635 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

2021-1 加权有向图 最短路径 理论准备

定义最短路径:在一幅加权有向图中,从顶点s到顶点v的最短路径指的是所有s到t中路径权重的最小者。最短路径树:包含起点s到所有可达顶点的最短路径,s为根节点,树中的每条路径都是一条最短路径。最短路径的性质路径是定向的。 最短的路径必须遵循其边缘的方向。 权重不一定是距离。 几何直觉可能会有所帮助,但是边缘权重权重可能代表时间或成本。并非所有顶点都需要可达。 如果t不能从s到达,则根本没有路径,因此从s到t没有最短的路径。 负权重会带来并发症。假设边缘权重为正(或为零)。 最短路径通常很简单。
原创
发布博客 2021.01.27 ·
962 阅读 ·
4 点赞 ·
0 评论 ·
1 收藏

2021-1 从文件构建图 加权有向边 加权有向图的构建 邻接表 c++

图构造对比加权无向图无权有向图无权无向图加权有向图[本文]API1 有向边的类2 加权有向图测试图实现1 有向边类#pragma once#include<iostream>using namespace std;#define out(x) cout<<x<<" "#define hh printf_s("
")string intToStr(int n);string doubleToStr(double d);
原创
发布博客 2021.01.27 ·
462 阅读 ·
0 点赞 ·
0 评论 ·
5 收藏

2021-1 并查集 c++

union_find APIUF(int n) 构造函数,初始化n个空间bool connected(int v, int w)判断是否连通int find(int p) 找到p所在集合的根void Union(int v,int w) 合并两个集合,大写首字母为了区别关键字union代码//UF.h#pragma once#include<vector>#include<iostream>using namespace std;class UF{pub
原创
发布博客 2021.01.27 ·
295 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

2021-1 贪心算法 最小生成树 Kruskal算法 c++实现

基本原理基础定义点这里了解 最小生成树理论准备假定树有V个顶点,按照边的权重由小到大处理,将边加入到最小生成树中,且加入的边不会和已经加入的边构成环,直到树中含有V-1条边为止。黑色边为树,灰色为无用边,所有灰色和所有白色节点构成一个切分,右侧边按权重排序。几个关键按照权重排序边,用一条优先队列。合并森林中的两棵树并识别环,用并查集。用一条队列来保存树的各个边。实现不失重点的,先看如何写好 Kruskal算法 。并查集,优先队列等工具放在文末。#pragma once#inc
原创
发布博客 2021.01.27 ·
677 阅读 ·
1 点赞 ·
0 评论 ·
2 收藏

2021-1 基于堆的优先队列 为Prim版本定制 c++

优先队列APIinsert(key k)插入节点KeydelMin() 返回最小节点的ID,并从队头删除find(int id) 在队列中查找指定ID的索引,找不到返回-1reduceTo(Key e) 将对象的关键值减小,后调整队列实现c++#pragma once#include<queue>#include<iostream>#include<map>using namespace std;class minEdge{public:
原创
发布博客 2021.01.26 ·
223 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

2021-1 最小生成树 Prim算法的即时实现 c++

思路要改进 Prim延时版本,可以尝试从队列中删除失效边(两个顶点都已在MST的边),但其实还可以删除更多的边。
原创
发布博客 2021.01.26 ·
205 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

2021-1 最小生成树 Prim算法的延时版本 c++

基本原理关于横切边和切分定理,点这里 最小生成树理论准备树中的边是黑色加粗,红色边为横切边,加粗红色为最短横切边,也是将要加入最小生成树的边。解决三个问题最短横切边怎么找?用一条优先队列MinPQ来根据权重比较所有边如何保存切分?通过索引的布尔数组marked,标记已经加入树的节点(白色集合),自己的补集为灰色集合,两者构成一个切分。如何保存树?法一,通过一个队列mst保存最小生成树所有边法二,用一个父亲数组记录边,例如,edgeTo[v]记录着将v连入树中的Edge对象
原创
发布博客 2021.01.26 ·
191 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

2021-1最小生成树理论准备

MST定义图的生成树:含有全部顶点的无环连通子图加权图的最小生成树MST: 权值最小的生成树一些约定只考虑连通图。至于非联通的图,将所有联通分量的最小生成树构成最小生成森林,换句话说不连通的没有最小生成树。边的权重不一定表示距离,短边也可能有高权重。边的权重可能是0或者负数。如果要求全为正数,将最小生成树定义为连接所有顶点且总权重最小的子图就够了。所有边的权重不同,权重不同树就一棵,反之不然。切分定理树的两个性质:连接任意两个节点都会产生一个新的环,加边成环。删去任意一条边都会
原创
发布博客 2021.01.25 ·
172 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

2021-1 从文件构建图 加权边API 加权无向图API c++

有权边API用法提示:得到一条边edge的两个顶点,这样用:int v=edge.either(); int w=edge.other(v);c++实现//Edge.h#pragma once#include<iostream>#include<fstream>#include<string>using namespace std;#define out(data) cout<<data<<" "#define hh p
原创
发布博客 2021.01.25 ·
234 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏
加载更多