- 博客(34)
- 问答 (3)
- 收藏
- 关注
原创 Go语言并发编程实践
Go语言是一门现代化的编程语言,以其独特而强大的并发模型而著名。Go通过轻量级的协程(goroutine)和通信机制(channel)实现了高效的并发编程。本篇博客将介绍Go语言的并发模型,讨论并发编程的基本概念和常用模式,并探索如何利用Go的并发特性来提升程序性能和开发效率。并发编程的重要性在计算机发展的过程中,单核处理器的性能已经达到物理极限,因此并发编程成为提高程序性能和响应能力的关键...
2023-08-29 08:37:00
220
原创 Git :团队协作和版本控制的最佳实践
Git是目前最流行和广泛使用的分布式版本控制系统之一。它不仅能够有效管理代码的版本历史,还提供了强大的团队协作功能。本篇博客将介绍Git的基本概念和常用操作,并详细讲解如何利用Git进行版本控制和团队协作,以提高开发效率和代码管理能力。什么是GitGit是一个分布式版本控制系统,由Linux的创始人LinusTorvalds开发。与集中式版本控制系统(例如SVN)不同,Git将代码的版本信...
2023-08-28 15:17:00
226
原创 GolangWeb框架——Gin框架的使用
Gin是一个轻量级、灵活和高性能的Web框架,基于Go语言开发。它提供了简洁的API设计和出色的性能,使得构建Web应用程序变得更加简单和高效。本文将介绍如何使用Gin框架来快速构建Web应用程序,并展示其主要特性和用法。本文将介绍关于Gin的基本使用方法,包括基本的请求处理与发送响应。Gin 包括以下几个主要的优势:简单好用的核心上下文 Context。高性能:Gin采用了高效的路由匹...
2023-08-27 22:01:00
329
原创 Go中redis的增删查改操作
在现代的应用程序中,缓存起着至关重要的作用,可以显著提高系统的性能和响应时间。Redis是一个快速、高效的内存数据库,常用于缓存和数据存储。本文将介绍如何使用Redis进行缓存操作,以提高应用程序的性能。Redis简介Redis(Remote Dictionary Server ),即远程字典服务,是一个开源的使用ANSI编写、支持网络、可基于内存亦可持久化的日志型、Key-Value,并...
2023-08-27 21:45:00
208
原创 Gorm实现数据库增删查改——mysql篇
本文的目标本文力图实现用简短的篇幅,结合一些具体的应用场景来讲述gorm基本的增删查改功能。Gorm介绍在现代软件开发中,数据库操作是构建应用程序不可或缺的一部分。GORM是Go语言的一个ORM(Object Relational Mapping)库。它可以让我们通过Go来操作数据库中的数据。其中ORM(Object Relational Mapping:对象关系映射)是一种程序技术,用...
2023-08-22 23:34:00
191
原创 GO语言简介与基本语法概述
本文的目标本文通过对Go基本语法进行简要概述,旨在通过短时间内的学习即可掌握基本的Go语法,并切实参与到实际Go项目的开发中。Go语言简介Go语言由来自Google公司的Robert Griesemer,Rob Pike和Ken Thompson于2007年9月开始设计和实现,然后于2009年的11月对外正式发布,被誉为“21世纪的C语言”。GO语言相较于Java语言有着更强的时代特点,具...
2023-08-20 11:17:00
71
原创 数论分块简介
简单介绍一下数论分块的思想。空说无益,先上几道题。题1:P1403 约数研究链接如下:https://www.luogu.com.cn/problem/P1403如果这道题要对每一个数进行分解、统计,未免太麻烦。我们不妨换个思路,假设这里的N是30,那么这个区间内整体的数字分布如下图:这里我们先选择求解有多少数会以2为因子,这很好求,任何形如2k的数都满足这个条件,这里标黄,如下图...
2023-03-31 13:00:00
123
原创 块状数组简述
参考资料:https://oi-wiki.org/ds/block-array/分块思想是一种广泛的思想,树状数组与线段树实际上都是使用了该种思想。但是,在实际问题中,我们常常会遇到一些更为灵活的问题,用线段树或者树状数组并不是那么好用。这里就需要我们化零为整,使用灵活分块的思想来解决。举个例子,给定一数组,对其任意区间进行求和或者修改。假设该数组长度为N,我们可以选择以S为基准,将其分为N...
2022-12-22 23:46:00
94
原创 HJB方程简述
参考资料:维基的哈密顿-雅克比-贝尔曼方程条目。有条件的同学可以自行查看,效果比本文要好一些。文末也会给出相关更深入的资料供大家学习。作为强化学习的一个基础思想,HJB方程从大框架概述了控制优化的方向。这里对其推导与应用进行简述。定义如下变量:为过程价值函数,其中S(t)为在t时刻的状态函数,A(t)为在t时刻的动作函数。为在t时刻状态为S(t)的终点值函数。我们可以定义如下过程:在[0...
2022-12-18 22:15:00
2446
原创 LCA(最近公共祖先)求解方法
本文参考https://oi-wiki.org/graph/lca/定义树上u,v两点的LCA(最近公共祖先)是从根节点dfs到上述两节点路径上距离上述两点最近的公共点。LCA有如下性质:1、u是v的祖先,当且仅当LCA(u,v)=u2、d(u,v)=h(u)+h(v)-2h(LCA(U,V))。其中d为树上两点距离,h为某点到树根的距离。LCA求解方法如下:1、朴素算法:每次寻找深...
2022-09-26 00:08:00
349
原创 树的几种存储方法
本文参考https://oi-wiki.org/graph/tree-basic/理论上说,树作为图的一种,可以由图表示方法完全表示,那为什么要特地给出树的存储方法?因为树具有一个很特别的性质:每个节点要么没有父节点(根节点),要么有且只有一个根节点。这个性质为我们的树存储提供了新思路。下面提供几种树存储方法。①只记录父节点即只给出一个parent[N]数组来记录每个节点的父亲节点。这种方...
2022-09-01 13:21:00
1200
原创 图的bfs遍历
本文基于https://www.cnblogs.com/johnsonstar/p/16645091.html与https://www.oi-wiki.org/bfs,即广度优先遍历,在搜索方面常用于搜寻最短路,其基本实现方式是通过队列存储节点:将初始节点放入队列,再依次将该节点相邻的节点依次放入队列。遍历完成后就弹出初始节点,周而复始,直到队列为空。下面给出几种bfs的实现方法(每种方法的...
2022-09-01 11:15:00
1337
原创 图的几种存储方法
作为我们学习图论的基点,我们有必要了解几种常用的图存储方法,并比较他们的优劣与适用范围。本文参考了https://oi-wiki.org/graph/save/直接存边:由于直接存边的遍历效率低下,一般不用于遍历图。在 Kruskal算法中,由于需要将边按边权排序,需要直接存边。在有的题目中,需要多次建图(如建一遍原图,建一遍反图),此时既可以使用多个其它数据结构来同时存储多张图,也可...
2022-09-01 08:10:00
357
原创 学习随笔——洛谷题目P1636解答
摘要:欧拉图的应用。题目原地址如下:https://www.luogu.com.cn/problem/P1636题目截图如下:一笔画问题,考察欧拉回路的定义,即所有节点的入度出度的和除了入点与出点都为偶数即可满足欧拉回路的性质。我们为方便分析可加入一条线,发现加入一条边后会改变两个点的度数和,只需寻找奇数点的个数再除2即可。然后需要注意的是我们需要特判“一笔画”情况。代码如下: ...
2022-08-29 22:59:00
141
原创 学习随笔——codeforces题目Plus and Multiply解答
摘要:构造算法与数论的结合,巧妙之处在于我们要自己模拟一遍计算过程然后从中找出特殊点。题目原地址如下:https://codeforces.com/problemset/problem/1542/B题目截图如下:关键词:构造算法,数论,*1500简要翻译:一个无穷集合中的元素由如下规则生成:x=m*a或者x=m+b,其中a,b给定,m为集合元素。在生成初期,集合中包含1。现给定数k,...
2022-08-29 20:33:00
136
原创 学习随笔——codeforces题目Color the Picture解答
摘要:构造类题目题目原地址如下:https://codeforces.com/problemset/problem/1710/A题目截图如下:关键词:构造算法,递归,*1500简要翻译:给予k种颜料,第i种颜料可以涂满ai个格子,要求涂满所有方格,并要求要满足任意色方格要至少拥有三个同色相邻方格。现给予相应序列,判断是否可以实现涂色。我们可以很容易证明这种涂法必然会占满整行或整列...
2022-08-29 19:35:00
177
原创 学习随笔——codeforces题目Madoka and the Elegant Gift解答
摘要:属于构造算法,需要对问题内在的逻辑结构有一定的认识。题目原地址如下:https://codeforces.com/problemset/problem/1647/B题目截图如下:关键词:构造算法,图论,*1200简要翻译:给予一个01矩阵,其中1代表涂色部分。判断这个网格内是否不含两个相交的极大矩形。考察该问题的几何特征,我们发现所谓的“相交”即是是否存在“三角形“结构,如果存...
2022-08-29 16:31:00
139
原创 学习随笔——codeforces题目Build Permutation解答
摘要:本题属于构造算法,虽然简单但对思维提升有一定帮助题目原地址如下:https://codeforces.com/problemset/problem/1713/C题目截图如下:关键词:构造算法,动态规划,*1200简要翻译:给定一个序列a[0,1,2,.....,n-1],求其排列A[a1,a2,...an-1]使得对任意ai满足ai+i为完全平方数。作为构造题,我们需要考察...
2022-08-27 14:28:00
184
原创 牛顿迭代法简介
参考资料:牛顿迭代法是一种求方程f(x)=0近似解的一种方法。假设我们现在得到的近似解是xi,然后我们画出在(xi,f(xi))点与曲线相切的直线,该直线与x轴相交会得到一个xi+1。根据导数与直线斜率的关系,我们可以得到:f'(xi+1)=(f(xi))/(xi-xi+1)。整理后得到如下递推式:xi+1=xi-f(xi)/f'(xi+1)。根据本递推式我们可以知道如果曲线平滑,随着迭代次...
2022-05-18 10:35:00
9548
2
原创 无向图最小环问题解答
问题阐述:给出一个无向图,找出权值和最小的子图,其中子图的形式为简单环解题思路,我们可以选取构建抽象模型{u,x1,x2,......xn,v,xm,.....u}作为满足条件的抽象环形结构,可知我们可选择图内任意两个点,围绕他们来做环。我们的思路在于找到从u到v和从v到u的和值最小,即可以将问题分解为最短路问题。使用Floyd算法求最短路的思路(不清楚Floyd算法的话可转至此链接了解:h...
2022-05-13 22:45:00
332
原创 学习随笔——求任意两数乘积和
1.暴力解法:两个for循环,不再赘述2.二分法:①:a1,a2,a3,a4两两相乘可化简为(a1+a2)*(a3+a4)+a1*a2+a3*a4。②:a1,a2,a3,a4,a5,a6,a7,a8两两相乘可化简为(a1+a2+a3+a4)*(a5+a6+a7+a8)+(a1+a2)*(a3+a4)+(a5+a6)*(a7+a8)+a1*a2+a3*a4+a5*a6+a7*a8。易推知对一串数...
2022-04-09 17:43:00
253
原创 转载——天才与锻炼(华罗庚)
天才与锻炼华罗庚——从沙昆塔拉快速计算所想到的轰动听闻的消息 提问者写下一个201位的数:916,748,679,200,391,580,986,609,275,853,801,624,831,066,801,443,086,224,071,265,164,279,346,570,408,670,965,932,792,057,674,808,067,900,227,830,163,...
2022-04-07 22:22:00
273
原创 转载——Alpha-Beta算法详解
前置:MinMax算法:https://www.xqbase.com/computer/search_minimax.htm https://www.cnblogs.com/johnsonstar/p/16101778.html原文链接:https://www.xqbase.com/computer/search_alphabeta.htm原文如下:《对弈程序基本技术》专题Alph...
2022-04-05 11:36:00
537
原创 转载——MinMax算法详解
原地址如下:https://www.xqbase.com/computer/search_minimax.htm原文如下:《对弈程序基本技术》专题最小-最大搜索Bruce Moreland /文 从浅显的地方开始 在国际象棋里,双方棋手都知道每个棋子在哪里,他们轮流走并且可以走任何合理的着法。下棋的目的就是将死对方,或者避免被将死,或者有时争取和棋是最好的选择。 国际象棋程序...
2022-04-05 11:26:00
1393
原创 网站转载——《算法导论》第三版课后题答案
全英文,是github上的一个项目。对部分问题给出了解答,有一定的参考价值。网址如下:https://walkccc.me/CLRS/
2022-03-26 14:06:00
121
原创 学习随笔——POJ题目2586:Y2K Accounting Bug解答
本题题目链接:http://poj.org/problem?id=2586题目截图如下:本题的知识点是贪心算法,题目大意如下:某数组内存储12个数,数的取值只有s和-d。其中s与d皆为正数。该数组满足以下性质:每在数组上连续取5个数值加和皆小于0。现问能否选取合适数量的s与-d并将它们排在合适的位置,实现所有12个数的加和最大且大于0。如果不可实现,便输出Deficit。想要实现可能的最大...
2022-03-10 23:02:00
212
原创 转载——背包九讲(原文链接已不可考)
浙大崔添翼对背包问题的讲解,观点很高也很深刻,特此转载。背包九讲目录第一讲 01背包问题第二讲 完全背包问题第三讲 多重背包问题第四讲 混合三种背包问题第五讲 二维费用的背包问题第六讲 分组的背包问题第七讲 有依赖的背包问题第八讲 泛化物品第九讲 背包问题问法的变化附:USACO中的背包问题前言本篇文章是我(dd_engi)正在进行中的一个雄心勃勃的写作计划的一部分...
2022-03-09 11:54:00
107
原创 学习随笔——POJ题目2965:The Pilots Brothers' refrigerator解答
本题题目链接:http://poj.org/problem?id=2965本题前置题目:POJ1753 相关讲解链接:https://www.cnblogs.com/johnsonstar/p/15981589.html题目截图如下:思路依然和POJ1753一样是枚举,区别如下:①最终判定条件为所有字符全为“-” ②需要记录经过的点的坐标关于坐标的记录,本处思路是开辟一个栈和一个最终...
2022-03-09 09:08:00
108
原创 学习随笔——POJ题目1753:Flip Game解答
本题题目链接:http://poj.org/problem?id=1753题目截图如下:题目大意:在4*4棋盘上有黑白子若干,现需要翻动若干次棋盘上的棋子实现棋盘上的棋子全白或全黑。翻动的规则是:当翻动某一棋子时,其上下左右棋子也需被翻动。求翻动的最小次数,如果无法实现,则需要输出提示信息“Impossible”。一道枚举的题目,根据分析,我们很容易知道同一个位置的棋子翻动两次与未翻动...
2022-03-08 17:34:00
639
原创 学习随笔——codeforces题目Monsters And Spells解答
今天在codeforce刷到了一道C题,感觉还很有意思,主要用到了贪心算法。该题原地址如下https://codeforces.com/problemset/problem/1626/C题目截图如下:关键词:二分查找,动态规划,贪心算法,*1700简要翻译:你正在玩一款魔法类游戏,你需要击倒你遇到的每一个怪物,你的攻击充能机制如下:你可在任意时刻进行攻击,但如果你在该时刻前一秒未攻击,...
2022-01-27 17:21:00
136
原创 学习随笔——威尔逊定理证明
今天看了网络上很多威尔逊定理的证明,深有感触,决定总结如下,以期让那些可能没有深入接触过初等数论的学习者也能没有阻碍地看完这一篇证明。现陈述定理如下:当且仅当P为素数时,满足(P-1)!≡ -1 mod(P)证明如下:(P-1)!≡ -1 mod(P)可化简为(P-1)!+1≡ 0 mod(P),这对我们接下来必要性的证明大有裨益。必要性:若P可整除(P-1)!+1,且P不是素数,则...
2021-11-20 17:18:00
475
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人