jzoj3832-在哪里建酿酒厂【指针】

正题

题目链接:https://jzoj.net/senior/#main/show/3832


题目大意

一个环形的,知道每个城市分布的位置和需要的酒数。然后要求在一个位置建厂使得运输价格最低。


解题思路

我们将数据复制一份放到后面,然后枚举建厂位置。我们现在要找到一个包含该位置的长度为nnn的区间使得价格最低。我们发现当建厂位置往右边移动时,区间的位置不会向左,所以我们可以用指针维护即可。

时间复杂度O(n)O(n)O(n)


codecodecode

#include<cstdio>
#include<cstring>
#include<algorithm>
#define ll long long
using namespace std;
const ll N=41000;
ll n,w[N],d[N],x[N],lw,rw,ans,maxs=1e18;
int main()
{//freopen("bro.in","r",stdin);//freopen("bro.out","w",stdout);scanf("%lld",&n);for(ll i=1;i<=n;i++){scanf("%lld%lld",&w[i],&d[i]);x[i]=x[i-1]+d[i-1];rw+=w[i];ans+=w[i]*x[i];w[i+n]=w[i];d[i+n]=d[i];}for(ll i=n+1;i<=2*n;i++)x[i]=x[i-1]+d[i-1];ll l=1,r=n+1;for(ll i=1;i<=2*n;i++){lw+=w[i-1];rw-=w[i];ans+=lw*d[i-1]-rw*d[i-1]-w[i]*d[i-1];while(r<=2*n&&(x[i]-x[l])*w[l]>=(x[r]-x[i])*w[r])ans+=(x[r]-x[i])*w[r]-(x[i]-x[l])*w[l],lw-=w[l++],rw+=w[r++];maxs=min(maxs,ans);}printf("%lld",maxs);
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/321833.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

14、java中的集合(1)

1、为什么使用集合 面向对象语言使用对象体现事物&#xff0c;存储对象可以使用数组&#xff0c;但是数组的长度是固定的&#xff0c;存储的对象类型单一&#xff0c;不适用需求的变化&#xff0c;所以提供了集合。 2、集合和数组的区别 1&#xff09;数组长度定义之后不能改…

动态规划练习3 [砝码称重]

【问题描述】 设有 1g 、 2g 、 3g 、 5g 、 10g 、 20g 的砝码各若干枚&#xff08;其总重 <1000 &#xff09;&#xff0c;用他们能称出的重量的种类数。 【输入文件】 a1 a2 a3 a4 a5 a6 &#xff08;表示 1g 砝码有 a1 个&#xff0c; 2g 砝码有 a2 个…

Microsoft AI - Custom Vision in C#

概述前面一篇 Microsoft AI - Custom Vision 中&#xff0c;我们介绍了 Azure 认知服务中的自定义影像服务&#xff1a;Custom Vision&#xff0c;也介绍了如果通过这个在线服务&#xff0c;可视化的完成项目创建、数据集上传和标注、模型训练、模型评估和测试。我们也提到&…

jzoj3833-平坦的折线【模型转换,LIS】

正题 题目链接:https://jzoj.net/senior/#contest/show/2930/3 题目大意 一个平面直角坐标系上有nnn个点&#xff0c;如果两个点之间斜率在−1∼1-1\sim 1−1∼1之间那么就可以连接&#xff0c;求最少多少条折线可以连接这些点。 解题思路 我们将整个坐标系逆时针选择45∘(4…

22、mysql主键自增值和偏移量的查看和修改

1、查看mysql自增值和偏移量 show variables like %increment%; auto_increment_increment1 -- 自增倍数是1 auto_increment_offset1 -- 偏移量是1 上边这是一般的设置&#xff0c;每次每次主键自增的倍数是1&#xff0c;偏移量是1 例如&#xff1a;插入第n条记录&#x…

动态规划训练5 [回文词]

【问题描述】 回文词是一种对称的字符串——也就是说&#xff0c;一个回文词&#xff0c;从左到右读和从右到左读得到的结果是一样 的。任意给定一个字符串&#xff0c;通过插入若干字符&#xff0c;都可以变成一个回文词。你的任务是写一个程序&#xff0c;求出将 给定字符串变…

Unity引擎及编辑器C#源代码发布

3月23日我们在GitHub上发布了Unity引擎和编辑器的C#源代码&#xff0c;仅供Unity学习参考使用。为何如此决定为了了解或改进自己的Unity项目&#xff0c;一直以来有用户对Unity .NET程序集反汇编&#xff0c;我们的服务条款明确允许这样做。但反汇编有二大缺点&#xff1a;尽管…

40、使用javassit操作运行时字节码文件

1、是什么 Javassit是一个功能包&#xff0c;作用类似于java的反射&#xff0c;用于操作运行时字节码文件&#xff0c;实现动态编程&#xff0c;但性能高于反射。 2、怎么用&#xff1f; 首先需要获取存放class文件的容器ClassPool&#xff0c;根据全类名获取一个CtClass对象…

jzoj3844-统计损失【树形dp,换根法】

正题 题目链接:https://jzoj.net/senior/#main/show/3844 题目大意 一棵树&#xff0c;求每条路径的点权乘积之和。 解题思路 若只考虑从xxx出发往子树的路径&#xff0c;那么有fxaxax∗∑x−>yfyf_xa_xa_x*\sum_{x->y}f_yfx​ax​ax​∗x−>y∑​fy​ 定义gig_ig…

动态规划训练6 [统计单词个数]

【问题描述】 给出一个长度不超过 200 的由小写英文字母组成的字母串 ( 约定&#xff1a;该字母串以每行 20 个字母的方式输 入&#xff0c;且保证每行一定为 20 个 ) 。要求将此字母串分成 k 份 (1<k<40) &#xff0c;且每份中包含的单词个数加起来总数 最大 ( …

k8s实战为aspnetcore.webapi微服务注入配置信息

1、浅析k8s配置信息Secret以密文的形式存储数据&#xff0c;可以用来保存一些敏感信息&#xff0c;例如&#xff1a;OAuth tokens、私钥、密码、数据库连接、事件总线连接等。ConfigMap以明文的形式存储数据&#xff0c;可以用来保存一些非敏感信息&#xff0c;例如&#xff1a…

10、mysql数据表中数据的查询(2)

介绍一下mysql中查询的重中之重&#xff0c;连接查询 创建student和teacher表&#xff0c;表中数据如下&#xff1a; studentteacher 交叉连接查询 查询结果是连接的几个表中满足条件的相关联的数据的交集 sql SELECT s.id sid, s.name sname , t.id tid ,t.name tname FRO…

jzoj3845-简单题【dp】

正题 题目链接:https://jzoj.net/senior/#main/show/3845 题目大意 美丽的仙人掌定义为&#xff1a; 一个仙人掌&#xff0c;第iii到jjj号点(i<j)(i<j)(i<j)一定存在一条经过了j−i1j-i1j−i1个点的简单路径。 给出一张无向图&#xff0c;选出最多的边使得它是一个…

微软将人工智能嵌入Windows 10更新

下一轮Windows 10更新为Windows应用程序与人工智能功能的集成提供了新途径&#xff0c;将直接令数以亿计的个人电脑、平板、IoT边缘设备等Windows设备受益。新版Windows ML平台可供开发者直接通过Visual Studio将预先训练好的深度学习模型与自己的应用程序集成&#xff0c;在导…

24、mysql连接线程的show和kill

1、登陆到mysql服务器 Mysql –h ip –u 用户名 –p 密码; 2、检查当前连接的线程 show full processlist 或 show processlist 或 selelct * from information_schema.processlist; Id&#xff1a;线程标识 User&#xff1a;当前用户 Host&#xff1a;sql的来源&#xff0c;i…

动态规划训练8 [E - Multiplication Puzzle POJ1651]

Multiplication Puzzle POJ - 1651 题意&#xff1a; 在一个序列中&#xff0c;拿走一个数字&#xff0c;那么得分就是这个数字以及它相邻的两个数字&#xff0c;这三个数字的乘积。求最小得分。 这道题乍一看感觉是区间DP&#xff0c;但是需要逆向思考的技巧。 记dp[i][k]…

牛客-复读数组

正题 题目链接:https://ac.nowcoder.com/acm/contest/1103/A 题目大意 将一个长度为nnn的数组复制成kkk份&#xff0c;然后每个区间的值是一个区间中不同的数的数量&#xff0c;求每个非空区间的值和。 解题思路 若一个区间长度>n>n>n那么他们的值是固定的&#xf…

ASP.NET Core MVC 2.1 顶级参数验证

本文讨论ASP.NET Core 2.1中与ASP.NET Core MVC / Web API控制器中的模型绑定相关的功能。虽说这是一个功能&#xff0c;但从我的角度来看&#xff0c;它更像是一个错误修复&#xff01;请注意&#xff0c;我使用的是 NET Core 2.1 Preview 1&#xff0c;正式版发布后&#xff…

25、sql分析命令explain和desc

explain和desc命令的效果相同&#xff0c;命令格式如下&#xff1a; mysql> explain SELECT s.id sid, s.name sname , t.id tid ,t.name tname FROM student s LEFT JOIN teacher t ON s.name t.name; --------------------------------------------------------------…

P2290-[HNOI2004]树的计数【组合数,Prufer序列】

正题 题目大意:https://www.luogu.org/problem/P2290 题目大意 一棵树无根树第iii个点的度数为did_idi​&#xff0c;求树的数量。 解题思路 更具pruferpruferprufer序列的推论我们可以知道答案就是(n−2)!∏i1n(di−1)!\frac{(n-2)!}{\prod_{i1}^n(d_i-1)!}∏i1n​(di​−1…