自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 简单介绍 docker

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 或 Windows 操作系统的机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。一个完整的 Docker 有以下几个部分组成:Docker Client 客户端Docker Daemon 守护进程Docker Image 镜像Docker Container 容器Docker 容器在运行时不需要额外的资源开销,因此可以大幅度提高资源利用率。

2024-04-07 05:30:00 674 1

原创 介绍一些操作系统—— Ubuntu 系统

Ubuntu 是一个以桌面应用为主的 Linux 发行版操作系统,其名称来自非洲南部祖鲁语或豪萨语的“ubuntu"一词,意思是“人性”“我的存在是因为大家的存在",是非洲传统的一种价值观。Ubuntu 基于 Debian 发行版和 GNOME 桌面环境,而从 11.04 版起,Ubuntu 发行版放弃了 GNOME 桌面环境,改为 Unity。此前人们认为 Linux 难以安装、难以使用,在 Ubuntu 出现后这些都成为了历史。Ubuntu 也拥有庞大的社区力量,用户可以方便地从社区获得帮助。

2023-12-17 21:03:41 1190

原创 介绍一些编程语言— CSS 语言

CSS 提供了丰富的文档样式外观,以及设置文本和背景属性的能力;允许为任何元素创建边框,以及元素边框与其他元素间的距离,以及元素边框与元素内容间的距离;允许随意改变文本的大小写方式、修饰方式以及其他页面效果。

2023-08-23 13:21:10 1067 1

原创 介绍一些编程语言— Perl 语言

Perl 是一种动态解释型的脚本语言。最初的设计者为拉里・沃尔,它于1987年12月18日发表。Perl 借取了 C、sed、awk、shell scripting 以及很多其他编程语言的特性。其中最重要的特性是他内部集成了正则表达式的功能,以及巨大的第三方代码库 CPAN。

2023-08-16 16:19:53 534

原创 介绍一些编程语言— Visual Basic 语言

Visual Basic(简称 VB)是美国 Microsoft 公司于1991年研制的一种基于图形用户接口的 Windows 环境下的开发工具,是一种面向对象、可视化的新型开发工具,可在包括 Windows98 和 WindowsNT 在内的所有 Windows 环境下运行。

2023-08-15 17:09:20 449

原创 介绍 C++ 头文件 — <cstdlib> 头文件

C++ 标准库头文件是 C++ 程序员使用最广泛的库头文件。它定义了一系列函数和宏,以实现跨团队、跨平台的高效且具有卓越表现的标准化 C++ 代码。C++ 是一种广受欢迎的程序语言,它能崛起的最初原因就是可以与 C 语言兼容。C 语言曾经是且现在仍然是一种流行、成熟的程序语言。兼容意味着程序员更容易适应这种语言,更重要的是,C++ 开发人员还可以利用现有的 C 语言代码。程序员不需要从核心函数开始重建所有内容,可以在按合理步调转向 C++ 时,重复使用成熟的代码块。

2023-08-14 17:06:33 2184 1

原创 介绍一些操作系统— CentOS 系统

CentOS 是 Linux 发行版之一,是免费的、开源的、可以重新分发的开源操作系统。CentOS Linux发行版是一个稳定的,可预测的,可管理的和可复现的平台,源于 Red Hat Enterprise Linux(RHEL)依照开放源代码规定释出的源码所编译而成。自200420042004年333月以来,CentOS Linux 一直是社区驱动的开源项目,旨在与 RHEL 在功能上兼容。

2023-08-13 19:37:30 1155 1

原创 介绍一些编程语言— PHP语言

PHP(PHP: Hypertext Preprocessor)即“超文本预处理器”,是在服务器端执行的脚本语言,尤其适用于 Web 开发并可嵌入 HTML 中。PHP 语法学习了 C 语言,吸纳 Java 和 Perl 多个语言的特色发展出自己的特色语法,并根据它们的长项持续改进提升自己,例如 Java 的面向对象编程,该语言当初创建的主要目标是让开发人员快速编写出优质的 web 网站。PHP 同时支持面向对象和面向过程的开发,使用上非常灵活。

2023-06-26 21:49:55 117

原创 介绍 C++ 头文件 — <cstdio> 头文件

是将的内容用 C++ 头文件的形式表示出来。是 C 标准函数库中的头文件,即:standard buffered input&output。提供基本的文字的输入输出流操作(包括屏幕和文件等)。由于 C 语言并没有提供专用于文字输入输出的关键字,所以该库是最普遍的 C 语言程序加载库。和是有差别的,并不是同样的文件。

2023-06-22 18:45:10 5549

