POJ_最短路径
smsmn
在学校曾获得过福建省大学生程序设计竞赛并参加过ACM/ICPC亚洲区的预选赛,曾获得过高等数学竞赛一等奖和全国数学建模竞赛福建赛区一等奖;对C#、.net和SQL熟悉,在学校用.net和C#做过教学管理系统;在学校通过了全国计算机四级和大学英语四级的考试。<br/>在工作的这一两年除了用C/C++进行三维开发之外,也涉及了网络编程的开发,对ASIO和socket熟悉。<br/>在杭州和厦门这段时间都是使用OpenGL进行开发,前者是做虚拟现实,后者是底层导航引擎开发。<br/>总之,我对于C/C++开发特别感兴趣,也想在三维、嵌入式、视频监控系统或者游戏方面有所发展。
展开
-
HOJ 2544 最短路
http://acm.hdu.edu.cn/showproblem.php?pid=2544flody算法代码如下://就是求单源最短路径用flody算法 #include #include #define M 101 int mat[M][M]; int n, m; void flody()//算法主体 { int i, j, k; for(k=1; k原创 2010-10-22 20:56:00 · 760 阅读 · 1 评论 -
POJ 3114 Countries in War
http://poj.org/problem?id=3114/* 题意是:给你一些城市,这些城市有些是同一个国家(如果在同一个国家,那么任何两个城市都可以到达---强联通分量),如果不在同一个国家,那么发送信息需要时间 一开始并没有给你哪些城市是同一个国家,你需要自己去判断,最后有些询问,问的是两个城市发送需要多少最短时间 考点:强联通+Dijkstra算法 */ #include #include const int N=510; const int maxint=0x03f3f3f3f;原创 2010-10-24 20:18:00 · 724 阅读 · 0 评论 -
最短路径与次短路径的条数 POJ 3463
http://poj.org/problem?id=3463/* 题目类型;最短路-—最短路和相差一个单位的次短路的条数和 //本题关键在于理解Dijkstra的贪心思想 解题思路: 本题若开始直接在Dijkstra中加入针对加1的递推式, 必须在Dijkstra的过程中加入DFS, 很繁琐. 改换求次短路, 然后判断次短路是否比最短路长1. 解法一、A*求第K短路,把前面K条路都求出来,pku 2449 ,但是据说这个题的最后答案超过10^8,把路全部找出来肯定会爆priority_queue原创 2010-10-25 15:53:00 · 1115 阅读 · 0 评论 -
POJ 3635 基于优先队列的BFS
http://poj.org/problem?id=3635/* 题意:给你n个城市m条路,每个城市有个加油站,但是收费单价不同,现给你几个查询并给定汽车的装油量, 问你从S城市到T城市的最小费用。 解法:基于优先队列的BFS.DP[i][j]代表到i这个点还剩J单位油的最小费用. */ #include #include #include #include #include using namespace std; #define inf 0x7fffffff stru原创 2010-10-26 10:40:00 · 1095 阅读 · 0 评论 -
路径数限制的最短路径 POJ 3613
http://poj.org/problem?id=3613/* 题意就是用N条边的最短路,采用的是Flody算法+倍增法莱求解 dp[i][j][k]表示从节点i到节点j经过k条边的最短路: dp[i][j][k] = max {dp[i][j][k], dp[i][t][k/2] + dp[t][j][(k+1)/2]} 求解时采用倍增法才可以通过:其中先求出f[i][j][1],再求出f[i][j][2]。。。。再求f[i][j][k],在求f[i][j][2*k],f[i][j][2*k+1原创 2010-10-25 23:34:00 · 985 阅读 · 0 评论 -
变形的最短路径 POJ 3621
http://poj.org/problem?id=3621/* 分析: 题目的意思是:求一个环的{点权和}除以{边权和},使得那个环在所有环中{点权和}除以{边权和}最大。 令在一个环里,点权为v[i],对应的边权为e[i], 即要求:∑(i=1,n)v[i]/∑(i=1,n)e[i]最大的环(n为环的点数), 设题目答案为ans, 即对于所有的环都有 ∑(i=1,n)(v[i])/∑(i=1,n)(e[i])=∑(i=1,n)(v[i]) 再得 ∑(i=1,n)(ans*e[原创 2010-10-26 09:37:00 · 988 阅读 · 0 评论 -
dij+优先队列POJ_3662
<br />http://poj.org/problem?id=3662<br />/* 题意:在一个农场里,要连接1到n的一条线路,现在有k条是免费的,剩下取最大值即为要付的钱, 现在给你一个农场图,要你求出最小的值,如果没有这个值输出-1 dp+优先队列 dp[i][j]表示到农场j用了i条免费线路所要发的钱 to表示与j连的下一个节点 dp[i][to] = min(max(dp[i][j],val), dp[i][to]); dp[i+1][to] = min(dp[i][j], dp原创 2010-11-16 10:43:00 · 741 阅读 · 0 评论