标题 最优配餐

【问题描述】

栋栋最近开了一家餐饮连锁店,提供外卖服务。随着连锁店越来越多,怎么合理的给客户送餐成为了一个急需解决的问题。
  栋栋的连锁店所在的区域可以看成是一个n×n的方格图(如下图所示),方格的格点上的位置上可能包含栋栋的分店(绿色标注)或者客户(蓝色标注),有一些格点是不能经过的(红色标注)。
  方格图中的线表示可以行走的道路,相邻两个格点的距离为1。栋栋要送餐必须走可以行走的道路,而且不能经过红色标注的点。
 
  送餐的主要成本体现在路上所花的时间,每一份餐每走一个单位的距离需要花费1块钱。每个客户的需求都可以由栋栋的任意分店配送,每个分店没有配送总量的限制。
  现在你得到了栋栋的客户的需求,请问在最优的送餐方式下,送这些餐需要花费多大的成本。

【输入形式】

输入的第一行包含四个整数n, m, k, d,分别表示方格图的大小、栋栋的分店数量、客户的数量,以及不能经过的点的数量。
  接下来m行,每行两个整数xi, yi,表示栋栋的一个分店在方格图中的横坐标和纵坐标。
  接下来k行,每行三个整数xi, yi, ci,分别表示每个客户在方格图中的横坐标、纵坐标和订餐的量。(注意,可能有多个客户在方格图中的同一个位置)
  接下来d行,每行两个整数,分别表示每个不能经过的点的横坐标和纵坐标。

【输出形式】

输出一个整数,表示最优送餐方式下所需要花费的成本。

【样例输入】

10 2 3 3
  1 1
  8 8
  1 5 1
  2 3 3
  6 7 2
  1 2
  2 2
  6 8

【样例输出】

29

【评分标准】

评测用例规模与约定
  前30%的评测用例满足:1<=n <=20。
  前60%的评测用例满足:1<=n<=100。
  所有评测用例都满足:1<=n<=1000,1<=m, k, d<=n^2。可能有多个客户在同一个格点上。每个客户的订餐量不超过1000,每个客户所需要的餐都能被送到。

n,m,k,d=map(int,input().split())
s=[[0 for i in range(n+1)] for j in range(n+1)]ans=[[0x3f for i in range(n+1)] for j in range(n+1)]x=[]
y=[]dx=[-1,0,1,0]
dy=[0,1,0,-1]for i in range(m):x.append(list(map(int,input().split())))ans[x[i][0]][x[i][1]]=0
for i in range(k):y.append(list(map(int,input().split())))for i in range(d):a,b=map(int,input().split())s[a][b]=1def bfs():global xglobal answhile len(x)>0:f=x.pop(0)for i in range(4):x1=f[0]+dx[i]y1=f[1]+dy[i]if x1>=1 and y1>=1 and x1<=n and y1<=n and s[x1][y1]==0:if ans[x1][y1] > ans[f[0]][f[1]]+1:ans[x1][y1]=ans[f[0]][f[1]]+1x.append([x1,y1])res=0
bfs()
for i in range(k):res+=ans[y[i][0]][y[i][1]]*y[i][2]print(res)