原创 介绍 C++ 头文件 — <iostream>头文件

要在 C++ 中执行任何输入和输出操作,我们需要使用 iostream 头文件。如果没有头文件,就无法从用户那里获取输入或打印任何输出。引入表现为如同定义了一个类型的静态存储期对象一样:若它是首个被构造的对象,则其构造函数初始化各个标准流对象,而若它是最后被销毁的对象,则其析构函数将会冲洗这些对象(除了 cin 和 wcin)。

2023-06-22 17:12:12 2884 1

原创 介绍一些编程语言— Go语言

Go语言(或 Golang)起源于 2007 年,并在 2009 年正式对外发布。Go 是非常年轻的一门语言,它的主要目标是“兼具 Python 等动态语言的开发速度和 C/C++ 等编译型语言的性能与安全性”。Go 语言是编程语言设计的又一次尝试,是对类 C 语言的重大改进,它不但能让你访问底层操作系统,还提供了强大的网络编程和并发编程支持。Go 语言的,可以进行网络编程、系统编程、并发编程、分布式编程。

2023-06-17 14:47:41 480

原创 介绍一些编程语言— Ruby语言

Ruby,一种简单快捷的面向对象(面向对象程序设计)脚本语言,在 20 20 20 世纪 90 90 90 年代由日本人松本行弘(Yukihiro Matsumoto)开发,遵守 GPL 协议和 Ruby License。它的灵感与特性来自于 Perl、Smalltalk、Eiffel、Ada以及 Lisp 语言。由 Ruby 语言本身还发展出了JRuby、IronRuby 等其他平台的 Ruby 语言替代品。

2023-06-10 18:08:28 243

原创 介绍一些编程语言— Kotlin语言

Kotlin(科特林)是一个用于现代多平台应用的,由 JetBrains 开发。Kotlin 可以编译成 Java 字节码,也可以编译成 JavaScript,方便在没有 JVM 的设备上运行。除此之外 Kotlin 还可以编译成直接运行在机器上(例如嵌入式设备或 iOS)。Kotlin 已正式成为 Android 官方支持开发语言。2011年7月,JetBrains 推出 Kotlin 项目,这是一个面向 JVM 的新语言,它已被开发一年之久。

2023-06-10 11:15:11 211

原创 介绍一些编程语言—C语言

C 语言是一门面向过程的计算机编程语言,与 C++、C#、Java 等面向对象编程语言有所不同。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、仅产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。当前阶段,在编程领域中,C 语言的运用非常之多,它兼顾了高级语言和汇编语言的优点,相较于其它编程语言具有较大优势。同时,C 语言的普适较强,在许多计算机操作系统中都能够得到适用,且效率显著。C 语言拥有经过了漫长发展历史的完整的理论体系,在编程语言中具有举足轻重的地位。

2023-06-05 22:38:07 4310 1

原创 【洛谷】P9242 [蓝桥杯 2023 省 B] 接龙数列 的题解

结尾的最长接龙序列的长度。对于每个数字设其首位数字为。首先一个数我们只需要关注其首位数字和末位数字,定以。

2023-05-13 14:16:30 640

原创 AT_abc219_d [ABC219D] Strange Lunchbox 的题解

个物品第一个约束条件取j个第二个约束条件取k个的最小方案。第一眼看出是一道动态规划,只不过限制状态有两层。那一维给删掉,其实删不删空间都够。注意这里是至少,因此转移方程为。然后可以仿照背包问题将。

2023-05-02 13:09:26 102 1

原创 AT_abc210_d [ABC210D] National Railway 的题解

所以如果我们建好了一个站,那么相当于我可以行走到下一个地点再建一个站,所以我们可以先记录好前半部分的最小花费。,为了考虑全面,我们遍历的方向实际上就是东北和东南方向。数组之后,还有一点就是如何确定最后一个地铁站建在哪最优,哪很明显,我们直接遍历。大小的地点,问你需要选择两个地点建地点站,并在其之间建立轨道,问最小花费。根据题意,实际上建立轨道的花费相当于是它们的曼哈顿距离。来表示已经建好了一个地铁站,且已经走到了。数组再枚举我们建立的地铁站即可。

2023-05-01 19:25:13 110

原创 AT_abc200_d [ABC200D] Happy Birthday! 2 的题解

的余数分别放入抽屉中,则至少有两个子序列在一个抽屉中,即必定有合法的。(每个元素可以选或不选,去掉全不选的情况)个元素组成的所有可能即可找到解。时,我们暴力枚举所有可能;时,我们暴力枚举其中任意。个元素能组成的子序列有。根据抽屉原理,我们将这。种子序列按照他们除以。

