我的思路是:
用队列, 从(0,0)开始入队,每次出队的时候,选(1,0) (0,1) 之间最小的入队,如果是相等的都入队,如果入过队的就不入了,把出队的k个不同的输出来即可
我测试了几组数据都是对的,但是可能还是会有BUG,或者我忽略的地方。下面是我的实现代码(如果有错,请大家积极指正)
import java.util.LinkedList;
import java.util.Qu...
分类:
其他好文 时间:
2014-08-20 14:10:42
阅读次数:
207
一、双向队列Deque Queue除了前面介绍的实现外,还有一种双向的Queue实现Deque。这种队列允许在队列头和尾部进行入队出队操作,因此在功能上比Queue显然要更复杂。下图描述的是Deque的完整体系图。需要说明的是L...
分类:
数据库 时间:
2014-08-18 12:41:24
阅读次数:
354
上一节分析了Job由JobClient提交到JobTracker的流程,利用RPC机制,JobTracker接收到Job ID和Job所在HDFS的目录,够早了JobInProgress对象,丢入队列,另一个线程从队列中取出JobInProgress对象,并丢入线程池中执行,执行JobInProgr...
分类:
其他好文 时间:
2014-08-17 03:45:51
阅读次数:
383
之前的BFS都是需要一个标记数组,但这个题不一样,因为可能一个格子不止走一次。那么我们就要寻找新的入队条件:left比上次经过的时候大才入队(left表示上次经过该点时剩余的时间)。为什么呢?我们重复走过一个点只有一个可能,那就是为了去取那个,所以如果取完后再回头经过这个点的时候剩余时间变多了,我们...
分类:
Web程序 时间:
2014-08-15 22:31:19
阅读次数:
262
SPFA算法SPFA()其实是Bellman的一个小变形该算法常用来计算差分约束系统,因为常常有负值边存在。为了简便,我们约定图中不存在负权回路,这可以通过一次拓扑排序知道。SPFA实际是Bellman-Ford算法的一种队列实现,用一个数组来保存最短路径的估计值,初始时将源加入队列,每次从队列中取...
分类:
其他好文 时间:
2014-08-15 17:22:19
阅读次数:
297
简单变形的广搜,而HDU 1026Ignatius and the Princess I 是这道题的升级版,因为每个格子停留的时间可能不相同。这里,天使的朋友可能有多个,所以我们从天使开始逆向去找他的朋友,最先找到他的朋友就是最短时间。题目的变形在于多了守卫,每当一个守卫进入队列,第一次只扩展当前位...
分类:
其他好文 时间:
2014-08-15 12:34:48
阅读次数:
200
题意:N块地,M条路,W个虫洞。判断有没有可以是时间倒流的路径。注意把W次输入的w[i]改成-w[i]。
SPFA:判断有没有入队次数超过N的点。...
分类:
其他好文 时间:
2014-08-14 10:53:18
阅读次数:
228
使用事件分配线程更新Swing控件:Swing并不是线程安全的,如果在多个线程中更新Swing控件,则很可能造成程序崩溃。 为了避免这种问题,可以使用时间分配线程来更新Swing控件。EventQueue 是一个与平台无关的类,它将来自于底层同位体类和受信任的应用程序类的事件列入队列。 它封装...
分类:
编程语言 时间:
2014-08-14 10:36:38
阅读次数:
281
题意:给你一个N×M的简单图,其中有门,墙,通道,和文件,打开每扇门必须要有某一把特定的钥匙,问你最多能拿到几个文件解题思路:深度优先,每一次走一个格子将它标记以后都不走,遇到门以后如果有钥匙,将门打开,如果没有,將门加入队列,搜完以后,遍历没有打开的门看是否已经有钥匙了,如果有 从门开始dfs,直...
分类:
其他好文 时间:
2014-08-12 10:06:14
阅读次数:
223
第二道广搜的问题虽然思路很清晰,可真要自己把代码敲出来并不是一件容易的事用一维数组模拟一个队列,head和tail分别记录队首和队尾先将迷宫的起点入队,然后向四个方向拓展,如果没有出界或者没有遇到墙壁,那么入队,然后队首出队知道搜到迷宫的出口为止 1 //#define LOCAL 2 #inclu...
分类:
其他好文 时间:
2014-08-11 11:25:33
阅读次数:
239