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. js的元素对象

    元素对象(element对象)        ** 要操作element对象,首先必须要获取到element,                       - 使用document里面相应的方法获取  ...

  2. CentOS7 mono环境连接WCF

    总结下在mono环境中使用Wcf出现的问题以帮助你快速解决问题. 1.昨天在内网Centos7下部署由Windows上开发完成的ASP.NET Mvc4项目,部署到mono环境下遇到了无法找到endp ...

  3. AngularJS常用指令用法详解

    ng-class 1>ng-init   ng-bind 11111 2>ng-class 111 3>ng-repeat 3.1-数据绑定     ng-repeat可以绑定数组和 ...

  4. mysql规范

    1.命名规范 (1)库名.表名.(按现在的规范类似; PromoHayaoRecord),数据库名使用小写,字段名必须使用小写字母,并采用下划线分割.(2)库名.表名.字段名禁止超过32个字符.(3) ...

  5. typecho除了首页其他大部分网页404怎么办?

    server { listen ; server_name blog.localhost; #绑定域名 index index.htm index.html index.php; #默认文件 root ...

  6. CString::Mid成员函数

    CString Mid( int nFirst, int nCount ) const; 此成员函数从此CString对象中提取一个长度为nCount个字符的子串,从nFirst(从零开始的索引)指定 ...

  7. [设计模式] javascript 之 模板方法模式

    模板方法模式说明 定义:定义方法操作的骨架,把一些具体实现延伸到子类中去,使用得具体实现不会影响到骨架的行为步骤! 说明:模式方法模式是一个继承跟复用的典型模式,该模式定义了一个抽象类,Abstrac ...

  8. 关于EXCEL学习的那些事

    由于在客服中心工作,虽然日常工作基本与数据打交道,但是周围的同事对EXCEL基本不怎么了解,仅会一些基本操作.所以基本日常我会被问到许多EXCEL相关的问题,也针对这个做了一些整理与思考. 之后无意看 ...

  9. eclipse svn快捷键

    一.打开eclipse插件安装市场,搜索svn,选择Subclipse安装 二.设置 svn ,设置快捷键, 1.windows-preference,在打开对话框输入keys过滤出keys选择 2. ...

  10. ajax访问 aspx.cs后台

    --前台$.ajax({ type: "POST", contentType: "application/json", url: "WebForm2. ...