=== ===

这里放传送门

=== ===

题解

这其实是一道有点麻烦的乱搞题。。但是记得第一次写这题的时候蛋疼写了个二分啥的?但是反正没写出来= =考虑如果建造酿酒厂的点选定了,那么对于每个点只要考虑顺时针走过去比较好还是逆时针走过去比较好就可以了。并且这样的话就一定存在一个分界点,它左边的点都是顺时针走,右边的点都是逆时针走。而每个点对于每一条路径累加的花费都是固定的,就是它的需求乘以这条路径的长度。如果分界点逆时针移动了一个位置,就相当于在逆时针的花费中减少了一条边,顺时针的花费中增加了一条边。于是我们先预处理酒厂建在1号点的答案,然后把酒厂按顺序后移,显然那个分界点也是随着酒厂按照同样的顺序移动的,每次维护一下分界点的位置就可以了。可以用前缀和搞一搞。

代码

#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int n,d[20010],e[20010],sd[20010],se[20010],now,cut;
long long ans,sum,mid;
int main()
{scanf("%d",&n);for (int i=1;i<=n;i++){scanf("%d%d",&e[i],&d[i]);sd[i]=sd[i-1]+d[i];se[i]=se[i-1]+e[i];d[i+n]=d[i];e[i+n]=e[i];}for (int i=n+1;i<=2*n;i++){sd[i]=sd[i-1]+d[i];se[i]=se[i-1]+e[i];}mid=sd[n]/2;cut=1;now=1;while (sd[cut-1]<mid){ans+=(long long)e[cut]*(sd[cut-1]);++cut;}for (int i=cut;i<=n;i++)ans+=(long long)e[i]*(sd[n]-sd[i-1]);//计算在1号位置建造酒厂的花费sum=ans;for (int i=2;i<=n;i++){sum-=(long long)d[i-1]*(se[cut-1]-se[i-1]);//减去去掉的那条边while (sd[cut-1]-sd[i-1]<mid){//维护分界点sum-=(long long)e[cut]*(sd[i+n-2]-sd[cut-1]);sum+=(long long)e[cut]*(sd[cut-1]-sd[i-1]);++cut;}sum+=(long long)d[i-1]*(se[i+n-1]-se[cut-1]);if (sum<ans){ans=sum;now=i;}}printf("%lld\n",ans);return 0;
}

[BZOJ2937][Poi2000]建造酿酒厂相关推荐

  1. 【BZOJ-2937】建造酿酒厂 前缀和 + 展环为链 + 乱搞

    2937: [Poi2000]建造酿酒厂 Time Limit: 1 Sec  Memory Limit: 128 MB Submit: 70  Solved: 24 [Submit][Status] ...

  2. 亲手建造自己想要的生活

    一个人最好的生活,就是靠自己,只有自己才是最可靠的:就算能靠最亲的亲人也不要依靠太多,自己用双手努力得来的才是真正的自己: 在成年人的世界里,有时候你遇到的困难,任你再怎么哭闹叫喊,也很难改变糟糕的现 ...

  3. 有史以来最会写代码的农民诞生!腾讯元老、上市公司CTO赚够钱后辞职!到安徽农村隐居,亲手建造200亩农场!...

    财富自由之后你想过什么生活? 腾讯元老魏震给出了自己的答案:隐居农村,建造一个属于自己的农场. 让我们来看看他的履历: 2003年毕业于中国科技大学的计算机专业,进入华为: 从华为离职后加入腾讯,当时 ...

  4. 深度解析:特斯拉的工厂为什么建造得这么快?

    内容来源:The BIM 编辑:小艾  从建厂到投产到量产,特斯拉上海超级工厂只用了不到一年时间.特斯拉电动汽车市场占有率一直在上升,并因此扩大生产规模,以惊人的速度建立了多个超级工厂. 内华达.纽约 ...

  5. 二叉树的建造、递归与非递归遍历

    #include "stdafx.h" #include <iostream> #include <stack> #include <queue> ...

  6. 使用 SCons 轻松建造程序

    原文:http://www.ibm.com/developerworks/cn/linux/l-cn-scons/index.html 参考:http://www.flatws.cn/article/ ...

  7. 铁甲雄心机器人建造成本_玄武10移动抓取机器人帮助解决具有挑战性的任务

    在讨论机器人技术和人工智能的未来时,对话通常围绕替代人的焦虑感.机器人最终将使许多人工任务和职责变得多余吗?然而,其他一些对未来的机器人集成工作更为乐观的人则认为,机器人与人之间的协作潜力巨大. 玄武 ...

  8. 混凝土地坪机器人_创新引领 快速建造丨临时设施大项目部使用机器人等五项技术刷新建设新效率...

    为响应公司快速建造的理念 公司临时设施大项目部积极开拓创新 运用地螺丝基础 折叠集装箱 钢格栅地面 激光地面整平机器人 地面磨光机器人 提高建造速度 降低施工成本 并实现了可周转化 01 地螺丝基础 ...

  9. 解析:一种合适的数据中心建造方式有多重要?

    我们都知道,建设一个数据中心是一项比较费时费力的工程,在整个的建设过程当中需要涉及到非常多的技术和人力因素,对于一个数据中心来讲,建设过程的好坏将直接影响企业业务未来的发展效率和实际的应用轨迹. 有专 ...

最新文章

  1. C++数据结构链表的基本操作
  2. matplotlib 使用 plt.savefig() 输出图片去除旁边的空白区域
  3. 【技术综述】人脸风格化核心技术与数据集总结
  4. python实现udp聊天室_python网络编程基础--socket的简介,以及使用socket来搭建一个简单的udp小程序...
  5. ITK:从灰度图像计算直方图
  6. 2018秋寒假作业5—PTA编程总结2
  7. mysql load 占位符,mysql:用不存在的数据的占位符初始化摘要表
  8. 使用C#进行点对点通讯和文件传输(通讯基类部分+发送接收
  9. 【图文】Latex 中文字体的使用
  10. pycharm 学生资格过期,提示No suitable licenses associated with account解决方案
  11. android 阿里hotfix,Android 热修复方案--阿里百川HotFix
  12. win7系统定时删除数据的批处理命令_win7如何一键清理系统垃圾|win7批处理命令清理垃圾的方法...
  13. 特斯拉充电电流设置多大_特斯拉充电时间
  14. 【第64期】豆瓣9.8分,周志明的《凤凰架构》
  15. 矩阵分析与应用(7)
  16. 小娴的男友小旭不幸患了一种怪病,这种怪病吞噬了他的大部分记忆,同时让他突然间不会书写符合正确语序的英文。神奇的是,虽然他写出的句子看上去杂乱无章,不过经过仔细分析可以发现,如果把单词的顺序倒过来,语法
  17. SpringBoot重点详解--整合hive-jdbc
  18. Unity脚本控制更换材质球
  19. JetBrains WebStorm for Mac (强大的前端开发工具) 2021.3
  20. 适合编写python的笔记本_适合编程的笔记本

热门文章

  1. CF 绿蓝题做题记录
  2. oracle中的execute immediate
  3. 汽车无钥匙启动系统工作原理,无钥匙启动系统优缺点
  4. 天下无贼-那一滴金砂的缘起缘落
  5. 部署owncloud连接ladp迁移数据
  6. nRF2401A vs nRF24L01+ 无线数传模块之间的区别
  7. tcpip.sys是什么文件,tcpip.sys蓝屏的解决办法
  8. DOS命令:attrib
  9. IOS开发【Swift编程语言】
  10. 3D引擎渲染效率如何提升