最优配餐bfs-python题解相关推荐

  1. CCF201409-4 最优配餐(100分)

    试题编号: 201409-4 试题名称: 最优配餐 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 栋栋最近开了一家餐饮连锁店,提供外卖服务.随着连锁店越来越多,怎么合理的给客 ...

  2. AcWing 3205. 最优配餐

    AcWing 3205. 最优配餐 栋栋最近开了一家餐饮连锁店,提供外卖服务. 随着连锁店越来越多,怎么合理的给客户送餐成为了一个急需解决的问题. 栋栋的连锁店所在的区域可以看成是一个 n×n 的方格 ...

  3. CSP认证201409-4 最优配餐[C++题解]:bfs、多源bfs、最短路、图论

    文章目录 题目解答 题目链接 题目解答 来源:acwing 分析: 有很多起点S,同时有很多终点T,求每个终点到起点中最短的路,只要是到达其中一个起点就行.所以这是一个多源bfs的题目. ac代码 # ...

  4. 浅谈“大数据”与“航空配餐大数据”

    2016年,当AlphaGo成功击败韩国职业九段棋手李世石时,人们就开始相信大数据不是无中生有的噱头,而是人类又一项伟大发明.到目前为止,大数据产品已经数不胜数,它改变着人们的思维方式.生活方式和生活 ...

  5. WinFormreportViewer(rdlc)报表[列表]的使用(一)(附源码示例) 之配餐系统的开发

    紧接着"WinForm"reportViewer报表[矩阵]的使用(一)(附源码示例)" 之配餐系统的开发"这篇文章,此文与大家分享的是在 配餐系统的开发 中使 ...

  6. ML之XGBoost:XGBoost参数调优的优秀外文翻译—《XGBoost中的参数调优完整指南(带python中的代码)》(四)

    ML之XGBoost:XGBoost参数调优的优秀外文翻译-<XGBoost中的参数调优完整指南(带python中的代码)>(四) 目录 Step 3: Tune gamma步骤3:伽马微 ...

  7. ML之XGBoost:XGBoost参数调优的优秀外文翻译—《XGBoost中的参数调优完整指南(带python中的代码)》(三)

    ML之XGBoost:XGBoost参数调优的优秀外文翻译-<XGBoost中的参数调优完整指南(带python中的代码)>(三) 目录 3. 参数微调案例/Parameter Tunin ...

  8. ML之XGBoost:XGBoost参数调优的优秀外文翻译—《XGBoost中的参数调优完整指南(带python中的代码)》(二)

    ML之XGBoost:XGBoost参数调优的优秀外文翻译-<XGBoost中的参数调优完整指南(带python中的代码)>(二) 目录 2. xgboost参数/XGBoost Para ...

  9. ML之XGBoost:XGBoost参数调优的优秀外文翻译—《XGBoost中的参数调优完整指南(带python中的代码)》(一)

    ML之XGBoost:XGBoost参数调优的优秀外文翻译-<XGBoost中的参数调优完整指南(带python中的代码)>(一) 目录 概述/Overview 介绍/Introducti ...

最新文章

  1. 【Qt】一个使用QEventLoop时,遇到的教训
  2. 数据缺失、混乱、重复怎么办?最全数据清洗指南
  3. AI圈真魔幻!谷歌最新研究表明卷积在NLP预训练上竟优于Transformer?LeCun暧昧表态...
  4. mysql 列转置_MySQL 行列转置
  5. mysql 8.0 集群_集群架构03·MySQL初识,mysql8.0环境安装,mysql多实例
  6. python设置格式模板
  7. petshop学习笔记(1)
  8. php页面的特点_带你认识PHP的四大特性八大优势
  9. oracle指定过个时间点 job_SQL SERVER 快速恢复:生成指定时间点的恢复脚本
  10. 浮云语音转文字识别本地音频文字内容教程
  11. [公告]请不要在首页转载文章
  12. ApacheCon Asia 2022 正式启动,数据流专题 Call For Speaker
  13. 【读书笔记《Android游戏编程之从零开始》】4.Android 游戏开发常用的系统控件(EditText、CheckBox、Radiobutton)
  14. 驱动概念(uboot命令)
  15. h5分享微信好友朋友圈
  16. java之集合ArrayList,LinkedList,HashMap运用
  17. springboot+REST
  18. 已知a和b的最大公因数和最小公倍数求这两个数字
  19. 为什么进程切换比线程切换耗费资源?
  20. R语言自学笔记:数据处理、数据分布及数据检验

热门文章

  1. Java代码生成器(SSM,Spring-boot-mybatis,generator,含源代码)
  2. 10.2函数牛顿迭代
  3. 等保测评高风险判定——安全计算环境(网络、安全、主机设备)篇
  4. 分布式事务Seata详细使用教程
  5. 当把串口初始化时,程序卡死的问题
  6. JS高级程序设计【红宝书】学习笔记——数据类型
  7. 【ClickHouse SQL 极简教程】使用EXPLAIN 分析 SQL 执行计划
  8. mysql插入数字都变成2147483647的解决方法
  9. 2023 苹果CMSV10仿T5资源影视网站模板主题
  10. 1-笑话幽默-英语文章阅读