poj3268 最短路
//Accepted 1124 KB 0 ms #include <cstdio> #include <cstring> #include <iostream> #include <queue> #include <cmath> #include <algorithm> using namespace std; /** * This is a documentation comment block * 如果有一天你坚持不下去了,就想想你为什么走到这儿! * @authr songt */ ; ; const long long inf = 100000000000000LL; struct node { int u,v,c; node() { } node(int u,int v,int c):u(u),v(v),c(c) { } }p[imax_e],rp[imax_e]; int head[imax_n]; int next[imax_e]; int rhead[imax_n]; int rnext[imax_e]; int e; int re; long long dis[imax_n]; long long cost[imax_n]; bool vis[imax_n]; int n,m,x; void init() { e=; re=; memset(head,-,sizeof(head)); memset(next,-,sizeof(next)); memset(rhead,-,sizeof(rhead)); memset(rnext,-,sizeof(rnext)); } void addEdge(int u,int v,int c) { p[e]=node(u,v,c); next[e]=head[u]; head[u]=e++; } void raddEdge(int u,int v,int c) { rp[re]=node(u,v,c); rnext[re]=rhead[u]; rhead[u]=re++; } queue<int > q; int cnt[imax_n]; bool relax(int u,int v,int c) { if (dis[v]>dis[u]+c) { dis[v]=dis[u]+c; return true; } return false; } bool spfa(int src,int h[],int nt[],node p[]) { memset(cnt,,sizeof(cnt)); while (!q.empty()) q.pop(); memset(vis,,sizeof(vis)); q.push(src); vis[src]=true; ;i<=n;i++) dis[i]=inf; dis[src]=; while (!q.empty()) { int pre=q.front(); q.pop(); vis[pre]=false; ;i=nt[i]) { if (relax(pre,p[i].v,p[i].c) && !vis[p[i].v]) { if ((++cnt[p[i].v])>n) return false; vis[p[i].v]=true; q.push(p[i].v); } } } return true; } long long slove() { int u,v,c; init(); ;i<=m;i++) { scanf("%d%d%d",&u,&v,&c); addEdge(u,v,c); raddEdge(v,u,c); } ; spfa(x,head,next,p); ;i<=n;i++) { cost[i]=dis[i]; //printf("dis[%d]=%d\n",i,dis[i]); } spfa(x,rhead,rnext,rp); ;i<=n;i++) { //printf("cost[%d]=%d\n",i,dis[i]); if (cost[i]+dis[i]>ans) ans=cost[i]+dis[i]; } return ans; } int main() { while (scanf("%d%d%d",&n,&m,&x)!=EOF) { __int64 ans=slove(); printf("%I64d\n",ans); } ; }
poj3268 最短路的更多相关文章
- poj-3268最短路
title: poj-3268最短路 date: 2018-10-13 15:54:34 tags: acm 刷题 categories: ACM-最短路 概述 这是一道最短路的模板题,,,不过虽然是 ...
- 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 ...
随机推荐
- smarty中增加类似foreach的功能自动加载数据方法
第一步:在Smarty_Compiler.class.php的_compile_tag函数中增加: 复制代码 代码如下: //加载数据的开始标签case 'load': $this->_push ...
- [已解决] java.net.InetAddress.getHostName() 阻塞问题
在学习java nio的过程中发现某些情况下使用该方法会导致程序阻塞,(情况:服务器,Linux:客户端,WIN10) java.net.InetAddress.getHostName() 阻塞情况如 ...
- 三联运算&&字节码转换
三联运算 if 1 == 1: name = 'alex'else: name = 'sb' name = 'alex' if 1 == 1 else 'sb lambda f2 = lambda a ...
- ubuntu下gcc、g++和gfortran版本切换
第一步:用 which gcc.which g++和which gfortran查看位置,我的显示结果为:/usr/bin/gcc:/usr/bin/g++和/usr/bin/gfortran 第二部 ...
- [转]关于NSAutoreleasePool' is unavailable: not available in automatic reference counting mode的解决方法
转载地址:http://blog.csdn.net/xbl1986/article/details/7216668 Xcode是Version 4.2 Build 4D151a 根据Objective ...
- ggplot2.multiplot:将多个图形使用GGPLOT2在同一页上
一页多图 介绍 ggplot2.multiplot是一个易于使用的功能,将多个图形在同一页面上使用R统计软件和GGPLOT2绘图方法.这个功能是从easyGgplot2包. 安装并加载easyGgpl ...
- Python数据分析之pandas学习
Python中的pandas模块进行数据分析. 接下来pandas介绍中将学习到如下8块内容:1.数据结构简介:DataFrame和Series2.数据索引index3.利用pandas查询数据4.利 ...
- Log4Net 配置SQL2008数据库 并传入自定义业务对象
最近根据业务需要,俺们老大要求我们了解一个c#的组件——Log4Net 这玩意儿从来没弄过,感觉挺深奥的,结果经过2天的研究,还算小有所成吧,基本思路已经清晰明了了,不过过程中遇到一些很奇葩的问题,和 ...
- 运维神器Chef简单介绍和安装笔记
首先大概解释一下Chef Chef有三个重要的概念:(如上图所示) 它们的合作关系大致是这样的, Workstation把资源或者说是一些要被运行的命令上传到Chef-Server上, Nodes自动 ...
- 程序设计入门—Java语言 第五周编程题 2井字棋(5分)
2 井字棋(5分) 题目内容: 嗯,就是视频里说的那个井字棋.视频里说了它的基本思路,现在,需要你把它全部实现出来啦. 你的程序先要读入一个整数n,范围是[3,100],这表示井字棋棋盘的边长.比如n ...