[TYVJ] P1031 热浪
热浪
FJ已经研究过可以把牛奶从威斯康星运送到德克萨斯州的路线。这些路线包括起始点和终点先一共经过T (1 <= T <= 2,500)个城镇,方便地标号為1到T。除了起点和终点外地每个城镇由两条双向道路连向至少两个其它地城镇。每条道路有一个通过费用(包括油费,过路费等等)。考虑这个有7个城镇的地图。城镇5是奶源,城镇4是终点(括号内的数字是道路的通过费用)。
[1]----1---[3]-
/ \
[3]---6---[4]---3--[3]--4
/ / /|
5 --[3]-- --[2]- |
\ / / |
[5]---7---[2]--2---[3]---
| /
[1]------
经过路线5-6-3-4总共需要花费3 (5->6) + 4 (6->3) + 3 (3->4) = 10的费用。
给定一个地图,包含C (1 <= C <= 6,200)条直接连接2个城镇的道路。每条道路由道路的起点Rs,终点Re (1 <= Rs <= T; 1 <= Re <= T),和花费(1 <= Ci <= 1,000)组成。求从起始的城镇Ts (1 <= Ts <= T)到终点的城镇Te(1 <= Te <= T)最小的总费用。
* 第2到第C+1行: 第i+1行描述第i条道路。有3个由空格隔开的整数: Rs, Re和Ci
——译者注)数据保证至少存在一条道路。
7 11 5 4
2 4 2
1 4 3
7 2 2
3 4 3
5 7 5
7 3 3
6 1 1
6 3 4
2 4 3
5 6 3
7 2 1
样例输出 SampleOutput [复制数据]
7
#include<stdio.h>
#include<stdbool.h>
#include<limits.h>
int
a[],b[],c[],q[],d[],f[];
bool
vis[]={false};
int
x,y,z,sum,n,m,i,s,t; void
qsort(int head, int tail)
{
int
i,j,x,y,z;
i=head;j=tail;
x=a[head];y=b[head];z=c[head];
while(i<j)
{
while((i<j)&&(a[j]>=x)) j--;
a[i]=a[j];b[i]=b[j];c[i]=c[j];
while((i<j)&&(a[i]<=x)) i++;
a[j]=a[i];b[j]=b[i];c[j]=c[i];
}
a[i]=x;b[i]=y;c[i]=z;
if (head<(i-)) qsort(head,i-);
if ((i+)<tail) qsort(i+,tail);
} void
spfa(int s)
{
int
i,k,head,tail;
for (i=;i<=n;i++)
d[i]=INT_MAX >> ;
d[s]=;
head=;tail=;
q[]=s;
vis[s]=true; while (head<tail)
{
head=head%+;
k=q[head];
for (i=f[k];i<=(f[k+]-);i++)
if ((d[k]+c[i])<d[b[i]])
{
d[b[i]]=d[k]+c[i];
if (vis[b[i]]==false)
{
tail=tail%+;
q[tail]=b[i];
vis[b[i]]=true;
}
}
vis[k]=false;
}
} int
main(void)
{
scanf("%d%d%d%d\n",&n,&m,&s,&t);
sum=;
for(i=;i<=m;i++)
{
scanf("%d%d%d",&x,&y,&z);
sum++;
a[sum]=x;
b[sum]=y;
c[sum]=z;
sum++;
b[sum]=x;
a[sum]=y;
c[sum]=z;
}
m=m*;
qsort(,m);
for(i=;i<=m;i++)
if (f[a[i]]==) f[a[i]]=i;
f[n+]=m+;
for (i=n;i>=;i--)
if (f[i]==) f[i]=f[i+];
spfa(s);
printf("%d\n",d[t]);
return ;
}
[TYVJ] P1031 热浪的更多相关文章
- TYVJ P1031 热浪 Label:dijkstra 最短路
背景 USACO OCT09 9TH 描述 德克萨斯纯朴的民眾们这个夏天正在遭受巨大的热浪!!!他们的德克萨斯长角牛吃起来不错,可是他们并不是很擅长生產富含奶油的乳製品.Farmer John此时以先 ...
- tyvj 1031 热浪 最短路
热浪 Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://tyvj.cn/p/1031 Description 德克萨斯纯朴的民眾们这个夏天正在遭受 ...
- Dijkstra TYVJ 1031热浪 Dijkstra测试数据
测试用邻接表写得Dijkstra 代码写得很烂. 描述 德克萨斯纯朴的民眾们这个夏天正在遭受巨大的热浪!!!他们的德克萨斯长角牛吃起来不错,可是他们并不是很擅长生產富含奶油的乳製品.Farmer Jo ...
- [codevs1557]热浪
本题地址:http://www.luogu.org/problem/show?pid=1339 http://codevs.cn/problem/1557/ http://www.tyvj.cn/p/ ...
- [BZOJ3223]Tyvj 1729 文艺平衡树
[BZOJ3223]Tyvj 1729 文艺平衡树 试题描述 您需要写一种数据结构(可参考题目标题),来维护一个有序数列,其中需要提供以下操作:翻转一个区间,例如原有序序列是5 4 3 2 1,翻转区 ...
- [BZOJ3224]Tyvj 1728 普通平衡树
[BZOJ3224]Tyvj 1728 普通平衡树 试题描述 您需要写一种数据结构(可参考题目标题),来维护一些数,其中需要提供以下操作:1. 插入x数2. 删除x数(若有多个相同的数,因只删除一个) ...
- 热浪[TYVJ1031]
描述 德克萨斯纯朴的民眾们这个夏天正在遭受巨大的热浪!!!他们的德克萨斯长角牛吃起来不错,可是他们并不是很擅长生產富含奶油的乳製品.Farmer John此时以先天下之忧而忧,后天下之乐而乐的精神,身 ...
- BZOJ3223: Tyvj 1729 文艺平衡树 [splay]
3223: Tyvj 1729 文艺平衡树 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 3595 Solved: 2029[Submit][Sta ...
- BZOJ 3224: Tyvj 1728 普通平衡树
3224: Tyvj 1728 普通平衡树 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 9629 Solved: 4091[Submit][Sta ...
随机推荐
- Lintcode--001(比较字符串)
比较两个字符串A和B,确定A中是否包含B中所有的字符.字符串A和B中的字符都是 大写字母 注意事项 在 A 中出现的 B 字符串里的字符不需要连续或者有序. 您在真实的面试中是否遇到过这个题? Yes ...
- 神经网络及其简单实现(MATLAB)
转自:http://www.cnblogs.com/heaad/archive/2011/03/07/1976443.html 第0节.引例 本文以Fisher的Iris数据集作为神经网络程序的测试 ...
- Expression构建DataTable to Entity 映射委托
namespace Echofool.Utility.Common { using System; using System.Collections.Generic; using System.Dat ...
- mysql创建utf-8字符集数据库
CREATE DATABASE db_name DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; CREATE DATABASE 的语法:CREA ...
- SQL之用户自定义函数
关于SQL Server用户自定义的函数,有标量函数.表值函数(内联表值函数.多语句表值函数)两种. 题外话,可能有部分朋友不知道SQL Serve用户自定义的函数应该是写在哪里,这里简单提示一下,在 ...
- Decimal
Description 任意一个分数都是有理数,对于任意一个有限小数,我们都可以表示成一个无限循环小数的形式(在其末尾添加0),对于任意一个无限循环小数都可以转化成一个分数.现在你的任务就是将任意一个 ...
- jQuery的ajax jsonp跨域请求
了解:ajax.json.jsonp.“跨域”的关系 要弄清楚以上ajax.json.jsonp概念的关系,我觉得弄清楚ajax是“干什么的”,“怎么实现的”,“有什么问题”,“如果解决存在的问题”等 ...
- Unity怎样在Editor下运行协程(coroutine)
在处理Unity5新的AssetBundle的时候,我有一个需求,须要在Editor下(比方一个menuitem的处理函数中,游戏没有执行.也没有MonoBehaviour)载入AssetBundle ...
- 设计模式之Application Programs and Toolkits
Application Programs 应用程序 If you're building an application programsuch as a document editor or spre ...
- Oracle11g环境设置-windows环境
新建环境变量(系统变量),变量名:ORACLE_HOME 变量值:E:\app\Administrator\product\11.2.0\dbhome_1 新建环境变量(系统变量),变量名:ORACL ...