ZJNU 1367 - Party--中高级
寻找从i到X,再从X到i的最短路
可以在正向图中从X开始跑一遍最短路,每个点的距离dis1[i]当作从X回到点i的距离
再将图反向从X再跑一遍,每个点的距离dis2[i]当作从i到点X的距离
最后搜索dis1[i]+dis2[i]值最大的输出
#include<bits/stdc++.h>
#define INF 0x3f3f3f3f
using namespace std;
typedef pair<short,int> P;
vector<P> graph1[],graph2[];
int N,M,X,dis1[],dis2[];
bool vis1[],vis2[];
queue<short> q;
int main()
{
ios::sync_with_stdio();cin.tie();
int i,j,d,cnt,len,ans=;
short a,b,id;
cin>>N>>M>>X;
for(i=;i<M;i++)
{
cin>>a>>b>>d;
graph1[a].push_back(P(b,d));
graph2[b].push_back(P(a,d));
}
memset(dis1,INF,sizeof dis1);
memset(dis2,INF,sizeof dis2);
memset(vis1,false,sizeof vis1);
memset(vis2,false,sizeof vis2);
dis1[X]=dis2[X]=;
vis1[X]=vis2[X]=true;
q.push(X);
while(!q.empty())
{
id=q.front();
q.pop();
cnt=graph1[id].size();
for(i=;i<cnt;i++)
{
len=dis1[id]+graph1[id][i].second;
if(!vis1[graph1[id][i].first]||len<dis1[graph1[id][i].first])
{
dis1[graph1[id][i].first]=len;
vis1[graph1[id][i].first]=true;
q.push(graph1[id][i].first);
}
}
}
q.push(X);
while(!q.empty())
{
id=q.front();
q.pop();
cnt=graph2[id].size();
for(i=;i<cnt;i++)
{
len=dis2[id]+graph2[id][i].second;
if(!vis2[graph2[id][i].first]||len<dis2[graph2[id][i].first])
{
dis2[graph2[id][i].first]=len;
vis2[graph2[id][i].first]=true;
q.push(graph2[id][i].first);
}
}
}
for(i=;i<=N;i++)
{
if(i==X)
continue;
ans=max(ans,dis1[i]+dis2[i]);
}
cout<<ans; return ;
}
ZJNU 1367 - Party--中高级的更多相关文章
- ZJNU 1310 - 排队——中高级
蒟蒻做法:追踪1号队员,取他回到原来位置需要的次数 /* Written By StelaYuri */ #include<stdio.h> int main(){ int T,t,n,a ...
- ZJNU 1262 - 电灯泡——中高级
在影子没有到达墙角前,人越远离电灯,影子越长,所以这一部分无需考虑 所以只需要考虑墙上影子和地上影子同时存在的情况 因为在某一状态存在着最值 所以如果以影子总长与人的位置绘制y-x图像 会呈一个类似y ...
- ZJNU 1130 - 龟兔赛跑——中高级
只需求出乌龟最短耗时跟兔子耗时比即可将起点 0 和终点 N+1 也看做充电站,进行动态规划对第i个点进行动态规划,则可以得到状态转移方程为dp[i] = max{dp[j]+time[i][j]} j ...
- ZJNU 1542 - 三角形(续)--中高级
从小到大排序后 先固定一遍,另外两边递增查找 即固定 i,j=i+1,k=j+1 然后让k递增到 a[i]+a[j]<=a[k] 时 此时不能凑成一个三角形 答案增加 k-1-j 组 此时不需要 ...
- ZJNU 1535 - 新建的大楼--中高级
因为从俯视图看,输入输出的视角是从右下方看向左上方的 所以左上角的正方体最有可能被其他正方体挡住 立体上,底部的正方体最有可能被顶部的正方体挡住 所以绘图应该从后往前,从下往上绘制 剩下的就是一大堆计 ...
- hdu 3047–Zjnu Stadium(带权并查集)
题目大意: 有n个人坐在zjnu体育馆里面,然后给出m个他们之间的距离, A B X, 代表B的座位比A多X. 然后求出这m个关系之间有多少个错误,所谓错误就是当前这个关系与之前的有冲突. 分析: 首 ...
- hdu 3074 Zjnu Stadium (带权并查集)
Zjnu Stadium Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Tota ...
- java中高级软件工程师面试总结
最近去了几家公司面试java中高级工程师,打击挺大的,感觉自己一直以来没有很好的深入学习,对各种知识都是一知半解,但心又太高,想找更高薪的职位,结果面试屡屡碰壁,哎,心情好低落,也是时候静下心来,好好 ...
- [Jobdu] 题目1367:二叉搜索树的后序遍历序列
题目描述: 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果.如果是则输出Yes,否则输出No.假设输入的数组的任意两个数字都互不相同. 输入: 每个测试案例包括2行: 第一行为1个整数 ...
随机推荐
- 留学英文论文写作Abstract三种类型
所谓Abstract,就是对所写论文主要内容的精炼概括.Abstract是美国人的说法,英国的科技期刊喜欢称之为Summary.在英文中,有资料是这么对其定义的:Abstract is a sketc ...
- “战疫”需求不再等-京东云与AI【应急资源信息发布平台】召集开发者共同支援
截止北京时间 2020年2月5日19时00分,全国确诊新型冠状病毒肺炎24423例,疑似23260例. 新年伊始,一切都显得和往年有那么一点不一样.疫情牵动着每一个人的心脏,也有很多人早就放弃了假期投 ...
- GAN评价指标之mode score
通过 Inception Score 的公式我们知道,它并没有利用到真实数据集的信息,所有的计算都在生成的图片上计算获得.而 Mode Score 基于此做了改进: 也就是说,想要提高 Mode Sc ...
- Python MongoDB 插入文档
章节 Python MySQL 入门 Python MySQL 创建数据库 Python MySQL 创建表 Python MySQL 插入表 Python MySQL Select Python M ...
- 算法实战(六)Z 字形变换
一.前言 之前因为第五题最长回文字符串需要使用到dp解法,所以我花了很长的时间来研究dp(因为每天又要上班,加上这段时间事情比较多,所以花了三个星期才搞定),好不容易算入了个门,有兴趣的同学可以看看我 ...
- Linux学习《第二章命令》本章小结
经过这一章的学习,了解了常用的命令.这是学习Linux系统最最基础的工作,必须努力掌握,个人觉得,并不是这个章节学习结束之后,命令的学习就结束了,而是刚刚开始,今后在每个知识点学习过程中,都会 学习到 ...
- Kali链接Xshell和更新源
一.Xshell首次链接kali系统中的ssh Xshell:帮助我们去连接各种服务平台,方便管理服务器,链路可以加密处理(ssh/vsftp) 1.开启kali中的ssh服务,service ssh ...
- jquery实现搜索框从中间向两边扩展(左右放大)
显示效果: 隐藏效果: 前端核心代码如下: <div class="search-icon col-md-2 col-sm-2 col-xs-4 col-md-offset-5 col ...
- MacOS Safari无响应卡死解决方法
之前也是用的好好的,突然一次进入一个网页就卡死了,强制退出,后面再重新进入Safari都会处于卡死状态,一直找不到解决方法,Safari也不能卸载重装,想着得等到更新系统或者重装系统,今天看到贴吧一个 ...
- 数据库之存储过程Procedure
数据库之存储过程 一.概述 SQLserver中视图通过简单的select查询来解决复杂的查询,但是视图不能提供业务逻辑功能,而存储过程可以办到. 二.什么是存储过程 存储过程procedure是一组 ...