FZU 2243 Daxia like uber
枚举,最短路。
求出5个点出发的最短路,然后枚举一下这些点之间走的顺序。
#pragma comment(linker, "/STACK:1024000000,1024000000")
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
#include<vector>
#include<map>
#include<set>
#include<queue>
#include<stack>
#include<iostream>
using namespace std;
typedef long long LL;
const double pi=acos(-1.0),eps=1e-;
void File()
{
freopen("D:\\in.txt","r",stdin);
freopen("D:\\out.txt","w",stdout);
}
template <class T>
inline void read(T &x)
{
char c = getchar(); x = ;while(!isdigit(c)) c = getchar();
while(isdigit(c)) { x = x * + c - ''; c = getchar(); }
} const int INF=0x7FFFFFFF;
const int maxn=;
int n,m,sz;
struct Edge {int u,v,w,nx; }e[];
int h[maxn];
int s,p1,q1,p2,q2;
int dis[maxn][maxn];
bool flag[maxn]; void add(int a,int b,int c)
{
e[sz].u=a;
e[sz].v=b;
e[sz].w=c;
e[sz].nx=h[a];
h[a]=sz++;
} void spfa(int st)
{
for(int i=;i<=n;i++) dis[st][i]=INF;
queue<int>Q; memset(flag,,sizeof flag);
flag[st]=; Q.push(st); dis[st][st]=; while(!Q.empty())
{
int f=Q.front(); Q.pop(); flag[f]=;
for(int i=h[f];i!=-;i=e[i].nx)
{
if(dis[st][f]+e[i].w<dis[st][e[i].v])
{
dis[st][e[i].v]=dis[st][f]+e[i].w;
if(flag[e[i].v]==)
{
flag[e[i].v]=;
Q.push(e[i].v);
}
}
}
}
} int main()
{
while(~scanf("%d%d",&n,&m))
{
scanf("%d%d%d%d%d",&s,&p1,&q1,&p2,&q2); memset(h,-,sizeof h); sz=; for(int i=;i<=m;i++)
{
int u,v,w; scanf("%d%d%d",&u,&v,&w);
add(u,v,w);
} spfa(s); spfa(p1); spfa(p2); spfa(q1); spfa(q2); LL Ans[];
Ans[]=(LL)dis[s][p1]+(LL)dis[p1][q1]+(LL)dis[q1][p2]+(LL)dis[p2][q2];
Ans[]=(LL)dis[s][p1]+(LL)dis[p1][p2]+(LL)dis[p2][q1]+(LL)dis[q1][q2];
Ans[]=(LL)dis[s][p1]+(LL)dis[p1][p2]+(LL)dis[p2][q2]+(LL)dis[q2][q1];
Ans[]=(LL)dis[s][p2]+(LL)dis[p2][q2]+(LL)dis[q2][p1]+(LL)dis[p1][q1];
Ans[]=(LL)dis[s][p2]+(LL)dis[p2][p1]+(LL)dis[p1][q1]+(LL)dis[q1][q2];
Ans[]=(LL)dis[s][p2]+(LL)dis[p2][p1]+(LL)dis[p1][q2]+(LL)dis[q2][q1];
LL ans=Ans[];
for(int i=;i<;i++) ans=min(ans,Ans[i]); printf("%lld\n",ans);
}
return ;
}
FZU 2243 Daxia like uber的更多相关文章
- 【最短路】FOJ 2243 Daxia like uber
题目链接: http://acm.fzu.edu.cn/problem.php?pid=2243 题目大意: 给一张N个点M条边的有向图,从s出发,把在x1的人送到y1,在x2的人送到y2用的最短距离 ...
- FZU 2240 Daxia & Suneast's problem
博弈,$SG$函数,规律,线段树. 这个问题套路很明显,先找求出$SG$函数值是多少,然后异或起来,如果是$0$就后手赢,否则先手赢.修改操作和区间查询的话可以用线段树维护一下区间异或和. 数据那么大 ...
- FZU 2238 Daxia & Wzc's problem
公式. $a×C_{m + i - 1}^m + d×C_{m + i - 1}^{m + 1}$. 推导过程可以看http://blog.csdn.net/queuelovestack/articl ...
- FZU 8月有奖月赛A Daxia & Wzc's problem (Lucas)
Problem A Daxia & Wzc's problem Accept: 42 Submit: 228Time Limit: 1000 mSec Memory Limit : ...
- FZU Problem 2238 Daxia & Wzc's problem
Daxia在2016年5月期间去瑞士度蜜月,顺便拜访了Wzc,Wzc给他出了一个问题: Wzc给Daxia等差数列A(0),告诉Daxia首项a和公差d; 首先让Daxia求出数列A(0)前n项和,得 ...
- FZU Problem 2244 Daxia want to buy house
模拟题,注意: 1.那两个贷款都是向银行贷的,就是两个贷款的总额不能超过70%,就算公积金贷款能贷也不行,我开始的时候以为公积金贷款是向公司借的,,欺负我这些小白嘛.... 2.最坑的地方 *0.7是 ...
- 【模拟】FOJ 2244 Daxia want to buy house
题目链接: http://acm.fzu.edu.cn/problem.php?pid=2244 题目大意: 每月还款额=贷款本金×[月利率×(1+月利率)^还款月数]÷[(1+月利率)^还款月数-1 ...
- FZU 2137 奇异字符串 后缀树组+RMQ
题目连接:http://acm.fzu.edu.cn/problem.php?pid=2137 题解: 枚举x位置,向左右延伸计算答案 如何计算答案:对字符串建立SA,那么对于想双延伸的长度L,假如有 ...
- FZU 1914 单调队列
题目链接:http://acm.fzu.edu.cn/problem.php?pid=1914 题意: 给出一个数列,如果它的前i(1<=i<=n)项和都是正的,那么这个数列是正的,问这个 ...
随机推荐
- [置顶] 从引爆点的角度看360随身wifi的发展
从引爆点的角度看360随身wifi的发展 不到一个月的时间,随身wifi预定量就数百万.它的引爆点在哪里,为什么相同的产品这么多它却能火起来,通过对随身wifi的了解和我知识层面分析,主要是因为随身w ...
- Getting Started with Core Data
Getting Started with Core Data Getting Started with Core Data Coreframework支持创建对象模型封装你的应用数据和逻辑满足MVC设 ...
- mac os apache 配置方法详细介绍
我使用的Mac OS X版本是10.8.2,Mac自带了Apache环境. 启动Apache 设置虚拟主机 启动Apache 打开“终端(terminal)”,输入 sudo apachectl -v ...
- 我的JQuery复习笔记之①——text(),html(),val()的区别
text():①可匹配多个元素 ②过滤其中的标签(只显示文字) ③只适用于双标签 html():①只匹配选中元素中的第一个 ②不过滤其中标签 ③只适用于双标签 val():①只匹配选中元素中的第一个 ...
- Spring3.2 + Hibernate4.2
Spring3.2 + Hibernate4.2 前三篇随笔中介绍了 用原生的JDBC访问数据库.一种高效的数据库连接池druid.用Spring的JDBC框架访问数据库. 本文继续介绍第三种数据库访 ...
- iOS多线程的初步研究1
iOS多线程的初步研究(一) 对于多线程的开发,iOS系统提供了多种不同的接口,先谈谈iOS多线程最基础方面的使用.产生线程的方式姑且分两类,一类是显式调用,另一类是隐式调用. 一.显示调用的类为NS ...
- 查找算法---find运算,find_first_of的使用
查找算法---find运算,find_first_of的使用 一.find运算 假设有一个int型的vector对象,名为vec,我们想知道其中是否包含某个特定值. 解决这个问题最简单的方法时使用标准 ...
- opencv编程入门技巧
opencv编程入门技巧 最近在项目中负责图像处理模块的编程工作,主要分为两个板块,一是视频图像去雾,二是可视.红外图像融合.为了提升开发效率,遂开始学习并使用opencv图像类库,效果很好的说~因为 ...
- 长轮询实现Chat并迁移到Azure测试
长轮询实现Chat并迁移到Azure测试 公司的OA从零开始进行开发,继简单的单点登陆.角色与权限.消息中间件之后,轮到在线即时通信的模块需要我独立去完成.这三周除了逛网店见爱*看动漫接兼职,基本上都 ...
- JBPM之JPdl小叙
JPdl:jbpm流程定义文件,下面是一个简单的流程定义文件: <?xml version="1.0" encoding="UTF-8"?> < ...