文章分类 - 算法与数据结构
学习过程
摘要:[TOC] ## 一、附庸的附庸 **题目:**蒙德城的旧贵族们存在着附庸的关系。欧洲有一位伟人说过,我的附庸的附庸不是我的附庸。尽管如此,他们还是存在着隐性的自上而下的关系,属于同一个利益集团。所以,在蒙德城,附庸的附庸也是附庸。也就是说,如果两个附庸都能追溯到同一个贵族,他们也存在附庸关系(仅仅
阅读全文
摘要:一、前K小数 **题目:**小码哥现在手上有两个长度为n的数列a,b,(1≤i, j≤n)通过ai + bj可以构造出n * n个数,求构造出的数中前k小的数。 /** 输入格式:第一行2个数n, k; 第二行n个数,表示数列a; 第三行n个数,表示数列b。 输出格式:从小到大输出前k小的数。 样例
阅读全文
摘要:一、甜品配置 **题目:**小码哥的上司是一个爱吃甜品的人,他给了小码哥v的经费,去购买m个甜品,这些甜品有bi的价格,和 ai的甜度,上司希望甜度越高越好,但是他比较忙,没有时间来确定所有甜品的甜度,只会去看M个甜品的中位数的甜度,于是小码哥决定在买M个甜品,总价格不超过v的情况下,尽可能的让中位
阅读全文
摘要:一、小码哥剪绳子 **题目:**马上就要到文化节了,小码哥身为学生会的一员需要参与到道具制作。由于被分配到趣味拔河,小码哥需要切绳子,有N条绳子,它们的长度分别为L1,…,Ln。 如果从它们中切割出K条长度相同的绳子,这K条绳子每条最长能有多长? /** 输入格式:第一行两个整数N 和K ;接下来N
阅读全文
摘要:这是参加百度松果菁英班的3月日常练习题-1,题目价值量挺高,网上只有类似的题型,题解只有对其思路的讲解,而且是C++的代码风格,下方是我自己做的,不会就去参考题解,编写的Java题解,凭借自己的理解写了点核心代码的注释。在学习算法和数据结构时,简单学习过C++,可以应付大部分编程题,而Java是来开
阅读全文
摘要:一、小码哥处理订单 **题目:**假期快到了,小码哥在宾馆打暑假工。 小码哥需要处理接下来n天的住房信息,其中第i天宾馆有ri个房间可供租借。共有m份订单,每份订单用三个正整数描述,分别为dj,sj,tj,表示需要从第sj天到第tj天住房(包括第sj天和第tj天),每天需要出租dj个房间。 宾馆入住
阅读全文
摘要:一、实验内容 运用递归与分治策略解决棋盘覆盖问题(循环赛日程表) 使用递归与分治策略解决棋盘覆盖问题。 二、所用算法基本思想及复杂度分析 1.算法基本思想 递归:直接或间接地调用自身的算法称为递归算法。 分治:将要求解的较大规模的问题分割成k个更小规模的子问题,对这k个子问题分别求解。如果子问题的规
阅读全文
摘要:一、实验内容 运用动态规划算法解决矩阵连乘问题(或流水作业调度、或背包问题) 使用动态规划算法解决0-1背包问题。 二、所用算法基本思想及复杂度分析 1.算法基本思想 动态规划基本思想是一种在数学、计算机科学和经济学中经常使用的,通过把原问题分解为相对简单的子问题的方式求解复杂问题的方法,但是经分解
阅读全文
摘要:一、实验内容 运用贪心算法解决活动安排问题(或最优装载问题) 使用贪心算法解决最优装载问题。 二、所用算法基本思想及复杂度分析 1.算法基本思想 贪心算法是指在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,它所做出的仅是在某种意义上的局部最优解。用局部解构造全局解,
阅读全文
摘要:一、实验内容 运用回溯法解决0-1背包问题(或装载问题、或批处理作业调度、或旅行售货员问题) 使用回溯法解决批处理作业调度问题 二、所用算法基本思想及复杂度分析 1.算法基本思想 从一条路往前走,能进则进,不能进则退回来,换一条路再试。确定了解空间的组织结构后,回溯法从根节点出发,以深度优先搜索方式
阅读全文
摘要:一、实验内容 运用分支限界法解决0-1背包问题(或者旅行售货员问题、或者装载问题、或者批处理作业调度) 使用优先队列式分支限界法来求解旅行售货员问题 二、所用算法基本思想及复杂度分析 1.算法基本思想 分支限界法常以广度优先或以最小耗费有限的方式搜索问题的解空间树。问题的解空间树是表示问题解空间的一
阅读全文
摘要:线性表,链表 链表的特点:插入、删除不需要移动元素;不必事先估计存储空间;所需空间与线性长度成正比。 设h为不带头结点的单向链表。在h的头上插入一个新结点t的语句是: t->next=h; h=t; 对于一个具有N个结点的单链表,在给定值为x的结点后插入一个新结点的时间复杂度为 : O(N) 带
阅读全文