九度 OJ1008 hdu 3790
#include<stdio.h>
#include<string.h>
struct node
{
int d;
int p; }g[][];
#define inf 0x3f3f3f3f
int lowcost[],price[],used[];
int s,t;
void dijstra(int n,int a)
{
int i,j,k,min;
memset(used,,sizeof(used));
for(i=;i<=n;i++)
{
lowcost[i]=g[i][a].d;
price[i]=g[i][a].p;
}
used[a]=;
for(i=;i<=n;i++)
{
min=inf;
j=a;
for(k=;k<=n;k++)
{
if(lowcost[k]<min&&!used[k])
{
min=lowcost[k];
j=k;
}
}
used[j]=;
for(k=;k<=n;k++)
{
if(lowcost[j]+g[k][j].d<lowcost[k]&&!used[k])
{
lowcost[k]=lowcost[j]+g[k][j].d;
price[k]=price[j]+g[k][j].p;
}
else if(lowcost[j]+g[k][j].d==lowcost[k]&&!used[k])
{
if(price[j]+g[k][j].p<price[k])
price[k]=price[j]+g[k][j].p;
} }
}
printf("%d %d\n",lowcost[t],price[t]);
} int main()
{
int n,m,i,j,a,b,d,p;
while(scanf("%d %d",&n,&m)!=EOF&&n!=||m!=)
{
for(i=;i<=n;i++)
{
for(j=;j<=n;j++)
{
g[i][j].d=inf;
g[i][j].p=inf;
}
g[i][i].p=g[i][i].d=;
}
for(i=;i<m;i++)
{
scanf("%d %d %d %d",&a,&b,&d,&p);
if(g[a][b].d>d)
{
g[a][b].d=d;
g[a][b].p=p;
g[b][a].d=d;
g[b][a].p=p;
}
else if(g[a][b].d==d&&g[a][b].p>p)
{
g[a][b].p=p;
g[b][a].p=p;
}
}
scanf("%d %d",&s,&t);
dijstra(n,s);
}
return ;
}
记得考虑重便哦,和初始化尽量大,否则会WA;
九度 OJ1008 hdu 3790的更多相关文章
- 九度OJ1008
这道题其实就是一个简单的Dijkstra变形,只是要考虑重边的情况. 当在更新图中点到起点的距离时,将花费p也计算在内:如果长度与之前计算的值相等,则再考虑此时花费p是否会更少,是的话则仍然要更新最短 ...
- hdu 1284 关于钱币兑换的一系列问题 九度oj 题目1408:吃豆机器人
钱币兑换问题 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Sub ...
- ACM: HDU 3790 最短路径问题-Dijkstra算法
HDU 3790 最短路径问题 Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Des ...
- 九度oj 题目1087:约数的个数
题目链接:http://ac.jobdu.com/problem.php?pid=1087 题目描述: 输入n个整数,依次输出每个数的约数的个数 输入: 输入的第一行为N,即数组的个数(N<=1 ...
- 九度OJ 1502 最大值最小化(JAVA)
题目1502:最大值最小化(二分答案) 九度OJ Java import java.util.Scanner; public class Main { public static int max(in ...
- 九度OJ,题目1089:数字反转
题目描述: 12翻一下是21,34翻一下是43,12+34是46,46翻一下是64,现在又任意两个正整数,问他们两个数反转的和是否等于两个数的和的反转. 输入: 第一行一个正整数表示测试数据的个数n. ...
- 九度 Online Judge 之《剑指 Offer》一书相关题目解答
前段时间准备华为机试,正好之前看了一遍<剑指 Offer>,就在九度 Online Judge 上刷了书中的题目,使用的语言为 C++:只有3题没做,其他的都做了. 正如 Linus To ...
- 九度OJ 1500 出操队形 -- 动态规划(最长上升子序列)
题目地址:http://ac.jobdu.com/problem.php?pid=1500 题目描述: 在读高中的时候,每天早上学校都要组织全校的师生进行跑步来锻炼身体,每当出操令吹响时,大家就开始往 ...
- 九度OJ 1531 货币面值(网易游戏2013年校园招聘笔试题) -- 动态规划
题目地址:http://ac.jobdu.com/problem.php?pid=1531 题目描述: 小虎是游戏中的一个国王,在他管理的国家中发行了很多不同面额的纸币,用这些纸币进行任意的组合可以在 ...
随机推荐
- angular学习-入门基础
angular .caret,.dropup>.btn>.caret{border-top-color:#000!important}.label{border:1px solid #00 ...
- Missing message for key "err1" in bundle "(default bundle)" for locale zh_CN
这个问题是: 你的使用了ApplicationResources_zh_CN.properties文件没有找到. 1.是struts-config.xml中的<message-resources ...
- html5_canvas-记忆力卡片游戏
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- 【poj3020】 Antenna Placement
http://poj.org/problem?id=3020 (题目链接) 题意 给出一个矩阵,矩阵中只有‘*’和‘o’两种字符,每个‘*’可以向它上下左右四个方位上同为‘*’的点连一条边,求最少需要 ...
- 【bzoj1046】 HAOI2007—上升序列
http://www.lydsy.com/JudgeOnline/problem.php?id=1046 (题目链接) 题意 给出一个数列,求数列中长度为L的下标字典序最小的上升子序列. Soluti ...
- [转]ACM进阶计划
ACM进阶计划 大学期间,ACM队队员必须要学好的课程有: lC/C++两种语言 l高等数学 l线性代数 l数据结构 l离散数学 l数据库原理 l操作系统原理 l计算机组成原理 l人工智能 l编译原 ...
- 取出list的数组元素
java中将list中的一维数组中的元素取出需要2步.第一步:获取list的迭代器,将数组从迭代器中遍历取出:第二部:对取出的数组进行遍历,取出数组中存储的元素.java的list集合中只能存储引用型 ...
- ajax提交特殊字符的处理
前台页面用encodeURIComponent()这个js方法 rule=encodeURIComponent(rule);//对特殊字符编码 后台页面 java.net.URLDecoder url ...
- vim YouCompleteMe
http://www.ithao123.cn/content-1906969.html http://www.it165.net/os/html/201503/12190.html
- Core Animation编程指南
本文是<Core Animation Programming Guide>2013-01-28更新版本的译文.本文略去了原文中关于OS X平台上Core Animation相关内容.因为原 ...