11 2016 档案
摘要:题目链接请戳 这里 解题思路 主要有两点: 1.当有中间节点可以经过时,根据乘法原理,i到j的路径数等于i到k路径数乘k到j的路径数。 2.只要路径中有经过某个节点是有回路的(即自己到自己),则路径数是无穷的。 代码
阅读全文
摘要:题目链接请戳 这里 解题思路 直接用floyd就行了。再求最大值。 代码
阅读全文
摘要:题目链接请戳 这里 解题思路 需要知道floyd的动态规划思想. 需要注意的是这里无法用滚动数组来压缩空间。 因为需要每次和现在情况作比较,而不是仅仅和过去作比较。 要保存路径的话,再加个path数组,打印就类似于动态规划的路径打印。 代码
阅读全文
摘要:题目链接请戳 这里 解题思路 用Dijkstra和SPFA算法解决。 这次还是SPFA快,快了10ms 代码 首先是Dijkstra的 然后是SPFA的代码
阅读全文
摘要:题目链接请戳 这里 解题思路 用Dijkstra或者SPFA解决。 主要问题是怎么建图和怎么处理换乘。 1.建图 对于每部电梯,经过的楼层两两都要连接,且有回边。 2.判断换乘 每条边上记录所用时间和用的哪部电梯。用一个数组choice[]保存每次到达楼层时之前乘坐的电梯, 对于楼层0需要特判。其实
阅读全文
摘要:题目链接请戳 这里 解题思路 用floyd。思路和噪声那道很像。 区别是初始化有区别吧。因为要max所以初始化要都变为0. 还有题意。导游也占了一个位置。 然后这次我又没有把回边也初始化了。。。T_T 代码
阅读全文
摘要:题目链接请戳 这里 解题思路 这道题表面上需要你建图,其实只需在bfs扩展节点时“建立”就好了。 用Dijkstra或者SPFA就可求出最短路。 如果单纯地使用隐式图搜索,只能得到最少步数,而题目要求出最少时间。 可以用位运算来改变某一位,速度比较快。比如要设置第二为为1,可以:x | (1 <<
阅读全文
摘要:题目链接请戳 这里 解题思路 最小生成树。用Kruskal得到最小生成树。 再用贪心,最长的那些边连电缆,剩余的用电报, 这样就很容易想到半径是多少。 代码
阅读全文
摘要:题目链接请戳 这里 解题思路 数据好像加强了,,,Kruskal过不了(还是我写搓了?)。。。 用Prim吧。把已经存在的边,距离都设为0(反向边也是),这样生成的MST一定 会包含这些边。 代码
阅读全文

浙公网安备 33010602011771号