算法知识目录整理 1. 算法部分 二分搜索 Binary Search 分治 Divide Conquer 宽度优先搜索 Breadth First Search 深度优先搜索 Depth First Search 回溯法 Backtracking 双指针 Two Pointers 动态规划 Dyn ...
分类:
编程语言 时间:
2018-03-02 23:54:12
阅读次数:
206
1082: [SCOI2005]栅栏 题目:传送门 题解: 是不是一开始在想DP?本蒟蒻也是qwq,结果很nice的错了ORZ 正解:二分+搜索 我们可以先把两种木材都进行排序,那么如果需要的最大木材比可提供的最大木材还要大的话,那么可以直接舍弃这种需要的木材。 然后就可以进入二分,如果当前可以做贡 ...
分类:
其他好文 时间:
2018-03-01 14:46:29
阅读次数:
147
题目描述 一个软件开发公司同时要开发两个软件,并且要同时交付给用户,现在公司为了尽快完成这一任务,将每个软件划分成m个模块,由公司里的技术人员分工完成,每个技术人员完成同一软件的不同模块的所用的天数是相同的,并且是已知的,但完成不同软件的一个模块的时间是不同的,每个技术人员在同一时刻只能做一个模块, ...
分类:
其他好文 时间:
2018-02-28 12:57:47
阅读次数:
253
最大化平均值 题解: 一般先想到的肯定是:把物品按照 单位价值 进行排序,然后从大到小贪心地进行选取。但是这个方法对应输入得到的 是 5/7=0.714。不可行。 转换成二分搜索的问题,由之前的博客中,这种题目关键就是 编写二分的条件C(x)。 C(x) = 可以选择使得 单位重量的价格 不小于 x ...
分类:
编程语言 时间:
2018-02-25 00:07:08
阅读次数:
230
AC代码: 解决最优解问题可以套用二分搜索模板,这类问题的关键在于judge()判断函数的选取,其余部分直接套用。 ...
分类:
其他好文 时间:
2018-02-22 22:34:52
阅读次数:
232
数组一分为二,从分开的位置开始搜索!不是从中间开始。代码示例 前提:被查找的数组中的元素必须是有序的 ...
分类:
其他好文 时间:
2018-02-08 20:10:35
阅读次数:
207
1. 链表的基本概念 数组是一段连续的存储空间; 链表空间不一定保证连续,是临时分配的; 按方向: 单链表:每个节点只能通过next指针指向下一个节点; 双链表:除了可以用next指针之外,还可以用previous指针,指向前一个节点; 按有无环: 普通链表 循环链表(首尾相接的链表,最后一个元素的 ...
分类:
编程语言 时间:
2018-02-03 13:13:19
阅读次数:
164
http://acm.hdu.edu.cn/showproblem.php?pid=1950 最长上升子序列(LIS)的典型变形,熟悉的n^2的动归会超时。LIS问题可以优化为nlogn的算法。 定义d[k]:长度为k的上升子序列的最末元素,若有多个长度为k的上升子序列,则记录最小的那个最末元素。 ...
分类:
其他好文 时间:
2018-02-01 17:27:41
阅读次数:
202
折半搜索,也称二分查找算法、二分搜索,是一种在有序数组中查找某一特定元素的搜索算法。 A 搜素过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜素过程结束; B 如果某一特定元素大于或者小于中间元素,则在数组大于或小于中间元素的那一半中查找,而且跟开始一样从中间元素开始比较。 C 如果在 ...
分类:
编程语言 时间:
2017-12-18 14:12:24
阅读次数:
177