hdu1535——Invitation Cards
Invitation Cards
Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)
Total Submission(s): 2173 Accepted Submission(s): 1056
with all the necessary information and with the programme. A lot of students were hired to distribute these invitations among the people. Each student volunteer has assigned exactly one bus stop and he or she stays there the whole day and gives invitation
to people travelling by bus. A special course was taken where students learned how to influence people and what is the difference between influencing and robbery.
The transport system is very special: all lines are unidirectional and connect exactly two stops. Buses leave the originating stop with passangers each half an hour. After reaching the destination stop they return empty to the originating stop, where they wait
until the next full half an hour, e.g. X:00 or X:30, where 'X' denotes the hour. The fee for transport between two stops is given by special tables and is payable on the spot. The lines are planned in such a way, that each round trip (i.e. a journey starting
and finishing at the same stop) passes through a Central Checkpoint Stop (CCS) where each passenger has to pass a thorough check including body scan.
All the ACM student members leave the CCS each morning. Each volunteer is to move to one predetermined stop to invite passengers. There are as many volunteers as stops. At the end of the day, all students travel back to CCS. You are to write a computer program
that helps ACM to minimize the amount of money to pay every day for the transport of their employees.
including CCS and Q the number of bus lines. Then there are Q lines, each describing one bus line. Each of the lines contains exactly three numbers - the originating stop, the destination stop and the price. The CCS is designated by number 1. Prices are positive
integers the sum of which is smaller than 1000000000. You can also assume it is always possible to get from any stop to any other stop.
2
2 2
1 2 13
2 1 33
4 6
1 2 10
2 1 60
1 3 20
3 4 10
2 4 5
4 1 50
46
210
pid=1217" target="_blank">1217
1531 1548 1546最短路, 先按题意建图然后求出最短路,然后建立反图求出最短路,最后把权值加起来即可了
#include <map>
#include <set>
#include <list>
#include <stack>
#include <queue>
#include <vector>
#include <cmath>
#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm> using namespace std; const int N = 1000010;
const int M = 1000010;
const int inf = 0x3f3f3f3f;
typedef pair<int, int> pi; struct node
{
int weight;
int next;
int to;
}edge[M], edge2[M]; int head[N], head2[N];
int tot1, tot2;
int dist[N]; void addedge(int from, int to, int weight)
{
edge[tot1].weight = weight;
edge[tot1].to = to;
edge[tot1].next = head[from];
head[from] = tot1++;
} void readdedge(int from, int to, int weight)
{
edge2[tot2].weight = weight;
edge2[tot2].to = to;
edge2[tot2].next = head2[from];
head2[from] = tot2++;
} void dijkstra(int v0)
{
memset ( dist, inf, sizeof(dist) );
dist[v0] = 0;
priority_queue< pi, vector<pi>, greater<pi> > qu;
while ( !qu.empty() )
{
qu.pop();
}
qu.push(make_pair( dist[v0], v0) );
while ( !qu.empty() )
{
pi tmp = qu.top();
int u = tmp.second;
int d = tmp.first;
qu.pop();
for (int i = head[u]; ~i; i = edge[i].next)
{
int v = edge[i].to;
if (dist[v] > d + edge[i].weight)
{
dist[v] = d + edge[i].weight;
qu.push( make_pair(dist[v], v) );
}
}
}
} void dijkstra2(int v0)
{
memset ( dist, inf, sizeof(dist) );
dist[v0] = 0;
priority_queue< pi, vector<pi>, greater<pi> > qu;
while ( !qu.empty() )
{
qu.pop();
}
qu.push(make_pair( dist[v0], v0) );
while ( !qu.empty() )
{
pi tmp = qu.top();
int u = tmp.second;
int d = tmp.first;
qu.pop();
for (int i = head2[u]; ~i; i = edge2[i].next)
{
int v = edge2[i].to;
if (dist[v] > d + edge2[i].weight)
{
dist[v] = d + edge2[i].weight;
qu.push( make_pair(dist[v], v) );
}
}
}
} int main()
{
int t;
int n, m, u, v, w;
scanf("%d", &t);
while (t--)
{
scanf("%d%d", &n, &m);
memset ( head, -1, sizeof(head) );
memset (head2, -1, sizeof(head2) );
tot1 = tot2 = 0;
for (int i = 0; i < m; ++i)
{
scanf("%d%d%d", &u, &v, &w);
addedge(u, v, w);
readdedge(v, u, w);
}
__int64 ans = 0;
dijkstra(1);
for (int i = 2; i <= n; ++i)
{
ans += dist[i];
}
dijkstra2(1);
for (int i = 2; i <= n; ++i)
{
ans += dist[i];
}
printf("%I64d\n", ans);
}
return 0;
}
hdu1535——Invitation Cards的更多相关文章
- HDU1535——Invitation Cards(最短路径:SPAF算法+dijkstra算法)
Invitation Cards DescriptionIn the age of television, not many people attend theater performances. A ...
- hdu1535 Invitation Cards 最短路
有一张图,若干人要从不同的点到同一个中间点,再返回,求总费用最小 中间点到各个点最小费用是普通的最短路 各个点到中间点最小费用其实就是将所有路径反向建边之后中间点到各个点的最小费用,同样用最短路就可以 ...
- POJ 1511 Invitation Cards / UVA 721 Invitation Cards / SPOJ Invitation / UVAlive Invitation Cards / SCU 1132 Invitation Cards / ZOJ 2008 Invitation Cards / HDU 1535 (图论,最短路径)
POJ 1511 Invitation Cards / UVA 721 Invitation Cards / SPOJ Invitation / UVAlive Invitation Cards / ...
- HDU 1535 Invitation Cards(最短路 spfa)
题目链接: 传送门 Invitation Cards Time Limit: 5000MS Memory Limit: 32768 K Description In the age of te ...
- POJ 1511 Invitation Cards (spfa的邻接表)
Invitation Cards Time Limit : 16000/8000ms (Java/Other) Memory Limit : 524288/262144K (Java/Other) ...
- POJ 1511 Invitation Cards (最短路spfa)
Invitation Cards 题目链接: http://acm.hust.edu.cn/vjudge/contest/122685#problem/J Description In the age ...
- Poj 1511 Invitation Cards(spfa)
Invitation Cards Time Limit: 8000MS Memory Limit: 262144K Total Submissions: 24460 Accepted: 8091 De ...
- Invitation Cards(邻接表+逆向建图+SPFA)
Time Limit: 8000MS Memory Limit: 262144K Total Submissions: 17538 Accepted: 5721 Description In ...
- [POJ] 1511 Invitation Cards
Invitation Cards Time Limit: 8000MS Memory Limit: 262144K Total Submissions: 18198 Accepted: 596 ...
随机推荐
- 10.28 HTML DOM
- python 设计模式之代理模式
代理模式在一般形式上是一个类函数接口.代理可以是这些事物的接口:网络连接,存储的对象,文件,或者其他资源(昂贵的或者不容易复制的). 一个众所周知的代理模式的例子就是引用计数的指针对象. 代理模式是结 ...
- Palindrome Permutation -- LeetCode
Given a string, determine if a permutation of the string could form a palindrome. For example," ...
- luogu P1195 口袋的天空
题目背景 小杉坐在教室里,透过口袋一样的窗户看口袋一样的天空. 有很多云飘在那里,看起来很漂亮,小杉想摘下那样美的几朵云,做成棉花糖. 题目描述 给你云朵的个数N,再给你M个关系,表示哪些云朵可以连在 ...
- 洛谷 P4212 外太空旅行
题目描述 在人类的触角伸向银河系的边缘之际,普通人上太空旅行已经变得稀松平常了.某理科试验班有n个人,现在班主任要从中选出尽量多的人去参加一次太空旅行活动. 可是n名同学并不是和平相处的.有的人,比如 ...
- DNX 概览
来源https://docs.asp.net/en/latest/dnx/overview.html .NET Execution Environment是什么 .NET Execution Envi ...
- The newly created daemon process has a different context than expected
Error: The newly created daemon process has a different context than expected. It won't be possible ...
- 【Hadoop】Hadoop MR 如何实现倒排索引算法?
1.概念.方案 2.代码示例 InverseIndexOne package com.ares.hadoop.mr.inverseindex; import java.io.IOException; ...
- 通过脚本发送zabbix邮件报警
zabbix原生的报警媒介类型中,邮件报警是我们常用的方式.当我们在CentOS6上面安装zabbix3.0并配置邮件报警的时候,在邮件配置正确的前提下,不管触发器如何触发,邮件总是发送不出去,但是在 ...
- 【重点突破】—— 百度地图在React单页面应用中的使用
前言:百度地图是网页中使用地图的常用第三方工具,这里结合React项目中学到的应用场景总结一些使用要点. 一.在网页中嵌入百度地图 搜百度地图开放平台,注册百度开发者账号 控制台:查看应用.创建应用( ...