算法
文章平均质量分 83
。
Dqscj
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
算法2.2 构造专题
构造什么是构造构造题的解法题解(21.8.29)CF1438D Powerful Ksenia什么是构造构造题是一种题型。不同于其它的算法、数据结垢题,根据查询输出结果;构造题是让你给出一组方案,使得在一定限制内符合条件。从形式上来看,问题的答案往往具有某种规律性,使得在问题规模迅速增大的时候,仍然有机会比较容易地得到答案。这要求解题时要思考问题规模增长对答案的影响,这种影响是否可以推广。例如,在设计动态规划方法的时候,要考虑从一个状态到后继状态的转移会造成什么影响。构造题一个很显著的特点就是高原创 2021-10-02 22:30:46 · 1413 阅读 · 1 评论 -
算法2.1 分治与倍增
分治与倍增分治定义快速幂归并排序cdq分治分治定义分治算法的核心思想就是“分而治之”。大概的流程可以分为三步:分解 -> 解决 -> 合并。分解原问题为结构相同的子问题。分解到某个容易求解的边界之后,进行递归求解。将子问题的解合并成原问题的解。分治法能解决的问题一般有如下特征:该问题的规模缩小到一定的程度就可以容易地解决。该问题可以分解为若干个规模较小的相同问题,即该问题具有最优子结构性质,利用该问题分解出的子问题的解可以合并为该问题的解。该问题所分解出的各个子问题是原创 2021-08-27 16:37:56 · 494 阅读 · 0 评论 -
算法2.0 线性优化策略
线性优化策略前缀和与差分前缀和定义生成单点查询区间查询单点修改区间修改所谓线性优化,即维护一个序列并进行操作前缀和与差分前缀和定义设原数组为a[]a[]a[], 则前缀和数组为sumi=∑k=1iaksum_i=∑^i_{k=1}a_ksumi=k=1∑iak生成 sum[0] = 0; for(int i = 1; i <= n; i++) sum[i] += a[i];单点查询ans = sum[i] - sum[i - 1];区间查询 for(int i原创 2021-08-02 18:46:52 · 561 阅读 · 0 评论 -
模板
模板排序读入输出选择排序冒泡排序排序读入void input(){ cin >> n; for(int i = 0; i < n; i++) cin >> a[i]; return;}输出void output(){ for(int i = 0; i < n; i++) cout << a[i] << " "; return;}选择排序void SelectSort(){ for(int原创 2021-02-04 11:03:06 · 127 阅读 · 0 评论 -
算法1.0 算法
算法是什么算法(algorithm)就是任何 良定义 的计算过程,该过程取某个值或值的集合作为输入并产生某个值或值的集合作为输出,即是把输入换成输出的计算步骤的一个序列。算法也可以看成是用于计算问题的工具,即描述一个特定的计算过程来实现问题所期望的输入/输出关系。算法的特征有穷性(Finiteness):算法的有穷性是指算法必须能在执行有限个步骤之后终止;确定性(Definiteness):算法的每一步骤必须有确切的定义;输入项(Input):一个算法有0个或多个输入,以刻画运算对象的初始原创 2020-10-18 21:56:32 · 409 阅读 · 1 评论 -
算法1.2 归并排序
排序笔记稳定性分类基于比较的排序选择排序思想图示代码分析冒泡排序思想图解代码稳定性假设某一数组经过排序后,相同大小的元素次序不变,则称这一数组是稳定的;否则为不稳定的分类基于比较的排序选择排序思想每一趟从待排序的数据元素中选出最小的一个元素,顺序放在待排序的数列的最前,直到全部待排序的数据元素排完。图示代码void SelectSort(){ for(int i = 0; i < n; i++) { int min = i; for(int j = i + 1;原创 2020-10-18 22:58:34 · 232 阅读 · 0 评论
分享