URAL 1085 Meeting(最短路)
Meeting
Memory limit: 64 MB
friends has decided to meet in order to celebrate their victory at the
programming contest. Unfortunately, because of the tickets rise in price
there is a problem: all of them live in different parts of the city,
and they are to choose a place of meeting so that they wouldn't pay too
much for the tickets. You are to help them make the best choice.
tram routes in the city (the friends take only trams and do not go on
foot from stop to stop). For each route numbers of its stops are known.
For each friend we know an amount of money he has and whether he has a
month tram ticket. A ticket price equals 4 rubles.
are to find out a stop number, such that all of the friends might come
there and the sum of money they spend for their tramps would be minimal.
Naturally, they may change routes (it means that each one may make
changes on his way to the required stop). Note, that changing the route
one has to pay for a new ticket: the friends are honest people — they do
always pay for tickets. Everyone pays for a ticket from his own money.
No one is to leave money for the return tickets.
Input
integers defining stops numbers of the route follow. The numbers are
separated with a space. A route is defined by its stops along the line
in one direction.
The next line contains an integer K (1 ≤ K ≤ 100), that is an amount of friends. The next K
lines contain information about each of them (one line for one person):
there is a positive integer in the beginning of a line that is an
amount of money (in rubles) the person has, then a number of a stop that
he goes there from his home on foot, then 0 (if this person has no
month ticket) or 1 (if he has). The numbers in a line are separated with
a space. No one of the friends has more than 1000 rubles.
Output
a number of a stop that is a meeting
point (if there are several numbers choose the minimal one) and a total
sum of money (in rubles) that the friends has paid for their trips to
the appointed place. The numbers should be separated with a space. If
the friends won't be able to meet at one stop, output the only number 0.
Sample
input | output |
---|---|
4 3 |
4 12 |
#include <iostream>
#include <cstring>
#include <cstdio>
#include <algorithm>
#include <cmath>
#include <string>
#include <map>
#include <stack>
#include <queue>
#include <vector>
#define inf 0x3f3f3f3f
#define met(a,b) memset(a,b,sizeof a)
#define pb push_back
typedef long long ll;
using namespace std;
const int N = 1e3+;
const int M = +;
const int mod=1e9+;
int n=,m,k,tot=,t;
int head[N],vis[N],in[N],sum[N];
int s[N],dis[N][N],mo[N];
vector<int>vec,vv[N];
void Floyd(){
for(int k=;k<=n;k++){
for(int i=;i<=n;i++){
for(int j=;j<=n;j++){
if(dis[i][k]!=inf&&dis[k][j]!=inf&&dis[i][j]>dis[i][k]+dis[k][j]){
dis[i][j]=dis[i][k]+dis[k][j];
}
}
}
}return;
}
int main()
{
met(dis,inf);
for(int i=;i<N;i++)dis[i][i]=;
int u,v;
scanf("%d%d",&n,&m);
while(m--){
scanf("%d",&k);
while(k--){
scanf("%d",&u);
vec.pb(u);
}
for(int i=;i<vec.size();i++){
for(int j=i+;j<vec.size();j++){
dis[vec[i]][vec[j]]=dis[vec[j]][vec[i]]=;
}
}vec.clear();
}
Floyd();
scanf("%d",&k);
for(int i=;i<=k;i++){
scanf("%d%d%d",&mo[i],&s[i],&vis[i]);
mo[i]/=;
}
int ans=inf;
for(int i=;i<=n;i++){
int sum=;
for(int j=;j<=k;j++){
if((!vis[j]&&mo[j]<dis[i][s[j]])||dis[i][s[j]]==inf){sum=inf;break;}
if(!vis[j]&&mo[j]>=dis[i][s[j]])sum+=dis[i][s[j]];
}
if(sum==inf)continue;
if(sum<ans){
ans=sum;vv[ans].pb(i);
}
else if(sum==ans&&ans!=inf)vv[ans].pb(i);
}
if(ans!=inf){sort(vv[ans].begin(),vv[ans].end()); printf("%d %d\n",vv[ans][],ans*);}
else printf("0\n");
return ;
}
URAL 1085 Meeting(最短路)的更多相关文章
- hdu-5521 Meeting(最短路)
题目链接: Meeting Time Limit: 12000/6000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others) ...
- HDU 5521.Meeting 最短路模板题
Meeting Time Limit: 12000/6000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others)Total ...
- 2015沈阳区域赛Meeting(最短路 + 建图)
Meeting Time Limit: 12000/6000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others)Total ...
- URAL 1072 Routing(最短路)
Routing Time limit: 1.0 secondMemory limit: 64 MB There is a TCP/IP net of several computers. It mea ...
- 2015沈阳站-Meeting 最短路
http://acm.hdu.edu.cn/showproblem.php?pid=5521 题目大意:A,B两个人分别在1和n区.给出区之间有联系的图以及到达所需时间.求两个人见面最短时间以及在哪个 ...
- [hdu5521 Meeting]最短路
题意:有N个点,给定M个集合,集合Si里面的点两两之间的距离都为Ti,集合里面的所有点数之和<=1e6.有两个人分别在1和N处,求1个点使得两个人到这一点距离的最大值最小 思路:这题是裸的最短路 ...
- URAL题解二
URAL题解二 URAL 1082 题目描述:输出程序的输入数据,使得程序输出"Beutiful Vasilisa" solution 一开始只看程序的核心部分,发现是求快排的比较 ...
- Ural 1741 Communication Fiend(隐式图+虚拟节点最短路)
1741. Communication Fiend Time limit: 1.0 second Memory limit: 64 MB Kolya has returned from a summe ...
- HDU 5521 Meeting(虚拟节点+最短路)
Meeting Time Limit: 12000/6000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others) Total ...
随机推荐
- jQuery对表单元素的取值和赋值操作代码
使用常规的思路:$(“#keyword”).value 取值是取不到的,因为此时$(‘#keydord’)已经不是个element,而是个jquery对象,所以应该使用:$(“#keyword”).v ...
- Windows Azure上搭建SSTP VPN
一.服务器设置 首先,从0开始,你需要创建一个新的VM.我选择Windows Server 2012 R2,所有步骤和创建普通VM都一样,但最后在防火墙设置里一定要打开TCP 443端口: 创建完成后 ...
- windows azure中国 里面建立一个虚拟机,与虚拟机建立通信 里面部署IIS,外网访问
在windows azure中国 里面建立一个虚拟机,里面部署IIS,外网不能访问么? 外网访问的地址是给的那个DNS地址 ,比如我的是 DNS 名称 urbanairserver.cloudapp. ...
- Actioncontext之类的map嵌套,取值
假设图中最顶端的map设为Actioncontext的map,这种情况,用<s:property value=""/>或者EL表达式取值,可以用#key1.key2.k ...
- IOS UTF8中文字母数字 组合时长度截取
//计算总共字数和限制字数的Index位置 -(NSMutableArray *) unicodeLengthOfString: (NSString *) text { NSMutableArray ...
- Html.ActionLink , Url.Action
也来总结一下 以后省的忘了 都是从controller中获取到action名字返回 html.actionlink 返回的是带<a> 标签的超链接 url.action 是返回正常cont ...
- ajax 中的一些方法应用
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- “java.sql.SQLException: Value '0000-00-00' can not be represented as java.sql.Timestamp”
最近在项目中使用hibernate查询时,总报错“java.sql.SQLException: Value '0000-00-00' can not be represented as java.sq ...
- 解决办法:在指定的 DSN 中,驱动程序和应用程序之间的体系结构不匹配 问题解决 SQLSTATE=IM014
环境:64位win7,64位MySql 解决办法:32为和64位ODBC都安装上即可.
- 关于VS2015找不到WIN32的解决办法
问题: 原配的Visual Studio 2015专业版不像之前的版本,在新建项目里面是找不到Win32模板的,那么怎么才能新建Win32项目和Win32控制台应用程序呢?先看如下图所示: 解决: 1 ...