2023-05-01 15:57:55 116 1

原创 AT_abc195_d [ABC195D] Shipping Center 的题解

后,再按顺序贪心地为每个盒子选择它能拿到的价值最高的包裹即可。这道题看似很像背包问题,其实不然。我们只需升序排序数组。

2023-04-22 13:32:38 78

原创 AT_abc195_e [ABC195E] Lucky 7 Battle 的题解

计算重复率较高,所以这题可以使用记忆化搜索来解决。这题首先很容易想到使用搜索。

2023-04-22 13:19:56 101

原创 【洛谷】P8646 [蓝桥杯 2017 省 AB] 包子凑数 的题解

在合适的范围内将所有可以凑出的数枚举出来,然后用总数减去凑出的数的数目就是答案了。题上要问的是凑不出的数目,如果直接推断哪个数不可能凑出是非常困难的。的数的倍数,就会有无数个的数无法凑出,毕竟这样的。这件事情,最大的不可能凑出的数也不会超过。样例二的输入其实已经给出了答案,如果所有的。不互质,也就是说它们都是某一个大于。数组来标记每一个数能否被凑出,首先。有了这个公式以后,思路也就明朗了,对。可以被凑出,那么由这个数与每个。肯定是可以的,也就是不买。最大的不可能凑出的数是。所能构造出的数都是它们。

2023-04-22 13:00:05 149

原创 【洛谷】P8685 [蓝桥杯 2019 省 A] 外卖店优先级 的题解

这就需要将所有订单按主关键字为订单时间,副关键字为外卖店进行排序,所以可以考虑用 pair 来存放每一单订单。注意到同一时刻同一家店是可能有多个订单的,所以可以将这些订单一次性处理。之间可能有差距,订单模拟结束后要注意计算这一段空档期的优先级。如果订单只是一单一单处理是过不了所有的数据的,所以需要优化。与每家店的最后一单时刻。

2023-04-19 21:23:02 118

原创 【洛谷】P8665 [蓝桥杯 2018 省 A] 航班时间 的题解

思路的话很简单,把起止时间用秒表示,计算差值就行。不要漏掉 getchar 读掉的后缀的。计算的结果是取两次时间差值的平均值。

2023-04-19 21:22:32 105

原创 【洛谷】P8687 [蓝桥杯 2019 省 A] 糖果 的题解

所以可以使用二进制来存放,这样存放的好处就是我现在所拥有的糖果种类就可以表示为两数按位或。思考到这里以后再想,怎么保证得到的结果是最小呢,那就只有枚举了。在枚举尝试每一包的糖果的时候,通过不断刷新来得到最后结果。很明显,这样放空间占用大,而且数组遍历浪费时间。,且每包糖果里每种糖果只有有或者没有两种状态。想到这一步之后问题也就解决了,结果自然就是。首先考虑数据存放,最直接的肯定是二维数组,因为最大的糖果种数也就。动态规划得出最后结果。状态压缩二进制存数。

2023-04-19 21:21:27 165

原创 【洛谷】P8686 [蓝桥杯 2019 省 A] 修改数组 的题解

那么在之后读入数据的时候如果这个数已经出现过,就可以直接找它的父节点,将这个数修改为父节点的数字加一输出。将出现过的连续数字都构造到一棵树里,然后将每一个数的父节点直接标记为与它连续的且前面出现过的最大数。秒跑不完,主要的时间都花费在读入一个数,查找没有出现过的第一个数上,考虑利用并查集优化这个过程。在读入元素修改过后,还要判断修改数的前后数字是否出现过,也就是看树能不能合并。树不是直接就构造成这样的,这涉及到了并查集的路径压缩。数据量还是蛮大的,直接暴力。

2023-04-19 21:19:36 74

原创 【洛谷】P8794 [蓝桥杯 2022 国 A] 环境治理 的题解

接下来就是一些细节的问题了,例如对于完全图用二维数组存图、每轮搜索之前都需要根据天数初始化图的边权。因为 floyd 得到的最短路径抽象去了路径上的点,那样就不知道哪条最短路径会缩短了。然后就明白了大概的解题思路:二分搜索天数,用 floyd 判断这天的灰尘度是否达标。这个特殊之处直接导致了想一次 floyd 直接解决问题是不可能的。的定义已经给出很明显的提示了——多源最短路径,用 floyd。然后就是本题的图的特殊之处:灰尘度的变化。以及最重要的,关于数据范围的问题。本题要求的是最少需要多少天。

2023-04-19 21:19:03 120

