1.9 货仓选址问题——Python】的更多相关文章

题目描述 在一条数轴上有 N 家商店,它们的坐标分别为 A1~AN. 现在需要在数轴上建立一家货仓,每天清晨,从货仓到每家商店都要运送一车商品. 为了提高效率,求把货仓建在何处,可以使得货仓到每家商店的距离之和最小. 输入格式 第一行输入整数N. 第二行N个整数A1~AN. 输出格式 输出一个整数,表示距离之和的最小值. 数据范围 1≤N≤100000,0≤Ai≤40000 输入样例 4 6 2 9 1 输出样例 12 题目分析 这是一道非常基础的算法题,要求一个货仓到每家商店的最短距离,我的思…
题面: 在一条数轴上有N家商店,它们的坐标分别为 A[1]~A[N].现在需要在数轴上建立一家货仓,每天清晨,从货仓到每家商店都要运送一车商品.为了提高效率,求把货仓建在何处,可以使得货仓到每家商店的距离之和最小. 这道题还是比较简单的吧本蒟蒻竟然先想到的是平均数,要去重读小学了,这道题是一道中位数加排序题,至于为什么是中位数这里不予证明. #include<bits/stdc++.h> using namespace std; int n,a[100010]; long long sum,a…
#include <iostream> #include <algorithm> using namespace std; ; int n; int q[N]; int main() { scanf("%d", &n); ; i < n; i ++ ) scanf("%d", &q[i]); sort(q, q + n); ; ; i < n; i ++ ) res += abs(q[i] - q[n / ]);…
题意 给出n个点的坐标,它们只能往上.下.左.右一格一格地移动,求使其移动至水平线上的最小步数. 思路 转载 先易后难,对于纵向的问题,我们推个公式,,这个很容易看出是货仓选址问题,k取y[i]的中位数就可以了.对于横向的问题,同样推一下公式,,推到这里,我们把与i相关的项全部合在了一起,只要把x[i]-i看作一个整体,这个子问题也是中位数问题. 代码 //poj1723 #include<cstdio> #include<algorithm> #include<cmath&…
soldiers真乃神题也! 行列显然可以分开处理. 行好办,显然就是一个货仓选址问题,取中位数即可. 列呢?? ?????? 因为懒得推式子,用不了二分,我决定使用枚举大法!一算复杂度O(n^2),勉强可以卡过. 于是我做好了卡常数的准备,正在实现枚举及求值时,得到了援助: 你把士兵按照x排序,然后把x[i] - i即可转化为行上面的. 我略加思索:排好后是x[1], x[1] + 1, x[i] + 2, ..., x[i] + (i - 1) 那么我事先减去,便是x[1], x[1], x…
[ZJOI2015]幻想乡战略游戏 带修改下,边点都带权的重心 随着变动的过程中,一些子树内的点经过会经过一些公共边.考虑能不能对这样的子树一起统计. 把树上贡献分块. 考虑点分治算法 不妨先把题目简化一下: 假设没有修改,多次询问,每次给定一个s,求$\sum d_v*dis(s,v)$ 为了让一块可以一起统计, 我们设: $sum[x]:$x为根的点分治树管辖部分的权值和 $df[x]$:x为根的点分治树管辖部分到x分治树father的带权距离和$\sum d[v]*dis[v,fa[x]]…
昨晚的比赛题.(像我这种蒟蒻只能打打div2) 题意 给你$n$个物品,每一个物品$i$,有一个权值$w_i$和一个位置$a_i$,定义移动一个物品$i$到位置$t$的代价为$w_i * \left |a_i - t  \right |$,要求你写一个数据结构支持以下两种操作: 1.修改一个物品的权值 2.查询把一个区间内全部移到相邻的位置的最小值. 举个栗子:如果要把$[l, r]$移到相邻的位置,就是对于$\forall i \in [l, r]$,要有$pos_i = x + i - l\…
题意: 现在有n个物品,第i个物品他的位置在a[i],他的重量为w[i].每一个物品移动一步的代价为他的w[i].目前有2种操作: 1. x y 将第x的物品的重量改为y 2.l r 将编号在 [ l, r ]之间的所有物品移动到一起,求最小的花费是多少. 带权中位数,学习了->这里 先来考虑一下货仓选址问题,就是一堆不带权值的数,选出一个点使得所有点到他的距离之和最小,那么肯定是选中位数最优 然后加上权值限制,这玩意儿有个学名叫做带权中位数 带权中位数为满足$\sum_{i=1}^x w_i\…
题面 TYVJ七夕祭和11区的夏祭的形式很像.矩形的祭典会场由N排M列共计N×M个摊点组成.虽然摊点种类繁多,不过cl只对其中的一部分摊点感兴趣,比如章鱼烧.苹果糖.棉花糖.射的屋--什么的.Vani预先联系了七夕祭的负责人zhq,希望能够通过恰当地布置会场,使得各行中cl感兴趣的摊点数一样多,并且各列中cl感兴趣的摊点数也一样多. 不过zhq告诉Vani,摊点已经随意布置完毕了,如果想满足cl的要求,唯一的调整方式就是交换两个相邻的摊点.两个摊点相邻,当且仅当他们处在同一行或者同一列的相邻位置…
发送盒子给Alice(简单版本) 题意:准备n个盒子放巧克力,从1到n编号,初始的时候,第i个盒子有ai个巧克力. Bob是一个聪明的家伙,他不会送n个空盒子给Alice,换句话说,每个盒子里面都有巧克力. Alice不喜欢互质集,如果这里存在一个整数k > 1,每个盒子里的巧克力数量都能被k整除,那么Alice会很高兴. Alice不介意这里有空盒子. 每次操作可以把一个盒子里的巧克力放置在相邻两个盒子里,即第i个盒子里的巧克力可以放在第i + 1和i - 1盒子里. 如果这里没有方法使得Al…