分类标签归档:c++
算法考点总结
基础算法:
排序算法
冒泡排序 简单效率低 适合小规模数据
选择排序 每次选择未排序部分的最小值 交换到已排序部分的末尾
快速排序 高效的递归排序算法,通过基准值划分数据
归并排序 稳定的分治排序算法,数组分解为子数组排序后合并
查找算法
二分查找
哈希表 使用哈希函数快速查找元素
算法常用的...
局部搜索算法
局部搜索算法是解决优化问题的一类启发式方法,尤其适用于组合优化和NP难问题。其核心思想是从一个初始解出发,通过逐步调整当前解的邻域状态,寻找更优解或近似最优解。
一、核心思想与特点
1. 邻域动作
通过定义邻域操作(如交换、翻转、插入等)生成新解。例如,在旅行商问题中,2-opt操作通...
岛屿数量统计
```cpp 题目描述
给定一个二维字符数组 grid ,其中包含 '1' (陆地)和 '0' (水),计算岛屿的数量。岛屿被水包围,并且通过水平或垂直方向上相邻的陆地连接而成。你可以假设网格的四个边均被水包围。
示例 1:
plaintext
输入:grid = [ ["1","1...
大整数幂运算_高精度运算
大整数幂运算
题目描述
给定两个正整数 a 和 n , a 的范围是 1=< a <=10^100, n 的范围是 1 =< n<= 100。计算 a^n 的结果并输出。由于结果可能非常大,需要使用高精度计算。
输入格式
第一行输入一个字符串,表示大整数 a...
拯救小p_广度优先搜索算法
拯救小P
题目描述
在一个 N×M ( 1 ≤ N, M ≤ 100 )的迷宫里,小P被困在了迷宫的某个位置。迷宫由空地(用 0 表示)和墙壁(用 1 表示)组成。小P可以在1个单位时间内从当前位置移动到上下左右四个相邻的空地上。迷宫的左上角坐标为 (0, 0) ,右下角坐标为 ...
迷宫探索
迷宫探索
题目描述
给定一个 n * m 的迷宫,迷宫由 0 和 1 组成,其中 0 表示通路, 1 表示墙壁无法通过。你从迷宫的左上角 (0, 0) 出发,每次只能向上下左右四个方向移动一步,且不能走出迷宫边界,问是否能到达右下角 (n - 1, m - 1) 。
...产生数
[NOIP2002 普及组] 产生数
题目描述
给出一个整数n和k个变换规则。
规则: - 一位数可变换成另一个一位数。 - 规则的右部不能为零。
例如:n=234,k=2。有以下两个规则:
- 2------>5。
- 3------>6。
上面的整数 $234$ 经过变换后可...
数的划分
[NOIP2001 提高组] 数的划分
题目描述
将整数n分成k份,且每份不能为空,任意两个方案不相同(不考虑顺序)。
例如:n=7,k=3,下面三种分法被认为是相同的。
1,1,5;
1,5,1;
5,1,1;
问有多少种不同的分法。
输入格式
n,k (6<n<=200,2...
猜数字
#include <iostream>
#include <ctime>
#include <cstdlib>
#include <conio.h>
using namespace std;
int main() {
srand(st...