蓝桥杯比赛

蓝桥杯比赛

Jexi Jiang Lv3

知识点

  • 基本的C语言语法和编程规范,如变量、常量、运算符、表达式、数据类型、输入输出、分支结构、循环结构、数组、字符串等。

    • 常用的算法思想和技巧,如枚举、递归、贪心、动态规划、搜索等。

    • 常见的数学知识和问题,如素数、质因数分解、进制转换、排列组合等。
      一些特殊的题型和情景,如回文串、汉诺塔等。

  • 计算机算法:枚举、排序、搜索、计数、贪心、动态规划、图论、数论、字符串算法等。
    数据结构:数组、对象/结构、字符串、队列、栈、树、图、堆、平衡树/线段树

  • 参考22年蓝桥杯讲解网页:

lqn.1

1.输入输出

2.暴力枚举

3.数学

快速幂,矩阵快速幂

欧几里得

进制转换

大数四则运算

求取质数的几种方法

4.排序算法

快速排序

归并排序

插入排序

==5.递归==

深度搜索

  • 一条路走到黑
  • 到头后返回起点
  • 在选择另一条路开始搜索

广度搜索

  • 广度搜索是同时搜索所有路径,相当于一层一层地搜索,就好比波浪的扩展一样

记忆化搜索

  • 记忆化搜索是一种通过记录已经遍历过的状态的信息,从而避免对同一状态重复遍历的搜索实现方式。它本质上还是动态规划,只是实现方式采用了深度优先搜索的形式。记忆化搜索适用于有重叠子问题的递归问题,可以节省时间和空间.

==6.数据结构==

可自定义结构体

队列

==7.动态规划==

背包问题

最长公共子序列

前缀和

8.其他

并查集

哈希

二分法

位运算

malloc

data = (int *)malloc(N * sizeof(int));的解释

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
malloc是C语言中的一个函数,它的作用是动态地分配内存空间。

malloc函数接收一个整数参数,表示要分配的字节数,如果分配成功,它会返回一个指向被分配内存的指针,如果分配失败,它会返回NULL

例如,你可以这样写:

//定义一个指针
int *p;
//用malloc函数分配4个字节的内存空间,并让指针p指向它
p = (int *)malloc(4);
这样,你就可以用指针p来操作这块内存空间了


注意,在使用完动态数组后,要记得释放它占用的内存空间,以避免内存泄漏。

例如,你可以这样写:

//释放data占用的内存空间
free(data);



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
好的,我来给你介绍一下这行代码的含义。

首先,data是一个指针,它用来指向一个整型数组。

然后,malloc是一个函数,它用来分配内存空间。它的参数是要分配的字节数。

接着,N是一个变量,它表示你想要创建的数组的长度。

再接着,sizeof(int)是一个运算符,它用来计算一个整型变量占用的字节数。一般来说,在32位系统中,sizeof(int)等于4,在64位系统中,sizeof(int)等于8。

最后,(int *)是一个类型转换符号,它用来把malloc函数返回的void类型的指针转换成int类型的指针。

所以,这行代码的意思是:

用N乘以sizeof(int)得到你想要创建的数组占用的字节数。
用malloc函数分配这么多字节的内存空间,并返回一个指向这块内存空间的指针。
用(int *)把这个指针转换成int类型的指针,并赋值给data。
这样,你就可以通过data来操作这个动态创建的数组了。

9.贪心

10.图论

最短路径

最小生成树

拓跋排序

  • Title: 蓝桥杯比赛
  • Author: Jexi Jiang
  • Created at : 2023-03-09 20:53:14
  • Updated at : 2024-01-15 12:21:53
  • Link: https://milefer7.github.io/Jaxi-Jiang-Blog/2023/03/09/蓝桥杯比赛/
  • License: This work is licensed under CC BY-NC-SA 4.0.
Comments