Round #2022/12/10
问题 D:城市大脑
题目描述
杜老师正在编写杭州城市大脑智能引擎。杭州的道路可以被抽象成为一幅无向图。每条路的初始速度都是 \(1\ m/s\)。杜老师可以使用 \(1\) 块钱让任意一条路的速度提升 \(1\ m/s\)。如果一条路的速度为 \(a\ m/s\),那么我们需要 \(1/a\) \(s\)才能通过这条道路。初始杜老师有 k 块钱,杜老师要把这 k 块钱花在升级这些道路上。 现在有两位选手,一位要从 \(s_1\) 走到 \(t_1\),一位要从 \(s_2\) 走到 \(t_2\),请问杜老师要怎么花钱,使得两位选手花费的总时间最少?当杜老师花完钱之后,两位选手都会走花费时间最少的路。杜老师花在每条道路上的钱都必须是非负整数。
输入格式
第一行三个整数 \(n,m,k\) 分别表示点数、边数以及杜老师初始有多少钱。
接下来 \(m\) 行,每行两个正整数 a,b 表示边(可以有重边)。
接下来一行四个整数 \(s_1,t_1,s_2,t_2\)。数据保证 \(s_1,t_1\)、\(s_2,t_2\) 连通。
输出格式
一行一个数表示答案。相对误差或绝对误差在 \(10^{-9}\) 内即为正确。
样例输入#1
点击查看
6 5 1
1 2
3 2
2 4
4 5
4 6
1 5 3 6
样例输出#1
点击查看
5.000000000000
样例输入#2
点击查看
1 0 100
1 1 1 1
样例输出#2
点击查看
0.000000000000
样例输入#3
点击查看
4 2 3
1 2
3 4
1 2 3 4
样例输出#3
点击查看
0.833333333333
提示
对于 \(20\%\) 的数据,\(n,m \leq 10,k\leq 10\);
对于 \(50\%\) 的数据,\(n,m \leq 10^3,k\leq 10^9\)。
对于 \(100\%\) 的数据,\(n,m \leq 5 \cdot 10^3,k\leq 10^9\)。
题解
点击查看代码
#include<cstdio>
#include<vector>
#include<cstring>
#define forl(i,n) for(int i=1;i<=n;i++)
#define forr(i,n) for(int i=n;i>0;--i)
using namespace std;
inline void cmin(int &x,int y){if(x>y)x=y;return;}
inline int min(int x,int y){return x<y?x:y;}
const int N = 5009;
vector<int>v[N];
int n,m,k,a,b,s1,t1,s2,t2,h,t;
int que[N],value[N];
int dist[N][N];
void bfs(int id)
{
h=t=0;
que[++t]=id;
while(h<t)
{
++h;
int x=que[h],to;
forr(i,v[x].size()-1)
{
to=v[x][i];
if(dist[id][to]||to==id)continue;
dist[id][to]=dist[id][x]+1;
que[++t]=to;
}
}
}
int main()
{
scanf("%d%d%d",&n,&m,&k);
forl(i,m)
{
scanf("%d%d",&a,&b);
v[a].push_back(b);
v[b].push_back(a);
}
forl(i,n)bfs(i);
scanf("%d%d%d%d",&s1,&t1,&s2,&t2);
value[0]=dist[s1][t1]+dist[s2][t2];
forl(i,n)
{
forl(j,n)
{
if(i==j||!dist[i][j]||!dist[i][s1]||!dist[i][s2]||!dist[j][t1]||!dist[j][t2])continue;
cmin(value[dist[i][j]],dist[i][s1]+dist[i][s2]+dist[j][t1]+dist[j][t2]);
}
}
for(int i=0;i<=m;i++){
}
return 0;
}
Round #2022/12/10的更多相关文章
- ubuntu 12.10 sourcelist软件更新源列表(zz)
ubuntu 12.10正式版已经发布了,国内各大开源软件源也陆续更新了资源.今天分享一下ubuntu 12.10 软件更新源列表. 首先,备份一下ubuntu 12.04 原来的源地址列表文 ...
- 大型网站演化(转载 http://homeway.me/2014/12/10/think-about-distributed-clusters/)
0x01.大型网站演化 简单说,分布式是以缩短单个任务的执行时间来提升效率的,而集群则是通过提高单位时间内执行的任务数来提升效率. 集群主要分为:高可用集群(High Availability Clu ...
- Ubuntu 12.10 安装 jdk-7u10-linux-x64.tar.gz(转载)
在Ubuntu 12.10下安装 jdk-7u10-linux-x64.tar.gz 总的原则:将jdk-7u10-linux-x64.tar.gz压缩包解压至/usr/lib/jdk,设置jdk环境 ...
- 解决Ubuntu 12.10中ZIP文件名乱码的方法
转摘源地址:http://blog.csdn.net/jiangxinyu/article/details/8206395 安装(12.04及以上): 代码: sudo apt-get install ...
- ubuntu 12.10无法用apt-get安装软件 Err http://us.archive.ubuntu.com quantal-updates/main Sources 404 Not
之前执行apt-get 不管是什么软件或apt-get update都会遇到fail to fetch http://us.archive.ubuntu.com quantal-updates/ma ...
- ubuntu 12.10 软件更新源列表
ubuntu 12.10正式版已经发布了,国内各大开源软件源也陆续更新了资源.今天分享一下ubuntu 12.10 软件更新源列表. 首先,习惯性的备份一下ubuntu 12.04 原来的源地址列表文 ...
- Ubuntu 13.04/12.10安装Oracle 11gR2图文教程(转)
Ubuntu 13.04/12.10安装Oracle 11gR2图文教程 原文标题:How to Install Oracle 11G R2 Enterprise Edition Database U ...
- install the Mondo Rescue utility in Ubuntu 12.04 or 12.10.
1. Open a terminal window. 2. Type in the following commands, then hit Enter after each. wget ft ...
- Ubuntu 12.10 安装VirtualBox增强功能
原文链接:http://fengbaoxp.iteye.com/blog/1871825 Ubuntu 12.10 Desktop 首先,通过VirtualBox菜单(设备->安 ...
- Ubuntu 12.10安装QQ2012
[日期:2012-11-05] 在最新的Ubuntu 12.10下安装QQ2012,请根据自己的机器类型下载后按照下面的32位或64位安装说明安装. 下载网址:http://www.longene.o ...
随机推荐
- 27 首页banner文库失效
安卓app 首页banner文库没有连接功能
- Django中的函数make_password、set_password和check_password
在Django中,有一些用于处理密码的常用函数,包括make_password.set_password和check_password.这些函数用于生成.设置和验证密码,但没有直接的get_passw ...
- django 信号判断是新增、修改还是删除
在Django的信号处理器中,你可以使用一些方法来确定信号是关于新增(create).修改(update)还是删除(delete)的.这通常涉及到检查 created 和 instance 参数的值. ...
- [oeasy]python0011 - python虚拟机的本质_cpu架构_二进制字节码_汇编语言
程序本质 回忆上次内容 我们把python源文件 词法分析 得到 词流(token stream) 语法分析 得到 抽象语法树(Abstract Syntax Tree) 编译 得到 字节码 (b ...
- ffmpeg一些笔记: 代码调试数据
1.AAC,MP3他的解码数据格式不支持,程序中给的是这个AV_SAMPLE_FMT_FLTP, Screen-Cpature-Recoder的codec-id为AV_CODEC_RAW_VIDEO ...
- 如何实现对ELK各组件的监控?试试Metricbeat
一.前言 开发排查系统问题用得最多的手段就是查看系统日志,ELK 是 Elastic 公司开源的实时日志处理与分析解决方案,已经为日志处理方案的主流选择. 而在生产环境中,如何针对 ELK 进行监控, ...
- ORA-01658创建表或索引报错分析
一.报错信息 某项目最近在 SQL Loader 导数据时偶尔会报错,类似如下: SQL loader ORA-01658 unable to creale INITIAL extent for se ...
- 【SQL】 Excel 批量编写SQL脚本
参考地址: https://zhuanlan.zhihu.com/p/134290191 有两种办法: 第一种,使用 & 拼接符号处理 ="INSERT INTO `my-info` ...
- 【Hibernate】Re07 关系映射处理
一.单向多对一关系映射处理 演示案例列举了员工与部门的关系,一个部门下具有多个员工,相反的一个员工只隶属于一个部门下面 Maven依赖坐标: <dependency> <groupI ...
- 智慧城市(Smart City)—— 华为预测2025年的10大趋势( Huawei Predicts 10 Megatrends for 2025 )
原文: https://www.huawei.com/en/news/2019/8/huawei-predicts-10-megatrends-2025 相关: https://www.huawei. ...