poj 3268 Silver Cow Party(最短路)
2014-04-18 12:59
387 查看
题意是牛去参加party,求有向图来去最短的路径长度。
热身赛的时候知道这是最短路,但是做不出来。
卡在:不知道是有向图;知道是有向图之后,不知道回的时候怎么处理。
回的时候处理:把图的邻接矩阵反过来。
见图:
![](http://img.blog.csdn.net/20140418125656296?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMzUwODIxMw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
可以知道,把点2当成起点,第一次找到一条最短路,然后将路径逆过来,第二次可以再找到一条最短路。
代码中有一个注意点,实参数组输入函数的时候,size会成实际的大小,而不是原来开的那个数组的大小。
代码:
热身赛的时候知道这是最短路,但是做不出来。
卡在:不知道是有向图;知道是有向图之后,不知道回的时候怎么处理。
回的时候处理:把图的邻接矩阵反过来。
见图:
可以知道,把点2当成起点,第一次找到一条最短路,然后将路径逆过来,第二次可以再找到一条最短路。
代码中有一个注意点,实参数组输入函数的时候,size会成实际的大小,而不是原来开的那个数组的大小。
代码:
#include <stdio.h> #include<string.h> #include<algorithm> using namespace std; int N, M, X; int farm[1001][1001], disgo[1001], disback[1001]; bool vis[1001]; void dijkstra(int dis[]) { memset(vis, false, sizeof(vis)); memset(dis, 0x3f, sizeof(disgo)); //!!debug printf("%d %d\n", sizeof(dis),sizeof(disgo)); dis[X] = 0; for(int i = 1; i <= N; i++) { int mark = -1, mindis = 0x3f3f3f3f; for(int j = 1; j <= N; j++) { if(!vis[j] && mindis > dis[j]) { mindis = dis[j]; mark = j; } } vis[mark] = true; for(int j = 1; j <= N; j++) { if(!vis[j]) dis[j] = min(dis[j], dis[mark] + farm[mark][j]); } } } int main() { #ifdef LOCAL freopen("in.txt","r",stdin); #endif // LOCAL while(scanf("%d%d%d", &N, &M, &X)!=EOF) { int g, b, tmpdis; memset(farm, 0x3f, sizeof(farm)); while(M--) { scanf("%d%d%d", &g, &b, &tmpdis); farm[g][b] = tmpdis; } dijkstra(disgo); for(int i = 1; i <= N; i++) for(int j = i + 1; j <= N; j++) swap(farm[i][j], farm[j][i]); dijkstra(disback); int ans = 0; for(int i = 1; i <= N; i++) ans = max(ans, disgo[i] + disback[i]); printf("%d\n", ans); } return 0; }
相关文章推荐
- centOS命令随笔(2)-shutdown
- (15)html表单之四“readonly”“disabled”“tabindex”和"accesskey"
- [整理] win7 VS2010配置opengl环境
- PHP不用递归实现无限分级的例子分享
- django1.5开发环境static静态文件配置
- 基于Swoole扩展开发异步高性能的MySQL代理服务器
- 从编译和链接来看kernel驱动注册的过程
- C++调用C# dll简单介绍
- Web开发过程小结(一)
- Java小记
- EI judge 002 Set Intersection 算法题解
- mysql 授权管理
- Jsoncpp 编译
- 网站导航路径实现
- DWR使用小结1——SSH整合DWR
- SSH整合流程
- Java Web文件下载2——文件下载乱码处理
- Java基础知识整理四(多线程编程以…
- Java基础知识整理二(抽象类、接口…
- Java面试题整理(浙江通策集团校招…