九度 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 题目描述: 小虎是游戏中的一个国王,在他管理的国家中发行了很多不同面额的纸币,用这些纸币进行任意的组合可以在 ...
随机推荐
- Bootstrap3.0学习第二十二轮(JavaScript插件——弹出框)
详情请查看http://aehyok.com/Blog/Detail/28.html 个人网站地址:aehyok.com QQ 技术群号:206058845,验证码为:aehyok 本文文章链接:ht ...
- AngularJS开发指南6:AngularJS表单详解
表单控件(input, select, textarea )是用来获取用户输入的.表单则是一组有联系的表单控件的集合. 用户能通过表单和表单控件提供验证的服务,知道自己的输入是否合法.这样能让用户交互 ...
- WebService学习笔记一
01——Schema约束复习 1.1 schema约束 几个重要知识: 1.namespace 相当于schema文件的id 2.targetNamespace属性 用来指定schema文件的name ...
- 思甜雅--关于qq的NABCD模型分析
个人连接:http://www.cnblogs.com/xiaoliulang/ 关于QQ的NABCD模型 N--Need 随着电脑的普及,人们在网络上进行交流的时间越来越多,由于现有的交流工具还不是 ...
- Daily Scrum – 1/7
Meeting Minutes 搞定了一个bug,单词面板滚动条的bug: 在电脑屏幕上的屏幕适配有了新思路: Progress part 组员 今日工作 Time (h) 明日计划 Time ( ...
- MVC学习Day01
~~~~ =============================================================================================== ...
- jquery操作滚动条滚动到指定位置
<html><head><script type="text/javascript" src="/jquery/jquery.js" ...
- Oracle定时执行存储过程
首先查看 SQL> show parameter job NAME TYPE VALUE-------------- ...
- TortoiseSVN客户端如何更改新的URL
问题: 我们的服务器换了新的URL地址,这时候我们本地的SVN访问帐号和地址就要重新定义了. 解决步骤: 1:重新定义SVN的URL,右键(TortoiseSVN) → Relocate → 输入你新 ...
- input使用javascript限制输入带小数的数字
如题,网上找了很多都不太好实现.我的实现需求如下: 1.如果输入数字不带小数点那么自动加入两位小数,如:输入5,替换为5.00 2.输入5.,替换为5.00 3.输入5.1,替换为5.10 4.输入非 ...