自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 dijkstra——求单源最短路径

从起始点开始,采用贪心算法的策略,每次遍历到始点距离最近且未访问过的顶点的邻接节点,直到扩展到终点为止。vector<edge> g[inf_N]是一个数组,其中每一个元素都是vector<edge>类型。4.4遍历从结点开始的边,如果能更新到源点的最短距离,则更新,并将其push进pq中。4.1取出pq的顶部,代表取出到源点距离最近的结点。2.设置所有结点到源节点的距离为无穷大,源节点到自己的距离为0。5.跳出while循环,输出每个结点到源点的距离。输入一个有权图,找所有点到原点的最短距离。

2025-04-08 14:39:41 231

原创 最长上升子序列LIS——动态规划&贪心+二分

输入一个数字序列,输出最长上升子序列LIS(Longest Increasing Subsequence)的长度。

2025-04-07 11:17:10 185

原创 c++学习笔记——按位与

若下午气温超过30℃,则他必去游泳。若他去游泳,他就不去看电影了。所以,若他没去看电影,下午气温必超过了30℃。对以下推理,请编程判断推理是否有效。禁止采用手工演算得出结论,再用输出语句输出yes或no。有多个命题的场景,由于每个命题都有T和F两种状态,使用多个。如果推理有效,输出yes,否则输出no。

2025-02-17 20:54:27 137

原创 c++学习笔记——数字出现次数排序

vector vec(mp.begin(), mp.end())和for (pair p : vec)的用法。

2024-12-06 22:24:05 212

原创 c++学习笔记——窗口

【代码】c++学习笔记——窗口。

2024-12-06 21:31:19 138

原创 c++学习笔记——最大矩形(暴力解法)

时间复杂度为n^2,采用单调栈算法可以优化至n。

2024-12-06 20:46:52 192

原创 c++学习笔记——char和int类型数字的转化

1~9,char类型的数字c,转换为int类型的数字,-'0',反之+'0',原理是acsii码。

2024-12-06 20:29:59 198

原创 c++学习笔记——sort()和pair

pair在库<utility>中,当对一个pair<int,int>类型的数组arr使用sort(arr, arr + n, less<pair<int, int>>())时,会首先比较pair的第一个元素,如果相同,则比较pair的第二个元素。如果想让第一个元素按照less比较,如果相同,第二个元素按照greater比较,则需要自定义比较函数。

2024-12-05 16:44:03 239

原创 c++学习笔记——sort()

使用sort()函数要#include<algorithm>

2024-12-05 15:41:11 228

原创 c++学习笔记——累加器

【代码】c++学习笔记——累加器。

2024-12-05 15:28:19 209

原创 c++学习笔记——前缀和

【代码】c++学习笔记——前缀和。

2024-12-05 15:21:50 179

原创 c++学习笔记——数位之和

【代码】c++学习笔记——数位之和。

2024-12-04 15:40:45 323

原创 c++学习笔记——图像旋转

题目描述:代码实现:#include<iostream>using namespace std;int arr[1010][1010];int main() { int n, m; cin >> n >> m; for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { cin >> arr[i][j]; } } for (int j =

2024-12-04 15:04:08 266

原创 c++学习笔记——Z字形扫描

【代码】c++学习笔记——Z字形扫描。

2024-12-04 14:57:10 510

原创 c++学习笔记——哈希表map

【代码】c++学习笔记——哈希表map。

2024-12-04 14:12:20 126

原创 c++学习笔记——sort()

sort()中三个参数,分别是数组头指针、数组尾指针、比较函数。比较函数为greater<T>()为降序排序,比较函数为less<T>()为升序排序。

2024-12-04 13:07:05 200

原创 c++学习笔记——哈希map

【代码】c++学习笔记——哈希map。

2024-12-04 12:44:53 215

原创 c++学习笔记——选择排序

【代码】c++学习笔记——选择排序。

2024-12-02 17:07:38 110

原创 c++学习笔记——水仙花数,取模

【代码】c++学习笔记——水仙花数,取模。

