poj3268(最短路)
题目连接:http://poj.org/problem?id=3268
题意:给出n个点和m条单向边,现在所有牛要到牛x那里去参加聚会,并且所有牛参加聚会后还要回来,给你牛x,除了牛x之外的牛,他们都有一个参加聚会并且回来的最短时间,从这些最短时间里找出一个最大值输出。
分析:先跑一遍dij求出x到其他点的最短距离,再反向建图,求出各点到达x的最短距离,然后枚举一下即可。
#include <cstdio>
#include <cstring>
#include <string>
#include <cmath>
#include <iostream>
#include <algorithm>
#include <queue>
#include <cstdlib>
#include <stack>
#include <vector>
#include <set>
#include <map>
#define LL long long
#define mod 100000000
#define inf 0x3f3f3f3f
#define eps 1e-9
#define N 1010
#define FILL(a,b) (memset(a,b,sizeof(a)))
#define lson l,m,rt<<1
#define rson m+1,r,rt<<1|1
#define PII pair<int,int>
using namespace std;
struct node
{
int u,v,w;
node(){}
node(int v,int w):v(v),w(w){}
bool operator<(const node &a)const
{
return w>a.w;
}
}e[N*];
int dp1[N],dp2[N],vis[N],n,m,x;
vector<node>g[N];
void dij(int dp[])
{
priority_queue<node>que;
while(!que.empty())que.pop();
for(int i=;i<=n;i++)dp[i]=inf;
FILL(vis,);
node cur,nxt;
cur.v=x;cur.w=;
dp[x]=;
que.push(cur);
while(!que.empty())
{
cur=que.top();que.pop();
int u=cur.v;
if(vis[u])continue;
vis[u]=;
for(int i=,sz=g[u].size();i<sz;i++)
{
nxt=g[u][i];
int v=nxt.v,w=nxt.w;
if(dp[u]+w<dp[v])
{
dp[v]=dp[u]+w;
que.push(node(v,dp[v]));
}
}
}
}
int main()
{
while(scanf("%d%d%d",&n,&m,&x)>)
{
for(int i=;i<=n;i++)g[i].clear();
for(int i=;i<=m;i++)
{
scanf("%d%d%d",&e[i].u,&e[i].v,&e[i].w);
g[e[i].u].push_back(node(e[i].v,e[i].w));
}
dij(dp1);
for(int i=;i<=n;i++)g[i].clear();
for(int i=;i<=m;i++)
{
g[e[i].v].push_back(node(e[i].u,e[i].w));
}
dij(dp2);
int ans=;
for(int i=;i<=n;i++)ans=max(ans,dp1[i]+dp2[i]);
printf("%d\n",ans);
}
}
poj3268(最短路)的更多相关文章
- poj-3268最短路
title: poj-3268最短路 date: 2018-10-13 15:54:34 tags: acm 刷题 categories: ACM-最短路 概述 这是一道最短路的模板题,,,不过虽然是 ...
- poj3268 最短路
//Accepted 1124 KB 0 ms #include <cstdio> #include <cstring> #include <iostream> # ...
- POJ-3268(来回最短路+dijkstra算法)
Silver Cow Party POJ-3268 这题也是最短路的模板题,只不过需要进行两次求解最短路,因为涉及到来回的最短路之和. 该题的求解关键是:求解B-A的最短路时,可以看做A是起点,这就和 ...
- POJ3268 Silver Cow Party Dijkstra最短路
Description One cow from each of N farms (1 ≤ N ≤ 1000) conveniently numbered 1..N is going to atten ...
- POJ-3268.SilverCowParty.(最短路 + 图的转置)
本题思路:对原图和原图的逆图分别用一次最短路,找出最大值即可. 一开始是我是对每个顶点spfa搜了一波,结果判题时间巨长,还好这个题的数据量不是很大,所以就用了另一种思路. 参考代码:spfa单结点爆 ...
- (最短路)Silver Cow Party --POJ--3268
题目链接: http://poj.org/problem?id=3268 题意: 先求出所有牛到x的最短路,再求出x到所有牛的最短路,两者相加取最大值(单向图)(可以用迪杰斯特拉,SPFA) 迪杰斯特 ...
- POJ3268 Silver Cow Party【最短路】
One cow from each of N farms (1 ≤ N ≤ 1000) conveniently numbered 1..N is going to attend the big co ...
- 来回最短路POJ3268
这个题得主要考点在于给你的图是去了再回来得有向图,如何模块化解决呢就是转变图的方向,我们根据初始得放心求出每个点到x得最短路,然后转变所有路得方向再求出所有点到x得最短路,最后一相加就是最后的来回了~ ...
- POJ3268【最短路】
题意: n个点m条有向边,每个点有一头牛,每头牛会沿着各自的最短路先到x点,然后又从x点到各自的点,求这些牛中间最短路程最大的牛. 思路: 从x点到各点的最短路不用说了,裸的最短路: 但是从所有点到x ...
- POJ3268 Silver Cow Party —— 最短路
题目链接:http://poj.org/problem?id=3268 Silver Cow Party Time Limit: 2000MS Memory Limit: 65536K Total ...
随机推荐
- c#引用web.config中的ConnectionString
c#引用web.config中的ConnectionString <connectionStrings> <add name="JKXTConnectionString& ...
- 微软vs2015先行,Visual Studio 2015正式版离线iso及在线下载(附key)附带百度云盘地址
win10正式版发布之前我们迎来了vs2015正式版,迫不及待要下载朋友可以看看 Visual Studio Community 2015简体中文版(社区版,针对个人免费): 在线安装exe:http ...
- ASP.NET - URL中参数加密解密操作
效果: 代码: using System; using System.Text; using System.IO; using System.Security.Cryptography; public ...
- 运行tomcat6w.exe ,提示 指定的服务未安装 unable to open the service 'tomcat66'
错误:运行tomcat6w.exe ,提示 指定的服务未安装 unable to open the service 'tomcat6'(我用的是官网下载的解压版) 解决方法: 打开命令行提示符窗口=& ...
- [Unity3D]Unity3D游戏开发之《愤慨的小鸟》弹弓实现
各位朋友,大家晚上好, 我是秦元培.欢迎大家关注我的博客,我的博客地址是blog.csdn.net/qinyuanpei.今天我们来做一个高端大气上档次的东西. 我相信大家都玩过一款叫做<愤慨的 ...
- Ajax - 在函数中使用Ajax怎么使用返回值 - Ajax赋值给全局变量异常的解决方法
要使用异步操作: async : false,//取消异步操作 //添加节点函数 function InsertNode(nodenum, nodename, type) { var returnv ...
- 改变TPageControl的活动标签颜色
设置PageControl的owndraw属性为TRUE. procedure TForm1.pgc1DrawTab(Control: TCustomTabControl; TabIndex: Int ...
- Qt Style Sheets Examples(QT真是有很全的文档)
http://doc.qt.io/qt-5/stylesheet-examples.html http://doc.qt.io/qt-4.8/stylesheet.html
- c# in depth之泛型的实现
1.默认值表达式 如果已经明确了要处理的类型,也就知道了它的“默认”值.不知道要引用的类型,就不能直接指定默认值.不能使用null,因为它可能不是一个引用类型,不能使用0,因为它可能不是数值类型.虽然 ...
- android 5.0新特性
Android Lollipop 面向开发人员的主要功能 Material Design 设计 注重性能 通知 以大屏幕呈现 以文档为中心 连接性能再上一级 高性能图形 音频处理功能更强 摄像头和视频 ...