原创 【洛谷】P8614 [蓝桥杯 2014 省 A] 波动数列 的题解

判断这种情况下是否满足上面的“整除关系”,若满足,我们就让答案加上枚举到的。项进行操作时,它对整个数列之和的贡献为。(由于规模较大,代码中我们使用滚动数组)接下来我们的思路就变成了,枚举全部的。我们不妨将对每一项的操作表示为。,我们能够构造出的全部情况就是。表示我们构造的数列和。而我们要做的就是找到。

2023-04-19 20:53:41 175 2

原创 【洛谷】P8713 [蓝桥杯 2020 省 A2] 填空问题 的题解

如果只有直线,要想构造的分割块最多,那么新添加的直线就要与之前所有的直线相交,而且不能经过之前的直线所形成的交点。首先必须记住一点,这个圆的大小是任意的,这也是直线和圆能分开考虑的关键。每条管(或者叫边)只有发光和不发光两种状态,所以可以状压,去用一个。看到这个题,首先会发现是无法用程序去模拟分割的,所以肯定有一定的规律。记录要填的数,数组里存的数字表示该位置应该填的数,的格子数就可以模拟完的,数组得开大点。这题没什么好说的,就直接暴力枚举就行。条直线时,其可划分出的部分最多为。串表示该七段码管的状态。

2023-04-12 22:46:26 129

原创 【洛谷】P8716 [蓝桥杯 2020 省 AB2] 回文日期 的题解

首先看到八位的整数,还是回文的,一个一个枚举判断八位数是不是回文的实在是太慢了,最好的方法是自己动手构造。同时我们应该注意,并不一定所有的回文串都符合日期格式,所以需要判断。这前四位,然后直接构造回文串,存储下来,根据题意查询到即可。最后按照输入的时间,进去查询就可以,在找到一个。一旦考察到年份就要想到闰年这个特殊的东西。

2023-04-12 22:44:29 80

原创 【洛谷】P8747 [蓝桥杯 2021 省 B] 双向排序 的题解

这样子我们可以发现每次降序排和升序排我们只取范围最大的那个,范围比它小或者等于它的操作其实都是不必要的,我们可以统统去掉。升序排,那么我们也可以忽略掉,因为刚开始的时候我们的数据本来就是升序的,我们把部分升序排之后也是不会引起任何变化的。其实我们会发现,每次排序都会浪费掉很多时间来处理一些不必要的东西,或者说有很多操作是重复的。相信你们发现了一个规律,就是排序的时候,我们会有一些数字被固定,这里我来证明一下。我们可以这样想,后半段本身里面有一部分是升序排的,如果我们。的,还是上面的道理,这是因为。

2023-04-11 22:18:23 92

原创 【洛谷】P8715 [蓝桥杯 2020 省 AB2] 子串分值 的题解

以每一位的字符为子串子元素的只有那么几个,把每一个位字符的贡献度求出来,然后求个和,这样就得到结果了。对整个字符串产生的贡献数就是前面得到的区间里能够生成的包含。出现相同的字符的时候,把每一位的字符前一次出现的位置。,避开其前后出现的位置之后,就可以利用区间。这题是典型的线性相加变成多项乘法和的思想。找出来,避开这些地方去构造子串。在这个区间里随便找出一个含有。的子串,那这个子串里。一定有贡献的子串了。

2023-04-09 17:33:53 88

原创 【洛谷】P8774 [蓝桥杯 2022 省 A] 爬树的甲壳虫 的题解

的等比数列求和,运用等比数列求和公式可得。为质数,根据费马小定理,运用快速幂求逆元。(理解为第一次掉下去,第二次上去)。(理解为前两次掉下去,第三次上去)。只走一次上去的期望时间是。只走两次上去的期望时间是。只走三次上去的期望时间是。的概率向上移动一次。一次上去的期望时间是。两次上去的期望时间是。三次上去的期望时间是。

2023-04-09 13:02:48 153

原创 【洛谷】P8744 [蓝桥杯 2021 省 A] 左孩子右兄弟 的题解

接下来思考,我这一层的结点里有好多结点是带孩子的,应该选这一层的哪个结点作为最下层的一个结点,也就是这一层的构造该以哪个结点结尾,现在需要想到一件事情。先想右子树(兄弟结点),我这一层结点对右子树所能贡献的最大高度就是这一层结点的个数,不管他们的孩子,直接线性排列。最终这个题就相当于一个深搜,从上到下不断的探索每个结点能贡献的最大高度,把每一层的结点数加上就好了。也就是说,要将子结点贡献高度最大的那个结点作为当前层构造的尾结点。线性排列的前提下,这棵树要想高度最大,就应该将结点。的子结点,然后高度是。

