codility上的一道题
来源:互联网 发布:网络英语教学平台排名 编辑:程序博客网 时间:2024/04/29 09:04
有一个N*N的网格,给定一个边的数组,依次从网格中去掉数组里的边,问去掉多少条边后网格中点(0,0)和点(N-1,N-1)不再连通。
这个问题可以转化成变种最短路径问题。初始化每条边的权值为MAX_INT,然后把数组中的边的权值改为这条边在数组中的顺序。这样求从点(0,0)到点(N-1,N-1)的距离就可以。
不过公式是
newNode.weight = min(edge(from node to newNode),node.weight);
如果点(N-1,N-1)的weight=INT_MAX,那么说明两点依然保持连通,在去掉所有数组中的边后。
否则,点(N-1,N-1)的weight就是最后的答案。
因为总共有2*N*N条边,最后的时间复杂度是O(N*NlgN)。
- codility上的一道题
- codility上的练习 (4)
- Codility上的练习 (6)
- codility上的练习(7)
- codility上的练习(8)
- Codility上的练习 (10)
- Codility上的练习 (15)
- codility上的问题 11 Kappa 2011
- Codility上的问题 12 Lambda 2011
- codility上的问题 (20) Tau 2012
- codility上的问题 (21) Upsilon 2012
- codility上的问题(24) Psi 2012
- codility上的问题(27) Helium 2013
- codility上的练习 (1)
- codility上的练习(2)
- codility上的练习(3)
- codility上的练习(5)
- codility上的问题(31) Carbo 2013
- Silverlight开发工具包
- Redis内存使用优化与存储
- 修改tilecache1.0实现客户端切图
- 两个单链表是否相交
- Android ApiDemos示例解析(2):SimpleAdapter,ListActivity,PackageManager
- codility上的一道题
- Linux下通过rsync命令支持文件断点续传
- 有趣的编程名言
- 3G、WLAN、Bluetooth三者关系之分析
- 为程序员量身定制的12个目标
- poj 2299 归并求逆序数
- 写Java程序的要遵守的规则
- Java面向对象学习
- The Yang Can't Wait