自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(32)
  • 收藏
  • 关注

原创 07-抚摸抽象边界:Golang 接口的多彩展现

简单的说,interface是一组method签名的组合,通过interface来定义对象的一组行为。前面例子中Student和Employee都能SayHi,虽然他们的内部实现不一样,但是那不重要,重要的是他们都能say hi。继续做更多的扩展,Student和Employee实现另一个方法Sing,然后Student实现方法而Employee实现。这样Student实现了三个方法:SayHiSing;而Employee实现了SayHiSing。上面这些方法的组合称为interface。

2023-06-18 01:56:34 1134 1

原创 06-揭开神秘面纱:Golang method的魅力解析

method 是附属在一个给定的类型上的,他的语法和函数的声明语法几乎一样,只是在 func 后面增加了一个 receiver (也就是 method 所依从的主体)。

2023-06-14 02:23:32 1151 1

原创 05-修建数据殿堂:Golang struct的艺术架构

Go语言中,和C或者其他语言一样,可以声明新的类型,作为其它类型的属性或字段的容器。例如,可以创建一个自定义类型 person 代表一个人的实体。这个实体拥有属性:姓名和年龄。这样的类型称之 struct 。

2023-06-14 01:42:57 558 1

原创 04-编织灵魂旋律:Golang 函数的魔力绽放

函数是Go里面的核心设计,它通过关键字func//这里是处理逻辑代码 //返回多个值 return value1 , value2 }关键字 func 用来声明一个函数 f函数可以有一个或者多个参数,每个参数后面带有类型,通过 , 分隔函数可以返回多个值上面返回值声明了两个变量 output1 和 output2 ,如果不想声明也可以,直接就两个类型如果只有一个返回值且不声明返回值变量,那么可以省略 包括返回值的括号如果没有返回值,那么就直接省略最后的返回信息。

2023-06-12 04:49:41 1177 1

原创 03-踏入程序诗意:Golang 流程控制的优雅律动

Go中流程控制分三大类:条件判断,循环控制和无条件跳转

2023-06-11 23:34:57 1316

原创 02-舞动数据类型:Golang 类型定义的奇妙之旅

Go 常量和一般程序语言不同的是,可以指定相当多的小数位数(例如200位),若指定给 float32 自动缩短为 32bit ,指定给 float64 自动缩短为 64bit ,详情参考。数组之间的赋值是值的赋值,即当把一个数组作为参数传入函数的时候,传入的其实是该数组的副本,而不是它的指针。像一个结构体,这个结构体包含了三个元素:一个指针,指向数组中 slice 指定的开始位置,长度,即。是引用类型,所以当引用改变其中元素的值时,其它的所有引用都会改变该值,例如上面的。Go支持嵌套数组,即多维数组。

2023-06-11 22:57:56 1388

原创 01-抒写代码之诗:Golang 关键字的文学探索

在Go语言中,关键字是构建程序的基本元素,理解这些关键字的含义和用法对于编写高质量的Go代码至关重要。本文将深入探讨Go语言中的关键字,解释它们的作用和使用场景,帮助大家更好地掌握Go语言编程。

2023-06-11 14:26:11 1085

原创 数据结构入门5-数据结构和算法的关系和区别

计算 1、2、3、4 和 5 的和,首先要选择一种数据存储方式将它们存储起来,通过前面的学习我们知道,数据之间具有“一对一”的逻辑关系,最适合用线性表来存储。结合算法的实现,我们选择顺序表来存储数据(而不是链表),如上图所示。我们知道,评价一个算法的好坏,取决于在解决相同问题的前提下,哪种算法的效率最高,而这里的效率指的就是处理数据、分析数据的能力。由于数据集中存放,因此我们可以设计这样一个算法,使用一个初始值为 0 的变量 num 依次同存储的数据做“加”运算,最后得到的新 num 值就是最终结果。

2022-11-26 11:52:40 193 1

原创 数据结构入门4-如何衡量一个算法的好坏

