http://poj.org/problem?id=2387

一个dijkstra的模板题

#include <stdio.h>
#include <string.h>
#define inf 999999; int graph[ ][ ];
bool mark[ ];
int m,n; void dijkstra()
{
int d[ ],k,Min;
bool mark[ ];
for(int i = ; i <= n ; i++) //对d[i]进行初始化
{
mark[ i ] = false;
d[ i ] = graph[ ][ i ];
}
for(int i = ; i <= n ; i++)
{
Min=inf;
for(int j = ; j <= n ; j++)
{
if(!mark[ j ] && d[ j ] < Min)
{
k = j;
Min = d[ j ];
}
}
mark[ k ] = true; for(int j = ; j <= n ; j++)
{
if(!mark[ j ] && d[ j ] > graph[ k ][ j ] + d[ k ])
d[ j ] = graph[ k ] [ j ] + d[ k ];
}
}
printf("%d\n",d[n]);
} int main()
{
int a,b,c;
while(~scanf("%d%d",&m,&n)){
for(int i = ; i <= n ; i++)
for(int j = ; j <= n ; j++)
if(i == j)
graph[ i ][ j ] = ;
else
{
graph[ i ][ j ] = inf;
graph[ j ][ i ] = inf;
}
for(int i = ; i <= m ;i++)
{
scanf("%d%d%d",&a,&b,&c);
if(graph[ a ][ b ] > c)
{
graph[ a ][ b ] = c;
graph[ b ][ a ] = c;
}
}
dijkstra();
}
return ;
}

dijkstra +head

 const int N=;
struct rec
{
int v,w;//v代表所连的值,W代表权值
}; vector<rec> edge[N*N];
int n,st,ed;
long long dis[N*N];
bool vis[N*N]; struct cmp
{
bool operator()(int a,int b)
{
return dis[a]>dis[b];
}
}; void Dijkstra()
{
priority_queue<int,vector<int>,cmp> Q;
memset(dis,-,sizeof(dis));
memset(vis,,sizeof(vis));
int i,u,v;
Q.push(st);
dis[st]=;
while(!Q.empty())
{
u=Q.top();
Q.pop();
vis[u]=;
if(u==st)
break;
if(dis[v]==- || dis[v]<dis[u]*edge[u][i].w)
{
dis[v]=dis[u]*edge[u][i].w;
if(!vis[v])
{
vis[v]=;
Q.push(v);
}
}
}
}
}
for(i=; i<edge[u].size(); i++)
{
v=edge[u][i].v;
if(dis[v]==- || dis[v]<dis[u]*edge[u][i].w)
{
dis[v]=dis[u]*edge[u][i].w;
if(!vis[v])
{
vis[v]=;
Q.push(v);
}
}
}
}
}

poj 2378 (dijkstra)的更多相关文章

  1. Tree Cutting POJ - 2378 (树形DP)

    题目链接:POJ - 2378 题目大意:给你n个点,然后问你这n个点中 ,去除哪些点能够使得剩下的图中最大的连通块中点的个数不超过n/2. 具体思路:第一遍dfs记录每一个点代表的子树大小,第二遍d ...

  2. POJ 2378 Tree Cutting 3140 Contestants Division (简单树形dp)

    POJ 2378 Tree Cutting:题意 求删除哪些单点后产生的森林中的每一棵树的大小都小于等于原树大小的一半 #include<cstdio> #include<cstri ...

  3. POJ 1062 ( dijkstra )

    http://poj.org/problem?id=1062 一个中文题,一个多月之前我做过,当时我是用搜索写的,不过苦于卡在无法确定等级关系,所以就错了. 看了别人的博客后,我还是不是很理解所谓的枚 ...

  4. poj 2378(树形dp)

    题目链接:http://poj.org/problem?id=2378 思路:num[u]表示以u为根的子树的顶点个数(包括),如果去掉u之后u的每棵子树都小于等于n/2,则选择u. #include ...

  5. Poj(2253),Dijkstra松弛条件的变形

    题目链接:http://poj.org/problem?id=2253 题意: 给出两只青蛙的坐标A.B,和其他的n-2个坐标,任一两个坐标点间都是双向连通的.显然从A到B存在至少一条的通路,每一条通 ...

  6. Poj(1797) Dijkstra对松弛条件的变形

    题目链接:http://poj.org/problem?id=1797 题意:从路口1运货到路口n,最大的运货重量是多少?题目给出两路口间的最大载重. 思路:j加到s还是接到K下面,取两者的较大者,而 ...

  7. POJ 2378 Tree Cutting (DFS)

    题目链接:http://poj.org/problem?id=2378 一棵树,去掉一个点剩下的每棵子树节点数不超过n/2.问有哪些这样的点,并按照顺序输出. dfs回溯即可. //#pragma c ...

  8. POJ 2378.Tree Cutting 树形dp 树的重心

    Tree Cutting Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 4834   Accepted: 2958 Desc ...

  9. hdu 2544 hdu 1874 poj 2387 Dijkstra 模板题

    hdu 2544  求点1到点n的最短路  无向图 Sample Input2 1 //结点数 边数1 2 3 //u v w3 31 2 52 3 53 1 20 0 Sample Output32 ...

随机推荐

  1. [MongoDB]mapReduce

    摘要 上篇文章介绍了count,group,distinct几个简单的聚合操作,其中,group比较麻烦一点.本篇文章将学习mapReduce的相关内容. 相关文章 [MongoDB]入门操作 [Mo ...

  2. ng指令之 ng-class 篇

    1>定义和用法 ng-class 指令用于给 HTML 元素动态绑定一个或多个 CSS 类.ng-class 指令的值可以是字符串,对象,或一个数组. 如果是字符串,多个类名使用空格分隔. 如果 ...

  3. uname是什么?

    uname= unix +name, 是指unix 这个操作系统的 名字, 包括 主机名, 内核版本 架构 平台名称等等

  4. C语言动态内存分配

    考虑下面三段代码: 片段1 void GetMemory(char *p) { p = (); } void Test(void) { char *str = NULL; GetMemory(str) ...

  5. vs2010 中无法打开 源文件 "stdafx.h" 未定义标识符 “xxx”

    解决方案: 项目属性->配置属性->C/C++->常规->附加包含目录->$(ProjectDir)

  6. "当前方法的代码已经过优化,无法计算表达式的值"的这个错误的解决方案!!!

    http://blog.useasp.net/archive/2012/09/12/how-to-debug-dotnet-framework-source-when-throw-the-code-o ...

  7. Linux 开机启动方式设置 inittab 详解,开机直接进入“命令行”模式

    Linux下的 /etc/inittab 中的英文解释: This file describes how the INIT process should set up  the system in a ...

  8. mysql explain 中key_len的计算

    今天丁原问我mysql执行计划中的key_len是怎么计算得到的,当时还没有注意,在高性能的那本书讲到过这个值的计算,但是自己看执行计划的时候一直都没有太在意这个值,更不用说深讨这个值的计算了: ke ...

  9. 基于jQuery的对象切换插件:soChange 1.5 (点击下载)

    http://www.jsfoot.com/jquery/demo/2011-09-20/192.html 所有参数: $(obj).soChange({     thumbObj:null, //导 ...

  10. 淘宝(阿里百川)手机客户端开发日记第一篇 android 主框架搭建(一)

    android 主框架搭建(一) 1.开发环境:Android Studio 相继点击下一步,直接项目建立完毕(如下图) 图片看的效果如果很小,请放大您的浏览器显示百分比  转载请注明http://w ...