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的更多相关文章

  1. CCF CSP 201409-4 最优配餐

    CCF计算机职业资格认证考试题解系列文章为meelo原创,请务必以链接形式注明本文地址 CCF CSP 201409-4 最优配餐 问题描述 栋栋最近开了一家餐饮连锁店,提供外卖服务.随着连锁店越来越 ...

  2. CCF 201409-4 最优配餐

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

  3. CCF模拟题 最优配餐

    最优配餐 时间限制: 1.0s 内存限制: 256.0MB   问题描述 栋栋最近开了一家餐饮连锁店,提供外卖服务.随着连锁店越来越多,怎么合理的给客户送餐成为了一个急需解决的问题. 栋栋的连锁店所在 ...

  4. ACM-最优配餐

    题目描述: 最优配餐  时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 栋栋最近开了一家餐饮连锁店,提供外卖服务.随着连锁店越来越多,怎么合理的给客户送餐成为了一个急需解决的问 ...

  5. CCF-最优配餐(BFS)

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

  6. CCF 最优配餐 (BFS)

    问题描述 栋栋最近开了一家餐饮连锁店,提供外卖服务.随着连锁店越来越多,怎么合理的给客户送餐成为了一个急需解决的问题. 栋栋的连锁店所在的区域可以看成是一个n×n的方格图(如下图所示),方格的格点上的 ...

  7. 最优配餐_暴力bfs

    问题描述 栋栋最近开了一家餐饮连锁店,提供外卖服务.随着连锁店越来越多,怎么合理的给客户送餐成为了一个急需解决的问题. 栋栋的连锁店所在的区域可以看成是一个n×n的方格图(如下图所示),方格的格点上的 ...

  8. [Ioi2007]Miners 矿工配餐(BZOJ1806)

    [Ioi2007]Miners 矿工配餐 Time Limit: 10 Sec  Memory Limit: 64 MBSubmit: 214  Solved: 128 Description 现有两 ...

  9. BZOJ 1806: [Ioi2007]Miners 矿工配餐( dp )

    dp... ------------------------------------------------------------------------------- #include<cs ...

随机推荐

  1. Nginx code 常用状态码学习小结

    最近了解下Nginx的Code状态码,在此简单总结下.一个http请求处理流程: 一个普通的http请求处理流程,如上图所示:A -> client端发起请求给nginxB -> ngin ...

  2. nginx下目录浏览及其验证功能、版本隐藏等配置记录

    工作中常常有写不能有网页下载东西的需求,在Apache下搭建完成后直接导入文件即可达到下载/显示文件的效果;而Nginx的目录列表功能默认是关闭的,如果需要打开Nginx的目录列表功能,需要手动配置, ...

  3. CentOS 网卡自动启动、配置等ifcfg-eth0教程

    装完centos后发现网卡没有自动启动, vi /etc/sysconfig/network-scripts/ifcfg-eth0 将ONBOOT=no 改为yes即可 原文链接: http://yp ...

  4. M1事后分析汇报以及总结

    一.设想和目标 1. 们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰的描述? 我们的软件主要是为了提供周边美食和菜谱查询功能,为“吃货”们提供便利.对典型用户和场景有清晰的描 ...

  5. 个人博客-week7

    团队任务收获及个人感想 团队任务已经进行了一个多月的时间,我很荣幸能和软剑攻城队的小伙伴们度过这一个月的开发时光.在这一个月的时间里,我亲身经历了一个软件从想法到实现,从创意到实体的过程.同时我也在和 ...

  6. Practice5.1 测试与封装5.1

    结对同伴: 姓名 学号 博客地址 叶子鹏 201306114420 http://www.cnblogs.com/kazehanaai/ 王佳宁 201306114434 http://www.cnb ...

  7. iOS Runloop理解

    一.RunLoop的定义 当有持续的异步任务需求时,我们会创建一个独立的生命周期可控的线程.RunLoop就是控制线程生命周期并接收事件进行处理的机制. RunLoop是iOS事件响应与任务处理最核心 ...

  8. Delphi/XE2 使用TIdHttp控件下载Https协议服务器文件[转]

    之前的一篇博文详细描述了使用TIdhttp控件下载http协议的文件,在我项目的使用过程中发现对于下载Https协议中的文件与Http协议的文件不同,毕竟Https在HTTP协议基础上增加了SSL协议 ...

  9. Vue.directive注册指令

    指令定义函数提供了几个钩子函数(可选): vue指令的生命周期 bind: 只调用一次,指令第一次绑定到元素时调用,用这个钩子函数可以定义一个在绑定时执行一次的初始化动作. inserted: 被绑定 ...

  10. 美化centos7

    在美化前,我们先安装一个扩展源.yum install -y epel-release然后安装字体包yum -y install liberation-mono-fonts 安装gnome-menis ...