摘要:
矩阵的乘积:一个i行j列的矩阵和一个j行k列的矩阵相乘,计算次数为i*j*k 那么问题来了:给定n个可相乘的矩阵,怎么相乘才能是计算次数最少呢? 输入: 多组输入数据。 每组数据以N开始,表示矩阵链的长度。接下来一行N+1个数表示矩阵的行/列数。 1<=N<=300 输出: 对于每组样例,输出一行最
阅读全文
posted @ 2016-12-21 01:01
ALLap
阅读(1115)
推荐(0)
摘要:
题意: N个人过河,船每次只能坐两个人,船载每个人过河的所需时间不同t[i],每次过河的时间为船上的人的较慢的那个,问最快的过河时间。(船划过去要有一个人划回来) 最优选择: 先将所有人过河所需的时间按照升序排序,我们考虑把单独过河所需要时间最多的两个旅行者送到对岸去,有两种方式: 1.最快的和次快
阅读全文
posted @ 2016-12-20 20:09
ALLap
阅读(2291)
推荐(0)
摘要:
题意: 给定n种物品和一个容量为M的背包。物品的重量分别是Wi,其价值为Vi。应如何选择装入背包的物品,使得装入背包中物品的总价值最大? 与普通的0-1背包不同的是,对于每一件物品,可以选择只装入物品的一部分!! 分析: 此时贪心的想法自然是,优先选择单位重量价值最高的物品啦!直到装满。 代码:
阅读全文
posted @ 2016-12-20 19:54
ALLap
阅读(306)
推荐(0)
摘要:
题意: 假设现在有N项工作,分别在 Si 时刻开始,在 Ti 时刻结束,对于每项工作可以选择做或者不做,但不可以同时选择时间重叠的工作(即使是开始的瞬间和结束的瞬间重叠也是不允许的)。要求尽可能的多做几件事,那么最多能做几件事呢? 关键在于选择的策略: 优先选择时间最少的?F 优先选择开始最早的?F
阅读全文
posted @ 2016-12-20 19:42
ALLap
阅读(586)
推荐(0)
摘要:
1.调换流水线无需时间: 加工一件物品,有n条流水线,每条流水线都有m个工序,不同流水线的相同工序处理功能相同,但处理时间可能不同,为t[i][j]。若工序的进出站时间不计,流水线的调换时间也不计。 求加工一件物品最少需要多少时间。 状态:F[j]表示加工到第j个工序所需的最少时间 状态转换:F[j
阅读全文
posted @ 2016-12-20 19:27
ALLap
阅读(1355)
推荐(0)
摘要:
0-1背包: 0-1背包是背包问题的基础,它衍生出来的背包问题大致具有相同的思路。 而既然是属于动态规划的问题,其通法就在于两步: 1)定义状态:ans[i][T]代表着在容量为T时,只从前i个物品选择的最大价值 2)确定状态转移方程:ans[i][T]=max{ans[i-1][T],ans[i]
阅读全文
posted @ 2016-12-13 23:07
ALLap
阅读(272)
推荐(0)
摘要:
题意:求平面上n个点中最短的两个点的距离 思想:分治法 1:暴力枚举法一般都超时啦,复杂度为O(n^2) 2:分治法 将n个点划分为左右两部分,为使两边尽量均匀,一般以所谓点的横坐标的平均值为界。则最段点对要么在左边点中,要么在右边点中,要么横跨分界线。取左右点集合中最小值,再以它为范围,以分界线为
阅读全文
posted @ 2016-12-11 22:27
ALLap
阅读(186)
推荐(0)