2024-12-02 14:55:57 197

原创 c++学习笔记——最高频字符串,字典,map

注意:字典可以是map或unordered_map,而是哈希表是unordered_map,map保持键的有序性,而unordered_map不保持键的有序性。

2024-12-02 00:10:56 116

原创 c++学习笔记——冒泡排序

【代码】c++学习笔记——冒泡排序。

2024-12-01 23:40:43 97

原创 c++学习笔记——字符串插入、连续读取

【代码】c++学习笔记——字符串插入、连续读取。

2024-11-28 23:30:57 205

原创 c++学习笔记——哈希表map

【代码】c++学习笔记——哈希表map。

2024-11-28 20:48:12 122

原创 qt学习笔记——第一个简单的QWidget程序

在vs上配置了qt,在vs上编写。

2024-11-25 23:30:00 291

原创 c++ 线性表——数组描述 应用:通讯录

数据结构##线性表——数组描述#2023.10.8通讯录。

2023-10-08 15:50:12 200 1

原创 c++ 线性表——数组描述

线性表(linear list)(也称有序表ordered list):每一个实例都是元素的一个有序集合,形式为(e0,e1,e2,......,en-1),ei是线性表的元素,i是元素ei的索引,n是线性表的长度或大小。数据结构(data structure):是一个数据对象,这个对象的实例以及构成实例的元素都存在着联系,而且这些联系由相关的函数决定。c++程序常用的数据描述方法是数组描述和链式描述。数据对象:一组实例或值,如线性表、栈、队列等。#线性表——数组描述#

2023-10-08 15:34:34 127 1

原创 c++ 插入排序

插入排序(insertion sort):首先将第2个元素插入到前1个元素中,再将第3个元素插入到前2个元素中,以此类推,进行n-1次插入过程后,数组排序完成。一次插入过程:对于具有n个元素的有序数组a[ ],将第n+1个元素插入到数组中,插入时将要插入位置后面的所有元素后移一位。

2023-10-07 17:11:19 84 1

原创 c++ 冒泡排序

冒泡排序(bubble sort):对于有n个元素的数组a[ ],首先对n个元素进行一次冒泡过程,最大的元素移到最右端。然后对于剩下的n-1个元素,进行一次冒泡过程,最大的元素移到最右端。如此进行n-1次冒泡过程,完成数组的排序。一次冒泡过程:在一个数组中,从左至右比较相邻元素,若左元素大于右元素,则进行交换。一次冒泡过程后,数组中最大的元素必定在最右端。可及时终止的实现方法:在每一次冒泡过程中,若没有任何元素发生交换,则说明数组已经完全排序,不需要后续的冒泡过程。

2023-10-07 16:59:08 738 1

原创 c++ 选择排序

选择排序(selection sort):在一个有n个元素的数组中,首先找出最大的元素,将它移到a[n-1](交换),然后在余下的n-1个元素中,找出最大的元素,将它移到a[n-2](交换),如此进行下去,直到剩下一个元素,完成排序。可及时终止的实现方法:在寻找最大元素的过程中,若最大元素位于末尾,则不进行交换。

2023-10-07 16:30:58 280 1

原创 c++ 名次排序

名次:一个元素在一个序列中,所有比它小的元素个数加上在它左边出现的与它相同的元素个数。如数组a=[4,3,9,3,7]是一个序列,各元素的名次为r=[2,0,4,1,3],名次越靠前,元素越小。名次排序:通过计算一个序列中各元素的名次来进行排序。

2023-10-07 16:23:17 418 1

原创 c++中1<<n的用法

在C语言中,1<<n表示对数字1进行左移n位操作。这意味着将二进制数1向左移动n个位置,然后用0填充右侧空出的位。这个操作相当于将1乘以2的n次方。例如,如果n为3,那么1<<3就等于8,因为二进制数1左移3位后变成了1000,对应的十进制数就是8。结论:1<<n = 2^n。

2023-09-20 18:51:09 2055 2

空空如也

空空如也

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

TA关注的人

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