csp20140904最优配餐_Solution
Solution
经典bfs,所有的点到店的最短距离
其中一开始队列的长度为店的数目
一个点可能有多个订单
关于数据大小:
1.
1000*(1000*1000)*2000=2,0000,0000,0000
订餐量*客户的数量*距离
总数用__int64
2.
1000*(1000*1000)=10,0000,0000
订餐量*客户的数量
一个数总数用long
Code:
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
#define maxn 1000 /*
1.
1000*(1000*1000)*2000=2,0000,0000,0000
订餐量*客户的数量*距离
总数用__int64
2.
1000*(1000*1000)=10,0000,0000
订餐量*客户的数量
一个数总数用long
*/ struct node
{
long x,y;
}; long dx[]={-,,,},dy[]={,-,,};
long amount[maxn+][maxn+],dist[maxn+][maxn+];
__int64 ans=;
struct node que[maxn*maxn+]; int main()
{
long head,tail,n,m,k,d,s,i,j,x,y,xx,yy;
scanf("%ld%ld%ld%ld",&n,&m,&k,&d);
head=;
tail=;
for (i=;i<=n;i++)
for (j=;j<=n;j++)
dist[i][j]=-;
for (i=;i<=m;i++)
{
scanf("%ld%ld",&x,&y);
dist[x][y]=;
tail++;
que[tail].x=x;
que[tail].y=y;
}
for (i=;i<=n;i++)
for (j=;j<=n;j++)
amount[i][j]=;
for (i=;i<=k;i++)
{
scanf("%ld%ld%ld",&x,&y,&s);
amount[x][y]+=s;
}
for (i=;i<=d;i++)
{
scanf("%ld%ld",&x,&y);
dist[x][y]=-;
}
while (head<tail)
{
head++;
for (i=;i<;i++)
{
xx=que[head].x+dx[i];
yy=que[head].y+dy[i];
if (dist[xx][yy]==-)
{
dist[xx][yy]=dist[que[head].x][que[head].y]+;
tail++;
que[tail].x=xx;
que[tail].y=yy;
}
}
}
for (i=;i<=n;i++)
for (j=;j<=n;j++)
ans+=amount[i][j]*dist[i][j];
printf("%I64d\n",ans);
return ;
}
csp20140904最优配餐_Solution的更多相关文章
- CCF CSP 201409-4 最优配餐
CCF计算机职业资格认证考试题解系列文章为meelo原创,请务必以链接形式注明本文地址 CCF CSP 201409-4 最优配餐 问题描述 栋栋最近开了一家餐饮连锁店,提供外卖服务.随着连锁店越来越 ...
- CCF 201409-4 最优配餐
问题描述 试题编号: 201409-4 试题名称: 最优配餐 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 栋栋最近开了一家餐饮连锁店,提供外卖服务.随着连锁店越来越多,怎么 ...
- CCF模拟题 最优配餐
最优配餐 时间限制: 1.0s 内存限制: 256.0MB 问题描述 栋栋最近开了一家餐饮连锁店,提供外卖服务.随着连锁店越来越多,怎么合理的给客户送餐成为了一个急需解决的问题. 栋栋的连锁店所在 ...
- ACM-最优配餐
题目描述: 最优配餐 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 栋栋最近开了一家餐饮连锁店,提供外卖服务.随着连锁店越来越多,怎么合理的给客户送餐成为了一个急需解决的问 ...
- CCF-最优配餐(BFS)
最优配餐 问题描述 栋栋最近开了一家餐饮连锁店,提供外卖服务.随着连锁店越来越多,怎么合理的给客户送餐成为了一个急需解决的问题.栋栋的连锁店所在的区域可以看成是一个n×n的方格图(如下图所示),方 ...
- CCF 最优配餐 (BFS)
问题描述 栋栋最近开了一家餐饮连锁店,提供外卖服务.随着连锁店越来越多,怎么合理的给客户送餐成为了一个急需解决的问题. 栋栋的连锁店所在的区域可以看成是一个n×n的方格图(如下图所示),方格的格点上的 ...
- 最优配餐_暴力bfs
问题描述 栋栋最近开了一家餐饮连锁店,提供外卖服务.随着连锁店越来越多,怎么合理的给客户送餐成为了一个急需解决的问题. 栋栋的连锁店所在的区域可以看成是一个n×n的方格图(如下图所示),方格的格点上的 ...
- [Ioi2007]Miners 矿工配餐(BZOJ1806)
[Ioi2007]Miners 矿工配餐 Time Limit: 10 Sec Memory Limit: 64 MBSubmit: 214 Solved: 128 Description 现有两 ...
- BZOJ 1806: [Ioi2007]Miners 矿工配餐( dp )
dp... ------------------------------------------------------------------------------- #include<cs ...
随机推荐
- 20135316Linux内核学习笔记第六周
20135316王剑桥<Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC 1000029000 一.进程控制块PCB--task_ ...
- UML图中类之间的关系:依赖,泛化,关联,聚合,组合,实现(转)
UML图中类之间的关系:依赖,泛化,关联,聚合,组合,实现 类与类图 1) 类(Class)封装了数据和行为,是面向对象的重要组成部分,它是具有相同属性.操作.关系的对象集合的总称. 2) 在系统 ...
- Unigine mesh顶点坐标转换精度问题
本问题虽然与Unigine引擎相关,但对其他精度问题也有参考价值. 问题: 将精细模型顶点从自身参考系的相对坐标(类似4378.95020,4561.00000,31.3887463) 转到椭球面世界 ...
- 剑值offer:最小的k个数
这是在面试常遇到的topk问题. 题目描述: 输入n个整数,找出其中最小的K个数.例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,. 解题思路: 思路一:用快排对数 ...
- 集美大学1414-团队作业2:需求分析&原型设计分数发布
1.评分标准 检查项 分数 编号 调研文档或截图 1 1 软件需求分析说明书 2 2 NABCD 2 3 描述每个成员具体分工 1 4 原型设计 2 5 编码规范 1 6 推广视频 1 7 ...
- 无限级结构SQL查询所有的下级和所有的下级
Id,PId无限级结构,查询某个Id的所有下级或所有上级,使用WITH AS查询 查找Id为1所有的下级 /*查找Id为1所有的下级*/ WITH T AS( SELECT Id,PId,Name,0 ...
- HDU 2024 C语言合法标识符
http://acm.hdu.edu.cn/showproblem.php?pid=2024 Problem Description 输入一个字符串,判断其是否是C的合法标识符. Input 输入 ...
- Quartz应用与集群原理分析
Quartz在CRM中的应用场景: https://tech.meituan.com/mt-crm-quartz.html https://www.mtyun.com/library/mt-crm-q ...
- Gradle vs Maven Comparison
https://gradle.org/maven-vs-gradle/ Maven需要搭建本地仓库:Gradle直接集成了仓库. ??? 从Maven转移到Gradle,对于如何使用类似于Maven的 ...
- [cnbeta]华为值多少钱,全世界非上市公司中估值最高的巨头
华为值多少钱,全世界非上市公司中估值最高的巨头 https://www.cnbeta.com/articles/tech/808203.htm 小米.美团都曾表达过不想.不急于上市,但没人信,所以 ...