2023-04-09 13:02:06 89

原创 【洛谷】P8775 [蓝桥杯 2022 省 A] 青蛙过河 的题解

了,之后怎么也不会选择它作为落脚点,我们可以用数据结构,这里是并查集,将该点往前路径压缩,这样就避免了。但根据我们之前的跳跃模拟,是一个双重 for 循环的结构,这样显然会超时。可以注意到,对于任意一个位置。我们只需要用一个数组记录每个石头位置能承载的最大跳跃次数(在自身高度限制下),for 循环对于每个。二分青蛙的跳跃能力,找到最大的能过河的情况。往右边传递自身的承载。题意很清晰,需要注意的点是,青蛙要往返。肯定会有一个承载值,判断该值是否为。的查找,每个点最多被遍历一次。,这就是我们的二分判断了。

2023-04-09 13:01:58 186

原创 【洛谷】P8741 [蓝桥杯 2021 省 B] 填空问题 的题解

确定一条直线的方式有很多种,但是我们知道,一个斜率和一个截距将会唯一确定一条直线,所以我们枚举所有的点,算出所有两点确定一条直线的斜率和截距,然后通过。思路:这道题直接就用 floyd 算法跑就行,反正填空题也不怕超时,三层循环等个几十秒就出来了。,因为刚好到该数的时候超过限制值,所以只能拼到该数的前一个数。去重,找到其中不一样的,横线和竖线很好算,这个单独考虑。这些方案中的每一个长宽高都将是。直接暴力求解,主要最后的结果。的因子,所以这题就转化为求。这题没什么好说的,直接暴力。的因子中寻找可能的方案数。

2023-04-09 13:01:21 79

原创 【洛谷】P8601 [蓝桥杯 2013 省 A] 剪格子 的题解

分成两部分,两部分的数字和相同,dfs 去创造路径,然后比对路径上的数字和与剩余点的数字和。之后不再可能出现成立的路径。

2023-04-09 13:00:28 65

原创 【洛谷】P8783 [蓝桥杯 2022 省 B] 统计子矩阵 的题解

正解:这个题考的是一个双指针,枚举一下矩阵中的左右边界,在每一个左右边界中,从上往下求一下子段中小于等于。暴力:这题可以暴力写一下,求一个前缀和,然后枚举子矩阵,时间复杂度是。的数的数量(用双指针扫一下就可以,这一步可以做到。

2023-04-09 12:58:42 87

原创 【洛谷】P8787 [蓝桥杯 2022 省 B] 砍竹子 的题解

只要它高度降到了与前一个高度下降过程中的公共值,那么它就不需要花费代价继续下降。如果它降得的当前高度与前一个高度没有公共值,则需要多花费一个代价,来降低自己的高度。我们只需要开两个数组暴力做一下就行。这个题有两个做法,一种是用 set 或者堆来维护一个高度到区间的映射,另一个用并查集维护区间。这个题本质是一个最长公共下降子序列的问题,对于任意一个。

2023-04-08 13:20:48 226

原创 【洛谷】P8784 [蓝桥杯 2022 省 B] 积木画 的题解

来表示当前层的状态,类似于背包的滚动数组优化。表示当前列上面有一个格子,表示当前列下面有一个格子,由于数据很大,开一个。

2023-04-08 13:16:57 208

原创 【洛谷】P8785 [蓝桥杯 2022 省 B] 扫雷 的题解

因此我们就需要去除重复的点,记录每一个坐标下点的位置。此题不可以用并查集去做,因为雷的爆炸是由方向的,然后把每一个火箭作为根节点,去遍历周围。的雷,统计一下一共能炸多少雷就可以。正解是深搜,为了避免边被卡成。雷爆炸是有可能无法引爆。雷的(爆炸半径不同)

2023-04-08 13:07:04 103

洛谷P4248 AHOI2013差异 的 AC 代码

洛谷P4248 [AHOI2013]差异 的 AC 代码

2023-08-14

AT-code-festival-2017-qualb-f Largest Smallest Cyclic Shift AC代码

AT_code_festival_2017_qualb_f Largest Smallest Cyclic Shift 的 AC 代码

2023-08-14

AT-agc014-b AGC014B Unplanned Queries 的AC代码

AT_agc014_b [AGC014B] Unplanned Queries 的AC代码

2023-08-14

最近公共祖先(LCA)板子代码

最近公共祖先(LCA)板子代码

2023-08-14

空空如也

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

TA关注的人

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