最短路的话,就是求一个点到其他点的最短的距离。。。 然后算法的话,有 Dijkstra,Bellman-Ford,SPFA等等,还有Floyd。 然后常用的话就是Dijkstra(优先队列优化)以及SPFA了。。。 可以看下面这篇文章: http://blog.csdn.net/zhon...
分类:
其他好文 时间:
2015-03-14 18:13:51
阅读次数:
109
DP/单调队列优化 题意:k个人粉刷总长为n的墙壁(或者说栅栏?),每个人有一个必刷点s[i](这个人也可以一点也不刷,如果刷就必须刷这个点),最大粉刷长度l[i](必须是连续粉刷一段),和粉刷一格的报酬p[i],每格不能重复粉刷,求最大报酬总和。 唉……orz了一下proverbs,表示列dp.....
分类:
其他好文 时间:
2015-03-10 21:09:59
阅读次数:
148
DP/单调队列优化 首先不考虑奶牛的喜欢区间,dp方程当然是比较显然的:$ f[i]=min(f[k])+1,i-2*b \leq k \leq i-2*a $ 当然这里的$i$和$k$都是偶数啦~这个应该很好理解吧……每次喷灌的都是一个偶数长度的区间嘛…… 那么加上奶牛的喜欢区间的话,只需这样.....
分类:
其他好文 时间:
2015-03-09 18:58:55
阅读次数:
292
DP/单调队列优化 题解:http://www.cnblogs.com/jianglangcaijin/p/3799736.html 令f[i][j]表示第 i 天结束后,手里剩下 j 股的最大利润,则有: \[ f[i][j]= \begin{cases} f[i-1][j] & &{(...
分类:
其他好文 时间:
2015-03-08 12:56:20
阅读次数:
239
DP/单调队列优化 题解:http://www.cnblogs.com/yymore/archive/2011/06/22/2087553.html 引用:首先我们要明确几件事情1.假设我们现在知道序列(i,j)是符合标准的,那么如果第j+1个元素不比(i,j)最大值大也不比最小值小,那么(i,.....
分类:
其他好文 时间:
2015-03-07 13:57:44
阅读次数:
199
DP/单调队列优化 呃……环形链求最大k子段和。 首先拆环为链求前缀和…… 然后单调队列吧 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include10 #define rep(i,n) for(i...
分类:
其他好文 时间:
2015-03-07 13:37:44
阅读次数:
138
题意:给定一个地图,要从'M'点到'T'点,每次可以往四个方向移动,平时每次移动1格花费1秒。但是由于地图上有一些监控,如果当前所在格被监控看到,就必须躲在纸箱里,躲在纸箱里移动一格的耗时是3秒。而监控的可视范围是它本身所在的一格,以及它朝向的相邻一格。监控每秒会顺时针旋转90度。地图上还有一些‘#'标记表示不可以进入的。可以在原地停留1秒。
时间卡得有点紧,单纯dp过不了,要用优先队列优化下
...
分类:
其他好文 时间:
2015-02-23 23:41:37
阅读次数:
439
上一节我们写了Bellman-Ford算法解决负权边的问题:
邻接表存储图:
n个顶点,m条边。
数组实现邻接表。对每一条边进行1-m编号。用u,v,w三个数组来记录每条边的信息,即u[i],v[i],w[i]表示第i条边是从第 u[i]号顶点到v[i]号顶点且权值为w[i].
first数组的1-n号单元格分别用来存储1-n号顶点的第一条边的编号,初始的时候因...
分类:
其他好文 时间:
2015-02-03 23:09:03
阅读次数:
457
Dijksta算法中,如果我们采用的是邻接矩阵来存的,第一点浪费的空间比较多,第二点我们知道算法的时间复杂度在O(n*n),这样的算法可以说并不是很好,所以我们考虑优化它首先我们可以优化存储结构,采用邻接表来存储,其次我们可以用优先队列来排序大小,其时间复杂度大大降低。
需要注意的是pair是按照第一个元素的大小排序,如果相同才按照第二个,所以我们要把d[i]包装在第一个元素上。
vect...
分类:
其他好文 时间:
2015-01-22 18:23:48
阅读次数:
150