【t018】派对
Time Limit: 1 second
Memory Limit: 256 MB
【问题描述】
N头牛要去参加一场在编号为X(1≤X≤n)的牛的农场举行的派对(1≤N≤1000),有M(1≤M≤100000)条有向道路,每条路长ti(1≤ti≤100);
每头牛都必须参加完派对后回到家,每头牛都会选择最短路径,求这N头牛的最短路径(一个来回)中最长的一条的长度。
特别提醒:可能有权值不同的重边。
【输入格式】
第一行:N,M,X;
第二~M+1行:Ai,Bi,Ti,表示有一条从Ai到Bi的路,长度为Ti
【输出格式】
最长最短路的长度。
【输入样例1】
4 8 2
1 2 4
1 3 2
1 4 7
2 1 1
2 3 5
3 1 2
3 4 4
4 2 3
【输出样例1】
10

【题目链接】:http://noi.qz5z.com/viewtask.asp?id=t018
【题意】
中文题
【题解】
在反图和正图上各自跑一遍spfa;
求出x点到其他点的最短路;
正图和反图加起来就是这个人到x再回家的最短路了;
枚举取最大值就好;
【完整代码】
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <cmath>
#include <queue>
using namespace std;
#define lson l,m,rt<<1
#define rson m+1,r,rt<<1|1
#define LL long long
#define rep1(i,a,b) for (int i = a;i <= b;i++)
#define rep2(i,a,b) for (int i = a;i >= b;i--)
#define mp make_pair
#define pb push_back
#define fi first
#define se second
#define rei(x) scanf("%d",&x)
#define rel(x) scanf("%I64d",&x)
typedef pair<int,int> pii;
typedef pair<LL,LL> pll;
const int dx[9] = {0,1,-1,0,0,-1,-1,1,1};
const int dy[9] = {0,0,0,-1,1,-1,1,-1,1};
const double pi = acos(-1.0);
const int M = 109000;
const int N = 1100;
struct abc
{
int en,w,nex;
};
int n,m,x,tot[2]={0},dis[2][N],fir[2][N];
abc g[2][M];
queue <int> dl;
bool exsit[N];
void add(int p,int x,int y,int z)
{
g[p][++tot[p]].nex = fir[p][x];
fir[p][x] = tot[p];
g[p][tot[p]].en = y,g[p][tot[p]].w = z;
}
void spfa(int p)
{
memset(dis[p],0x3f3f3f3f,sizeof dis[p]);
memset(exsit,false,sizeof exsit);
dis[p][x] = 0;
dl.push(x),exsit[x] = true;
while (!dl.empty())
{
int xx = dl.front();
dl.pop(),exsit[xx] = false;
for (int i = fir[p][xx];i;i = g[p][i].nex)
{
int y = g[p][i].en;
if (dis[p][y]>dis[p][xx]+g[p][i].w)
{
dis[p][y] = dis[p][xx] + g[p][i].w;
if (!exsit[y])
{
exsit[y] = true;
dl.push(y);
}
}
}
}
}
int main()
{
//freopen("F:\\rush.txt","r",stdin);
rei(n);rei(m);rei(x);
rep1(i,1,m)
{
int x,y,z;
rei(x);rei(y);rei(z);
add(0,x,y,z),add(1,y,x,z);
}
spfa(0),spfa(1);
int ma = dis[0][1]+dis[1][1];
rep1(i,2,n)
if (ma<dis[0][i]+dis[1][i])
ma = dis[0][i]+dis[1][i];
printf("%d\n",ma);
return 0;
}
【t018】派对的更多相关文章
- 洛谷银牛派对SPFA
题目描述 One cow from each of N farms (1 ≤ N ≤ 1000) conveniently numbered 1..N is going to attend the b ...
- 【noip模拟赛4】Matrix67的派对 暴力dfs
[noip模拟赛4]Matrix67的派对 描述 Matrix67发现身高接近的人似乎更合得来.Matrix67举办的派对共有N(1<=N<=10)个人参加,Matrix67需要把他们 ...
- 【noip模拟赛4】Matrix67的派对 dfs
描述 Matrix67发现身高接近的人似乎更合得来.Matrix67举办的派对共有N(1<=N<=10)个人参加,Matrix67需要把他们安排在圆桌上.Matrix67的安排原则是,圆桌 ...
- P1821 [USACO07FEB]银牛派对Silver Cow Party
题目描述 One cow from each of N farms (1 ≤ N ≤ 1000) conveniently numbered 1..N is going to attend the b ...
- poj3268 Silver Cow Party(农场派对)
题目描述 原题来自:USACO 2007 Feb. Silver N(1≤N≤1000)N (1 \le N \le 1000)N(1≤N≤1000) 头牛要去参加一场在编号为 x(1≤x≤N)x(1 ...
- 洛谷P1821 [USACO07FEB]银牛派对Silver Cow Party
题目描述 One cow from each of N farms (1 ≤ N ≤ 1000) conveniently numbered 1..N is going to attend the b ...
- 洛谷——P1821 [USACO07FEB]银牛派对Silver Cow Party
P1821 [USACO07FEB]银牛派对Silver Cow Party 题目描述 One cow from each of N farms (1 ≤ N ≤ 1000) conveniently ...
- 【BFS/DFS/YY】派对灯
[luogu1468]派对灯 题目描述 在IOI98的节日宴会上,我们有N(10<=N<=100)盏彩色灯,他们分别从1到N被标上号码. 这些灯都连接到四个按钮: 按钮1:当按下此按钮,将 ...
- COGS 497——奶牛派对
奶牛派对 我们发现每头牛需要走的路程即为它到x的最短路+x到它的最短路. 转化: 于是这道题变成了一道典型的单源最短路问题,只需求出每个点到x的最短路dl,以及从x到此点的最短路d2,然后去找max( ...
随机推荐
- SDUT-3402_数据结构实验之排序五:归并求逆序数
数据结构实验之排序五:归并求逆序数 Time Limit: 50 ms Memory Limit: 65536 KiB Problem Description 对于数列a1,a2,a3-中的任意两个数 ...
- ie8 下margin-top失效的小案例
一个小案例,是关于IE8下的margin-top的失效问题,巨日代码如下: 正常的chrome浏览器下的显示如下: margin-top=10px,正常显示 但是在ie8下,最终样式如下: margi ...
- springboot集成mongoDB 异常认证
1.springboot连接mongoDB 出现异常认证 异常详情: com.mongodb.MongoSecurityException: Exception authenticating Mong ...
- oracle触发器——ddl触发器
什么是ddl(data definition language),说白了就是我们经常用的create.alter和drop这些数据定义语句. n 创建ddl触发器 请编写一个触发器,可以记录某个用户 ...
- TCPThree_C杯 Day2
T1 我已经被拉格朗日插值蒙蔽了双眼,变得智障无比. 第一反应就是拉格朗日插值,然后就先放下了它. 模数那么小,指数那么大,这是一套noip模拟题,拉格朗日,你脑袋秀逗了? 无脑暴力20分贼开心. 正 ...
- sql —— between
BETWEEN 操作符在 WHERE 子句中使用,作用是选取介于两个值之间的数据范围. 原表: 执行查询: 上面就可以搜索出得分为80~90的学生了,包含80,也包含90.
- .net 数据表格显示控件
版权声明:本文为博主原创文章.未经博主同意不得转载. https://blog.csdn.net/chenjinge7/article/details/30470609 1. GridView 控件 ...
- iOS用同一个工程创建两个不同版本的应用
http://www.cocoachina.com/ios/20150916/13324.html 如果同一个应用, 需要做一个带广告Lite版本, 一个不带广告的Pro版本. 那么问题来了, 该如何 ...
- 从零学React Native之07View
View 组件是React Native最基本的组件.绝大部分其他React Native 组件. View组件的颜色和边框 backgroundColor 键用来指定颜色. RN 0.19版本开始, ...
- python 列表长度