摘要: 初次使用优先队列;有的人用普通队列也能过,但是,我只能说,那是数据太水了;普通队列能过的将类似下面两句改改顺序:int xx[4] = {1,-1,0,0};int yy[4] = {0,0,1,-1};也许就过不了了;因为如果用普通方法,最后得到的是最优步数,而不是最优时间;来自Jason的解释:普通队列+bfs确实是蒙对的,因为击败守卫需要消耗时间1,因此普通队列每一次出队列的元素只是步数上最优,但不一定是时间上最优的,这时即使我们把整个迷宫搜完以最小值作为最优依然不行,因为每一步处理完成都会把该状态标记为已处理vis[i][j]=1,因此,只要有一步不是最优,就会影响后面的结果。这题的正 阅读全文
posted @ 2013-05-07 21:04 简洁是智慧的灵魂 阅读(177) 评论(0) 推荐(0)
摘要: 转载自C/C++程序员之家本文原始链接地址:STL中优先队列的使用队列的特点是先进先出。通常都把队列比喻成排队买东西,大家都很守秩序,先排队的人就先买东西。但是优先队列有所不同,它不遵循先进先出的规则,而是根据队列中元素的优先权,优先权最大的先被取出。通常把优先队列比喻成现实生活中的打印。一个打印店里有很多打印机,每台机器的性能不一样,有的打印机打印很快,有的打印机打印速度很慢。当这些打印机陆陆续续打印完自己的任务时进入排队等候状态。如果我这个时候要打印一份文件,我选的不是第一个排队的打印机,而是性能最好,打印最快的打印机。重点:优先级队列,是要看优先级的,谁的优先级更高,谁就先得到权限。不分 阅读全文
posted @ 2013-05-07 20:40 简洁是智慧的灵魂 阅读(1126) 评论(0) 推荐(0)