在学习具体的数据结构和算法之前,每一位初学者都要掌握一个技能,即善于运用时间复杂度和空间复杂度来衡量一个算法的运行效率所谓算法,即解决问题的方法。同一个问题,使用不同的算法,虽然得到的结果相同,但耗费的时间和资源肯定有所差异。就比如拧一个螺母,扳手和钳子都可以胜任,但使用钳子拧螺母肯定没有扳手的效率高这也就意味着,如果解决问题的算法有多种,我们就需要从中选出最好的那一个。那么,怎么判断哪个算法更好(或者更优)呢?

2022-11-26 11:42:32 371

原创 数据结构入门3-逻辑结构和存储结构(物理结构)

上一节讲到,数据的存储方式可分为线性表、树和图三种存储结构,而每种存储结构又可细分为顺序存储结构和链式存储结构数据存储方式如此之多,针对不同类型的数据选择合适的存储方式是至关重要的那么,到底如何选择呢?数据存储结构的选择取决于两方面,即数据的逻辑结构和存储结构(又称物理结构)

2022-11-26 02:11:56 454

原创 数据结构入门2-数据结构到底学什么

通过上节我们知道,数据结构是学习数据存储方式的一门学科,那么,数据存储方式有哪几种呢?本节将对数据结构的学习内容做一个简要的总结线性表,还可细分为顺序表、链表、栈和队列树结构,包括普通树,二叉树,线索二叉树等图结构下面对各种数据结构做详细讲解。

2022-11-26 02:00:52 557

原创 数据结构入门1-什么是数据结构

再比如,导航无疑是出游旅行的必备神器,在我们程序员眼中,无论是哪款导航软件,其导航功能的实现都需要大量地图数据的支持。💬数据结构是所有计算机专业的同学必学的一门课程,数据结构研究的是数据如何再计算机中进行组织和存储,使得我们可以高效的获取数据或者修改数据。因此,数据在计算机存储空间的存放,决不是胡乱的,这就要求我们选择一种好的方式来存储数据,而这也是数据结构的核心内容。),数据存储是没有问题,但是无法体现数据之间的逻辑关系,后期根本无法使用,显然不明智。例如,一直以来大家面对的数据存储,都是类似存储。

2022-11-26 01:39:08 91

原创 字典树(Trie)

在计算机科学中,Trie又称前缀树或字典树是一种针对字符串进行维护的非常高效的数据结构最大优点是利用字符串的公共前缀来减少存储空间与查询时间应用于统计、排序和保存大量的字符串(但不仅限于字符串)例如有五个字符串,构建字典树如下:其中红色表示到当前节点时读取到了一个已存在的字符串字典树有两种基本操作分别是建树和查询建树:把一个目标加入到字典树里查询:查询给定目标在字典树上的属性(是否存在、数量等等)...

2022-08-29 23:01:57 188 15

原创 牛客ACM-兔子的名字

兔子发现序列的名字都是数字,实在太无聊了,于是兔子开始研究兔子的名字。现在兔子手上有 n 个名字 Ti 和 m 个可爱词汇Sj,兔子对每一个名字 Ti 定义了一个可爱度,如果 Ti 中出现了一个可爱的单词 Sj,那么 Ti 就有 1 点可爱值,最后的总可爱值就是 Ti 的可爱度,这里的出现指 Sj 是 Ti 的子序列。例如 abc 是 aebdc 的子序列,abc 也是 abcd 的子序列。现在兔子想知道每一个名字的可爱度。...

2022-08-29 09:24:22 132 4

原创 牛客ACM-xinjun与阴阳师

xinjun是各类手游的狂热粉丝,因随手一氪、一氪上千而威震工大,现在他迷上了阴阳师。xinjun玩手游有一个习惯,就是经过层层计算制定出一套方案来使操作利益最大化(因此即使有扫荡券也不用,故称圣雄肝帝)。已知阴阳师有N个模式可以操作,模式i有ai种操作,但每种模式每日只能选用一种操作,可以不选。操作j能收益vj,但需要花费体力wj点。xinjun每日拥有体力M点,求他每日最多能得到...

