yzoj1657货仓选址 题解】的更多相关文章

题面: 在一条数轴上有N家商店,它们的坐标分别为 A[1]~A[N].现在需要在数轴上建立一家货仓,每天清晨,从货仓到每家商店都要运送一车商品.为了提高效率,求把货仓建在何处,可以使得货仓到每家商店的距离之和最小. 这道题还是比较简单的吧本蒟蒻竟然先想到的是平均数,要去重读小学了,这道题是一道中位数加排序题,至于为什么是中位数这里不予证明. #include<bits/stdc++.h> using namespace std; int n,a[100010]; long long sum,a…
题目描述 在一条数轴上有 N 家商店,它们的坐标分别为 A1~AN. 现在需要在数轴上建立一家货仓,每天清晨,从货仓到每家商店都要运送一车商品. 为了提高效率,求把货仓建在何处,可以使得货仓到每家商店的距离之和最小. 输入格式 第一行输入整数N. 第二行N个整数A1~AN. 输出格式 输出一个整数,表示距离之和的最小值. 数据范围 1≤N≤100000,0≤Ai≤40000 输入样例 4 6 2 9 1 输出样例 12 题目分析 这是一道非常基础的算法题,要求一个货仓到每家商店的最短距离,我的思…
#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 / ]);…
题目描述 某地区有m座煤矿,其中第i号矿每年产量为ai吨,现有火力发电厂一个,每年需用煤b吨,每年运行的固定费用(包括折旧费,不包括煤的运费)为h元,每吨原煤从第i号矿运到原有发电厂的运费为Ci0(i=1,2,…,m). 现规划新建一个发电厂,m座煤矿每年开采的原煤将全部供给这两座发电厂.现有n个备选的厂址.若在第j号备选厂址建新厂,每年运行的固定费用为hj元.每吨原煤从第i号矿运到j号备选厂址的运费为Cij(i=1,2,…,m:j=1,2,…,n). 试问:应把新厂厂址选取在何处?m座煤矿开采…
题解 我们枚举建厂的位置,发现有个\(n^2\)的DP.随手搞个斜率优化到\(O(n)\). #include<bits/stdc++.h> using namespace std; typedef long long ll; const int maxn = 21000 ; const ll inf = 100000000000000LL; int n; ll f[maxn]; ll w[maxn],s[maxn],m[maxn],h[maxn],cnt[maxn]; ll d[maxn],…
每日一题 day9 打卡 Analysis 这道题是个模拟,两个0~128( 注意不是1~128 )的循环枚举正方形中心点,判断正方形的边界,再用循环枚举公共场所的数量就好了. 时间复杂度 < O (128 ² × 160 ² ) = O ( 419430400 ) 可以接受 #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #define maxn 12…
题面 TYVJ七夕祭和11区的夏祭的形式很像.矩形的祭典会场由N排M列共计N×M个摊点组成.虽然摊点种类繁多,不过cl只对其中的一部分摊点感兴趣,比如章鱼烧.苹果糖.棉花糖.射的屋--什么的.Vani预先联系了七夕祭的负责人zhq,希望能够通过恰当地布置会场,使得各行中cl感兴趣的摊点数一样多,并且各列中cl感兴趣的摊点数也一样多. 不过zhq告诉Vani,摊点已经随意布置完毕了,如果想满足cl的要求,唯一的调整方式就是交换两个相邻的摊点.两个摊点相邻,当且仅当他们处在同一行或者同一列的相邻位置…
放在原来这个地方不太方便,影响阅读体验.为了读者能更好的刷题,另起一篇随笔. 0x00 基本算法 0x01 位运算 [题目][64位整数乘法] 知识点:快速幂思想的灵活运用 [题目][最短Hamilton路径] 知识点: 状压DP.我的题解总是写得不好,大家还是看书吧qwq P2114 [NOI2014]起床困难综合症 知识点:状态压缩 0x02 递推与递归 [题目][费解的开关] 知识点:搜索?递推?模拟? +状压 [题目] 4座塔的Hanoi 知识点:递推 [题目][约数和问题] 知识点:数…
原题链接https://codeforces.com/contest/1486/problem/B 题目 解题思路 这是个思维题,  算是货仓选址的变式, 想要到达各个点距离最小,我们的目标可以化为先求出分别到x y轴各点的最小值区间,  x坐标轴上满足条件的点数乘以y坐标轴上满足条件的点数. 那么怎么求在x轴坐标与y轴坐标有多少距离之和最小的点的个数呢? 1).n为奇数, 最小值唯一, 答案即为1 2). 偶数时中位数有两个这时取左右中位数这个闭区间里所有的整数都是最小的,解释: 因为取这个区…
题意 给出n个点的坐标,它们只能往上.下.左.右一格一格地移动,求使其移动至水平线上的最小步数. 思路 转载 先易后难,对于纵向的问题,我们推个公式,,这个很容易看出是货仓选址问题,k取y[i]的中位数就可以了.对于横向的问题,同样推一下公式,,推到这里,我们把与i相关的项全部合在了一起,只要把x[i]-i看作一个整体,这个子问题也是中位数问题. 代码 //poj1723 #include<cstdio> #include<algorithm> #include<cmath&…