![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
文章平均质量分 53
Ethan1994
爱篮球的程序员~
展开
-
嵌套矩形问题
嵌套矩形问题[题目] 有n个矩形,每个矩形可以用两个整数a、b描述,表示它的长和宽。矩形X(a,b)可以嵌套在矩形Y(c,d)中,当且仅当a < c,b < d,或者b < c,a < d(相当于把矩形X旋转90度)。你的任务是选出尽量多的矩形排成一行,使得除了最后一个之外,每一个矩形都可以嵌套在下一个矩形内。如果有多解,矩形编号的字典序应尽量小。[分析] 此题为没有原创 2015-06-12 21:38:46 · 660 阅读 · 0 评论 -
硬币问题
[问题]有 n 中硬币,面值分别为V1,V2,⋯,VnV_1,V_2,\cdots,V_n,每种都有无限多。给定非负整数S,可以选应多少个银币,使得面值之和恰好为 S?输出硬币数目的最大值和最小值。1≤\le n ≤\le100,0≤\le S ≤\le10000,1≤Vi≤S\le V_i\le S.[分析]此题为确定起点和终点的DAG上的路径问题。将每种面值看作一个点,表示“还需凑足的面值”,则原创 2015-07-13 16:55:33 · 417 阅读 · 0 评论 -
最短路径算法
题目链接:A Walk Through the Forest【问题】\qquad求图中某点v0v_0到其它所有点的最短路径长度【思想】\qquad(1)在集合V−UV-U中选择距离值最小的顶点vminv_{min}加入集合UU; \qquad(2)对集合V−UV-U中各顶点的距离值进行修正:如果加入顶点vminv_{min}为中间顶点后,是v0v_0到viv_i的距离值比原来的距离值更小,则修改v原创 2015-07-22 20:41:45 · 482 阅读 · 0 评论 -
最大递增子序列问题
[题目]设序列L=<a1,a2,a3,⋯,an>L = < a_1, a_2, a_3, \cdots, a_n >是长度为n的序列,LL的一个递增序列描述为:<ai1,ai2,⋯,aik><a_{i1}, a_{i2},\cdots, a_{ik}>, 其中下标序列 <i1,i2,⋯,ik>< i_1, i_2, \cdots, i_k>是递增的, 子序列<ai1,ai2,⋯,aik>< a_{i原创 2015-07-17 22:11:25 · 377 阅读 · 0 评论 -
多排列的最大逆序数问题
[题目]题目链接:Minimum Inversion Number[分析]首先介绍一下逆序数的概念:在一个排列中,如果一对数的前后位置与大小顺序相反,即前面的数大于后面的数,那么它们就称为一个逆序。一个排列中逆序的总数就称为这个排列的逆序数。逆序数为偶数的排列称为偶排列;逆序数为奇数的排列称为奇排列。如2431中,21,43,41,31是逆序,逆序数是4,为偶排列。应用线段树数据结构,将复杂度降到O原创 2015-07-21 16:51:35 · 1455 阅读 · 0 评论 -
最小生成树算法
定义由带权的连通图生成的数的各边加起来称为生成树的权,把权值最小的生成树称为最小生成树(Minimum Spanning Tree),简称为MST分析\qquad构造最小生成树的方法就是利用MST性质,一条一条地选择可以加入的边。下面介绍两种用于构造最小生成树的算法,其中第一种算法称为Prim算法,第二种算法称为Kruskal算法。\qquadPrim算法中,每次循环选择一个顶点(和一条边)加入到最原创 2015-07-24 16:50:06 · 490 阅读 · 0 评论