随笔分类 -  传统算法

摘要:文章目录 问题描述算法原理算法实现参考资料 问题描述 在计算机中常用像素点灰度值序列 { p 1 , p 2 , . . . , p n } \{ p_1, p_2, ..., p_n \} {p1​,p2​,...,pn​}表示图像。其中整数 p i ( 1 ≤ i ≤ n ) p_i(1\leq 阅读全文
posted @ 2023-12-22 16:30 ccql 阅读(153) 评论(0) 推荐(0) 编辑
摘要:文章目录 问题描述算法原理算法实现参考资料 问题描述 我们给定了一个平面上由 n 个点组成的数组,问题是找出数组中最接近的一对点。这个问题在很多应用中都会出现。例如,在空中交通管制中,您可能想要监控靠得太近的飞机,因为这可能预示着可能会发生碰撞。下式表示两点 p 和 q 之间的距离。 算法原理 最近 阅读全文
posted @ 2023-12-20 16:54 ccql 阅读(713) 评论(0) 推荐(0) 编辑
摘要:最优子结构性质(反证法) 计算某问题的最优解包含的计算该问题的子问题也是最优解。事实上,如果找到子问题的更优解,则可以替换当前子问题的解,得到一个比最优解更优的解,这是一个矛盾。 贪心选择性质(数学归纳法) 先设一个最优解 A ⊆ E A\subseteq E A⊆E( E E E为所给定的总元素集 阅读全文
posted @ 2020-11-24 21:17 ccql 阅读(233) 评论(0) 推荐(0) 编辑
摘要:问题描述 给定n个矩阵{A1,A2,…,An},其中Ai与Ai+1是可乘的,i=1,2…,n-1。如何确定计算矩阵连乘积的计算次序,使得依此次序计算矩阵连乘积需要的数乘次数最少。例如,给定三个连乘矩阵{A1,A2,A3}的维数分别是10100,1005和550,采用(A1A2)A3,乘法次数为101 阅读全文
posted @ 2020-11-22 18:46 ccql 阅读(16) 评论(0) 推荐(0) 编辑
摘要:问题描述 给定线性序集中n个元素和一个整数k,1≤k≤n,要求找出这n个元素中第k小的元素。 思路 线性时间选择有两种方法: (1)随机选择快排的标准元素。 (2)将集合分为n个由五个元素组成的集合,对每个五元素集合求其中位数,再对所有的五元素集合的中位数求其中位数,作为快排的标准元素。 Code 阅读全文
posted @ 2020-11-20 16:48 ccql 阅读(47) 评论(0) 推荐(0) 编辑
摘要:问题描述 快速排序由C. A. R. Hoare在1960年提出。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。 (问题描述摘自百 阅读全文
posted @ 2020-11-20 09:10 ccql 阅读(13) 评论(0) 推荐(0) 编辑
摘要:问题描述 归并排序(Merge Sort)是建立在归并操作上的一种有效,稳定的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并。 阅读全文
posted @ 2020-11-20 00:59 ccql 阅读(7) 评论(0) 推荐(0) 编辑
摘要:问题描述(摘自百度百科) 给定无向图G=(V,E),其中V是非空集合,称为顶点集;E是V中元素构成的无序二元组的集合,称为边集,无向图中的边均是顶点的无序对,无序对常用圆括号“( )”表示。如果UV,且对任意两个顶点u,v∈U有(u,v)∈E,则称U是G的完全子图。G的完全子图U是G的团。G的最大团 阅读全文
posted @ 2020-11-19 11:07 ccql 阅读(34) 评论(0) 推荐(0) 编辑
摘要:问题描述 在一个nxn个方格组成的棋盘上的任一方格中放置一个皇后,该皇后可以控制他所在 的行,列以及对角线上的所有方格。对于给定的自然数n,在nxn个方格组成的棋盘上最少要放置多少个皇后才能控制棋盘上的所有方格,且放置的皇后互不攻击? 设计一个拉斯维加斯算法,对于给定的自然数n计算在nxn个方格组成 阅读全文
posted @ 2020-11-19 10:46 ccql 阅读(27) 评论(0) 推荐(0) 编辑
摘要:问题概述 设计一个解n后问题的队列式分支限界法,计算在 n × n n\times n n×n个方格上放置彼此不受攻击的n个皇后的一个放置方案。 Code #include<bits/stdc++.h> using namespace std; #define N 100 int n; struct 阅读全文
posted @ 2020-11-18 19:12 ccql 阅读(90) 评论(0) 推荐(0) 编辑
摘要:问题描述 设某一机器由 n 个部件组成,每一种部件都可以从 m 个不同的供应商处购得。设 wij 是从供应商 j 处购得的部件 i 的重量, cij 是相应的价格。 设计一个优先队列式分支限界法,给出总价格不超过 d 的最小重量机器设计。 对于给定的机器部件重量和机器部件价格,设计一个优先队列式分支 阅读全文
posted @ 2020-11-18 01:40 ccql 阅读(274) 评论(0) 推荐(0) 编辑
摘要:题目描述 如题,已知一个数列,你需要进行下面两种操作: 将某区间每一个数加上 k。 求出某区间每一个数的和。 输入格式 第一行包含两个整数 n,m,分别表示该数列数字的个数和操作的总个数。 第二行包含 n 个用空格分隔的整数,其中第 iii 个数字表示数列第 iii 项的初始值。 接下来 m 行每行 阅读全文
posted @ 2020-03-15 00:09 ccql 阅读(7) 评论(0) 推荐(0) 编辑
摘要:先把这张著名的树状数组结构图摆在最前面,接下来我们就以这张图讲起! 首先图中的A数组就是所谓的原数组,也就是普通的数组形态,C则是我们今天要说的树状数组(可以看出一个树的形状,但其实和树没多大关系) 从图中可以明显看到以下几个式子: C [ 1 ] = A [ 1 ] ; C[1]=A[1]; C[ 阅读全文
posted @ 2020-02-19 15:55 ccql 阅读(9) 评论(0) 推荐(0) 编辑
摘要:题目背景 2018 年 7 月 19 日,某位同学在 NOI Day 1 T1 归程 一题里非常熟练地使用了一个广为人知的算法求最短路。 然后呢? 100 → 60 ; 100 \rightarrow 60; 100→60; Ag → Cu ; \text{Ag} \rightarrow \text 阅读全文
posted @ 2020-02-18 22:36 ccql 阅读(5) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示