摘要:
题目传送:http://acm.hdu.edu.cn/showproblem.php?pid=2112分析:多了一个地方的条件,用map来映射地点编号,Dijkstra求解即可//2013-10-31 14:17:50 Accepted 2112 1921MS 408K 2388 B C++ 空信高手#include #include #include using namespace std;#define N 160#define INF 0x3F3F3F3Fmap map1;int f,cost[N][N];int path[N],vis[N];/... 阅读全文
摘要:
题目传送:http://acm.hdu.edu.cn/showproblem.php?pid=1596分析:Dijkstra变体,最短路径判断计算方式:Safe(P) = s(e1)*s(e2)…*s(ek) e1,e2,ek是P 上的边。 判断方式:lowcost[pre]*cost[pre][j]>lowcost[j]代码://2013-10-30 10:54:06 Accepted 1596 1484MS 9788K 1836 B C++ 空信高手#include #include using namespace std;/*==========... 阅读全文
摘要:
题目传送:http://acm.hdu.edu.cn/showproblem.php?pid=2544分析:Dijkstra算法 1 //2013-10-30 10:01:25 Accepted 2544 15MS 340K 1824 B C++ 空信高手 2 #include 3 using namespace std; 4 5 /*==================================================*\ 6 | Dijkstra 数组实现O (N^2 ) 7 | Dijkstra --- 数组实现( 在此基础上... 阅读全文
摘要:
Dijsktra算法解决了有向图G=(V,E)上带权的单源最短路径问题。但要求所有边的权值非负。思想:Dijkstra算法中设置了一顶点集合S,从源点s到集合中的顶点的最终最短路径的权值均已确定。算法反复选择具有最短路径估计的顶点u€V-S,并将u加入S中,对u的所有出边进行松弛。 /*==================================================*\ | Dijkstra 数组实现O (N^2 )| Dijkstra --- 数组实现( 在此基础上可直接改为STL 的Queue实现) | lowcost[] --- beg 到其他点的最近距离| path 阅读全文
摘要:
最短路径算法综述更新中。。。。1.单源最短路径问题涵义:从给定的源顶点s到每个顶点v的最短路径。在弄清楚如何求算单源最短路径问题之前,必须弄掌握几点知识。最短路径的最优子结构 最短路径算法通常依赖于一种性质,也就是一条两顶点之间的最短路径包含路径上其他的最短路径。这种最优子结构性质是动态规划和贪心算法是否适用的一个标记。Dijkstra算法是一个贪心算法,而找出所有顶点对之间的最短路径的Floyd_Warshall算法是一个动态规划算法。下面的引理更加准确地陈述了最短路径的最优子结构的性质。引理1(最短路径的子路径是最短路径) 证明略,请参考《算法导论》P358负权值边:单源最短路径的某些示. 阅读全文
摘要:
题目传送:http://acm.hdu.edu.cn/showproblem.php?pid=1874分析:题目说是畅通工程续,其实考的是单源最短路径。Dijkstra水过//2013-10-28 16:06:36Accepted18740MS472K1790 BC++空信高手//2013-10-28 16:06:36 Accepted 1874 0MS 472K 1790 B C++ 空信高手#include using namespace std;/*=================================================... 阅读全文
摘要:
继续畅通工程Time Limit: 2000/1000 MS (Java/Others)Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 10967Accepted Submission(s): 4791 Problem Description省政府“畅通工程”的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能间接通过公路可达即可)。现得到城镇道路统计表,表中列出了任意两城镇间修建道路的费用,以及该道路是否已经修通的状态。现请你编写程序,计算出全省畅通需要的最低成本。Input测试输入包含 阅读全文
摘要:
auto_ptr的设计动机 C++标准程序库提供的auto_ptr是一种智能型指针(smart pointer),帮助程序员防止“被异常抛出时发生资源泄露”。 函数的操作经常依以下模式进行: 1.获取一些资源 2.执行一些操作 3.释放所获取的资源 如果一开始所获取的资源被绑定于局部对象(local objects)身上,当函数退出时,他们的析构函数(destructor)被调用,从而自动释放这些资源。然而事情不总是这么顺利,如果资源是以显示手法获得,而且没有绑定在任何对象身上,那就必须以显示的手法释放。这种情形通常发生在指针身上。 一个典型的例子就是运用new 和 delete 来产生和销毁 阅读全文
摘要:
原文链接:http://www.programlife.net/msvc-crt-startup.html在程序进入main/WinMain函数之前,需要先进行C运行库的初始化操作,通过在Visual Studio中调试,通过栈回溯可以找到位于crt0.c中的_tmainCRTStartup函数,这个函数负责进行一些初始化操作,_tmainCRTStartup的上一层调用来自kernel32.dll。这里简单分析一下crt0.c的代码。实际上,C运行库代码又有两个版本,如果是静态编译的话代码位于crt0.c之中,如果是动态编译的话代码位于crtexe.c之中,这里可以通过项目属性的“配置属性” 阅读全文
摘要:
原文链接:吴豆豆http://www.cnblogs.com/gdutbean/archive/2012/03/30/2425201.htmlBoost库Boost库是为C++语言标准库提供扩展的一些C++程序库的总称。Boost库由Boost社区组织开发、维护。其目的是为C++程序员提供免费、同行审查的、 可移植的程序库。Boost库可以与C++标准库完美共同工作,并且为其提供扩展功能。Boost库使用Boost License来授权使用,根据该协议,商业的非商业的使用都是允许并鼓励的。Boost社区建立的初衷之一就是为C++的标准化工作提供可供参考的实现,Boost社区的 发起人Dawes 阅读全文