随笔分类 - 算法竞赛
摘要:2023 年第五届河南省 CCPC 大学生程序设计竞赛 Problem A. Mocha 上小班啦 思路:求n个数位的最小值,条件:每一位数字都不同切不含前导零。 只需要把0放到第二位,其他按从小到大输出,大于10以后输出-1即可。 #include <bits/stdc++.h> using na
阅读全文
摘要:C++ 标准模板库 (STL, Standard Template Library):包含一些常用数据结构与算法的模板的 C++ 软件库。其包含四个组件——算法 (Algorithms)、容器 (Containers)、仿函数 (Functors)、迭代器 (Iterators). 示例: 算法:s
阅读全文
摘要:2023 年第五届河南省 CCPC 大学生程序设计竞赛 Problem A. 小水獭游河南 思路:从第二个字母开始往后依次判断,先判断从这个字母往后是不是回文串,若是则输出HE结束当前循环,若不是判断当前字母之前出现过没,若出现过则输出NaN结束当前循环,若没出现过接着下一个字母判断,直到结束。 #
阅读全文
摘要:# 洪水填充 洪水填充是搜索的一个简单应用。一张图上有多个区域,不同的区域用不同颜色区分,同一个区域的所有点的颜色都是相同的。给定图上的一个点,称为种子点,然后从种子点出发,把种子点所属的封闭区域用新颜色填充,这就是洪水填充。 洪水填充的编程用BFS和DFS都可以。洪水扩散过程符合BFS的原理,不过
阅读全文
摘要:# 洪水填充 洪水填充是搜索的一个简单应用。一张图上有多个区域,不同的区域用不同颜色区分,同一个区域的所有点的颜色都是相同的。给定图上的一个点,称为种子点,然后从种子点出发,把种子点所属的封闭区域用新颜色填充,这就是洪水填充。 洪水填充的编程用BFS和DFS都可以。洪水扩散过程符合BFS的原理,不过
阅读全文
摘要:# 剪枝 ## 导论 剪枝是搜索必用的优化手段,常常能把指数级的复杂度优化到近似多项式的复杂度。 剪枝是一个比喻:把不会产生答案的或不必要的枝条"剪掉"。剪枝的关键在于剪枝的判断:什么该剪,在什么地方剪。 > BFS剪枝通常用判重。如果搜索到某一层时,出现重复的状态,就剪枝。 >DFS剪枝技术较多,
阅读全文
摘要:# 剪枝 ## 导论 剪枝是搜索必用的优化手段,常常能把指数级的复杂度优化到近似多项式的复杂度。 剪枝是一个比喻:把不会产生答案的或不必要的枝条"剪掉"。剪枝的关键在于剪枝的判断:什么该剪,在什么地方剪。 > BFS剪枝通常用判重。如果搜索到某一层时,出现重复的状态,就剪枝。 >DFS剪枝技术较多,
阅读全文
摘要:# BFS和DFS基础 ## 搜索简介 搜索是"暴力法"算法的具体实现,是一种吧所有可能的情况都罗列出来,然后逐一检查,从中找到答案的方法。 ### 一般步骤 1. 找到所有可能的数据,并且永数据结构表示和存储。 2. 优化:尽量多的排除不符合条件的数据,以减少搜索空间。 3. 用某个算法快速检索这
阅读全文
摘要:# BFS和DFS基础 ## 搜索简介 搜索是"暴力法"算法的具体实现,是一种吧所有可能的情况都罗列出来,然后逐一检查,从中找到答案的方法。 ### 一般步骤 1. 找到所有可能的数据,并且永数据结构表示和存储。 2. 优化:尽量多的排除不符合条件的数据,以减少搜索空间。 3. 用某个算法快速检索这
阅读全文
摘要:# 并查集 ### 导论 > 并查集是一种数据结构,主要用于处理一些不相交集合的合并问题。一般应用在连通图、最小生成树、Kruskal算法、最近公共祖先(LCA)等算法中。 ### 举例 > 用帮派例子理解并查集:在n个人中,分成了不同的帮派,每个帮派的人都互为朋友,朋友的朋友是朋友,例如1号和2号
阅读全文
摘要:# 并查集 ### 导论 > 并查集是一种数据结构,主要用于处理一些不相交集合的合并问题。一般应用在连通图、最小生成树、Kruskal算法、最近公共祖先(LCA)等算法中。 ### 举例 > 用帮派例子理解并查集:在n个人中,分成了不同的帮派,每个帮派的人都互为朋友,朋友的朋友是朋友,例如1号和2号
阅读全文