2022-08-29 09:07:37 121 1

原创 ACM数位DP

数位DP往往都是给定一个闭区间[l,r],求这个区间中满足某种条件的数的总数,这个区间可能很大,简单的暴力代码如下i

2022-08-29 08:34:33 200

原创 牛客ACM-[NOIP2002]过河卒

[[NOIP2002]过河卒](https://ac.nowcoder.com/acm/problem/16708)# 题目描述如图,A 点有一个过河卒,需要走到目标 B 点。卒行走规则:可以向下、或者向右。同时在棋盘上的任一点有一个对方的马(如上图的C点),该马所在的点和所有跳跃一步可达的点称为对方马的控制点。例如上图 C 点上的马可以控制 9 个点(图中的P1,P2 … P8 和 C)。卒不能通过对方马的控制点。.........

2022-08-28 23:03:49 150 2

原创 牛客ACM-[NOIP2001]数的划分

将整数n分成k份,且每份不能为空,任意两个方案不能相同(不考虑顺序)。例如:n=7,k=3,下面三种分法被认为是相同的。1,1,5; 1,5,1; 5,1,1;问有多少种不同的分法。输入:n,k ( 6 < n ≤ 200,2 ≤ k ≤ 6 )输出:一个整数,即不同的分法。......

2022-08-28 22:15:27 395

原创 C++语法基础

C++ 是一种静态类型的、编译式的、通用的、大小写敏感的、不规则的编程语言,支持过程化编程、面向对象编程和泛型编程。- C++ 是 C 的一个超集,事实上,任何合法的 C 程序都是合法的 C++ 程序。- 使用静态类型的编程语言是在编译时执行类型检查,而不是在运行时执行类型检查。使用 #define 预处理器。10使用 const 关键字。二者区别: 用const的优点:会进行类型安全检查。而define没有安全检查,且可能会产生意料不到的错误。...

2022-08-28 00:26:39 767 13

原创 牛客ACM-逆序数

在一个排列中,如果一对数的前后位置与大小顺序相反,即前面的数大于后面的数,那么它们就称为一个逆序。一个排列中逆序的总数就称为这个排列的逆序数。比如一个序列为4 5 1 3 2, 那么这个序列的逆序数为7,逆序对分别为(4, 1), (4, 3), (4, 2), (5, 1), (5, 3), (5, 2),(3, 2)。......

2022-08-27 13:36:25 281 1

原创 位运算和常见用途

为奇数,其中有且仅有一个数出现了奇数次,其余的数都出现了偶数次。位运算的操作对象只能为整型或字符型数据,位运算把运算对象看作是二进制,按位完成指定的运算。,再还原为原码(反码到原码最高位不变,其它各位取反)等于。,但此结论只适用于该数左移时被溢出舍弃的高位中不包含。按位取反运算符是指将整数的各个二进制位都取反,即。指参加运算的两个数字,按二进制位进行“异或”运算。指参加运算的两个数字,按二进制位进行“或”运算。指将参加运算的数字,按二进制位进行“与”运算。左移运算是用来将一个数的各个二进制位左移。...

2022-08-27 13:20:23 532 3

原创 c++ STL queue

队列(Queue)与栈一样,是一种线性存储结构,它具有如下特点:队列中的数据元素遵循 先进先出 的原则不支持随机访问,仅能访问 队头 和 队尾 元素。

2022-08-27 13:17:02 487 3

原创 c++ STL vector

向量(Vector)是一个封装了动态大小数组的顺序容器(Sequence Container)。跟任意其它类型容器一样,它能够存放各种类型的对象。可以简单的认为,向量是一个能够存放任意类型的动态数组。vector的性质:顺序储存容器内的元素按顺序排列,与数组一样,可通过位置下标访问对应元素,即支持随机访问。动态空间当元素插入或删除时会自动改变容器大小,原理倍增,计算机分配空间所消耗的时间只与分配次数有关,与你分配空间大小无关。巅峰内存消耗为3倍。...

2022-08-27 13:15:25 430 1

原创 gcd 求最大公因数和最小公倍数

重复以上操作,因为函数中第二个参数不断减小,所以最后会得到。先用辗转相除法求gcd(a,b),也就是a,b的最大公因数。有lcm(a,b)=a*b/gcd(a,b)为计算整数a,b的最大公因数的函数。其中c和0的最大公约数是c,所以。如此就计算出了a,b的最大公因数。接下来求最小公倍数lcm。...

2022-08-27 13:14:30 856

原创 素数判定及筛的总结

本文只写了较常见的几种素数求法及筛法,实际上方法多种多样,但这些也已经足够用了(学不会其他的)

2022-08-27 13:03:51 520

原创 牛客ACM-[USACO 2011 Nov G]Above the Median

水题。

2022-08-27 12:51:25 149

原创 牛客ACM-Big Water Problem

水题。

2022-08-25 23:34:38 111

原创 牛客ACM-喆神装书

牛客ACM喆神装书背包dp

2022-08-08 19:58:24 185

原创 acwing-275.传纸条

文章目录题目描述代码题目描述小渊和小轩是好朋友也是同班同学,他们在一起总有谈不完的话题一次素质拓展活动中,班上同学安排坐成一个 m 行 n 列的矩阵,而小渊和小轩被安排在矩阵对角线的两端,因此,他们就无法直接交谈了幸运的是,他们可以通过传纸条来进行交流纸条要经由许多同学传到对方手里,小渊坐在矩阵的左上角,坐标 (1,1) ,小轩坐在矩阵的右下角,坐标 (m,n)从小渊传到小轩的纸条只可以向下或者向右传递,从小轩传给小渊的纸条只可以向上或者向左传递。在活动进行中,小渊希望给小轩传递一张纸条,同时

2022-05-21 19:49:25 125

原创 acwing-1027.方格取数

文章目录题目描述代码题目描述设有 N×N 的方格图,我们在其中的某些方格中填入正整数,而其它的方格中则放入数字 0 ,如下图所示:某人从图中的左上角 A 出发,可以向下行走,也可以向右行走,直到到达右下角的 B 点在走过的路上,他可以取走方格中的数(取走后的方格中将变为数字 0 )此人从 A 点到 B 点共走了两次,试找出两条这样的路径,使得取得的数字和为最大输入格式第一行为一个整数 N ,表示 N×N 的方格图接下来的每行有三个整数,第一个为行号数,第二个为列号数,第三个为在该行、该列上

2022-05-21 19:33:17 159

原创 acwing-1018. 最低通行费

文章目录题目描述代码题目描述一个商人穿过一个 N×N 的正方形的网格,去参加一个非常重要的商务活动。他要从网格的左上角进,右下角出。每穿越中间 1 个小方格,都要花费 1 个单位时间。商人必须在 (2N−1) 个单位时间穿越出去。而在经过中间的每个小方格时,都需要缴纳一定的费用。这个商人期望在规定时间内用最少费用穿越出去。请问至少需要多少费用?注意:不能对角穿越各个小方格(即,只能向上下左右四个方向移动且不能离开网格)。输入格式第一行是一个整数,表示正方形的宽度 N 。后面 N 行,

2022-05-14 15:43:33 91

原创 acwing-1015. 摘花生

文章目录题目描述代码题目描述Hello Kitty想摘点花生送给她喜欢的米老鼠。她来到一片有网格状道路的矩形花生地(如下图),从西北角进去,东南角出来。地里每个道路的交叉点上都有种着一株花生苗,上面有若干颗花生,经过一株花生苗就能摘走该它上面所有的花生。Hello Kitty只能向东或向南走,不能向西或向北走。问Hello Kitty最多能够摘到多少颗花生。输入格式第一行是一个整数T,代表一共有多少组数据。接下来是T组数据。每组数据的第一行是两个整数,分别代表花生苗的行数R和列数 C。

2022-05-14 15:04:39 79 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除