[动态规划]Pku1160--Post Office

【难题】动态规划 NOI 162:Post Office 7624:山区建小学——找状态方程有点难 思路详细 题目:点击打开链接dp[i][j]:表示在1~i个村庄中建j个邮局时的路径最小值 m[i][j]:表示从i到j只建立一个邮局的路径的最小值若从第i个村庄到第j个村庄只选取一个作为邮局的话则选择第(i+j)/2个一开始我没懂,直到自己画了个图,假设把在5建的邮局移到4,则其他村庄的距离变化如图,从4到3不会变化,所以除法向下取整不会有问题。则状态转移方程:m[i][j]=m[i][j-1]+a[i]... 阅读详情

http://acm.pku.edu.cn/JudgeOnline/problem?id=1160

 

Post Office
Time Limit: 1000MS Memory Limit: 10000K
Total Submissions: 7581 Accepted: 4018

Description

There is a straight highway with villages alongside the highway. The highway is represented as an integer axis, and the position of each village is identified with a single integer coordinate. There are no two villages in the same position. The distance between two positions is the absolute value of the difference of their integer coordinates.

Post offices will be built in some, but not necessarily all of the villages. A village and the post office in it have the same position. For building the post offices, their positions should be chosen so that the total sum of all distances between each village and its nearest post office is minimum.

You are to write a program which, given the positions of the villages and the number of post offices, computes the least possible sum of all distances between each village and its nearest post office.

Input

Your program is to read from standard input. The first line contains two integers: the first is the number of villages V, 1 <= V <= 300, and the second is the number of post offices P, 1 <= P <= 30, P <= V. The second line contains V integers in increasing order. These V integers are the positions of the villages. For each position X it holds that 1 <= X <= 10000.

Output

The first line contains one integer S, which is the sum of all distances between each village and its nearest post office.

Sample Input

10 5
1 2 3 6 7 9 11 22 44 50

Sample Output

9

Source

 

题目大意:在一条高速公路上,有n个点,现要在其中m个上建立邮局,使得所有点到离它最近的邮局的距离最小。

 

分析:对于最优化问题,首选的算法是dp。分析题目不难得出经典状态:令f[i,j]表示前i个点上建立j个邮局的最小距离和。现在关键是状态转移。

这题是经典的剖分型dp。考虑在f[i,j-1]的基础上,再建一个邮局。若建在k处,则得到的解为f[k-1,j-1]+cost[k,i]。这里,cost[k,j]表示,在k..j之间建一个邮局的最小距离和,可以事先预处理得到。只建一个邮局的话,建在中点无疑是最好的。这样,就得到了状态转移方程:

f[i,j]:=min(f[k-1,j]+cost[k,i])。(j<=k<=i)。

时间复杂度为O(MN^2)。可以优化,利用四边形不等式,不过我不会= =

对于这题的数据规模,这个算法已经可以秒杀了。

codes:

 

POJ 1125 1157 1159 1160 1163 1179 pku online judge 通过源码 C/C++ 立即下载

相关推荐

邮局PKU1160动态规划

这是动态规划中经典中的经典,希望能够帮助所有爱好ACM童鞋!

pku 1160 Post Office(DP)

 题目大意:有i个村庄在一条直线上,要在这i个村庄上建立j个邮局(j)。要使各村庄到最近的邮局的距离之和最短,问这个最短距离和是多少。分析:DP。count[i][j]表示i个村庄建立j个邮局时的最短距离和。为了方便写状态转移方程,我在这里强制了第j个邮局必须建立在第i个村庄,也就是最后一个村庄必须有一个邮局。min_sum_length[i][j]表示在第i个村庄到第j个村庄范围内有

low coder 753

SAP ABAP MIGO增强实战:自定义页签与字段的完整实现指南

本文详细介绍了SAP ABAP中MIGO增强的实战指南,包括自定义页签与字段的完整实现步骤。通过BADI增强技术,开发者可以快速满足企业个性化需求,如添加供应商批次号等特殊字段。文章涵盖数据存储结构设计、BADI框架实现、核心方法编写及数据持久化方案,帮助用户高效完成MIGO屏幕增强开发。

study的专栏 774

pku1160 Post Office 解题报告

思路:用opt[i][j]记录把前i个邮局建到前j个村庄中的最优解,用cost[i][j]记录所有在i到j村庄中,建1个邮局的最小代价。显然邮局应该设到中点。让前i个邮局覆盖前j个村庄,第i+1个邮局覆盖第j+1至j+k个村庄(j+k,则状态转移方程为 opt[i+1][j+k]=min{opt[i][j]+cost[j+1][j+k];} (k+j 代码如下: Code:

xxm137164869的专栏 710

Axure rp9 中继器新建表格

Axure rp9 中继器新建表格

weixin_49295490的博客 1652

每天10分钟,混剪视频Agent产出50条爆款,单月变现6位数(喂饭级教程)

混剪视频是指将多个视频片段、图片或音频素材进行剪辑组合,创造出新的视频内容。随着Coze上线联动剪映功能,混剪视频制作正在进入自动化时代,为创作者带来巨大便利。高效自动化处理:AI可以自动完成琐碎的剪辑工作,让创作者省下大量时间专注于项目策划和创意。批量素材产出:特别适用于抖音、小红书和视频号等平台上的养生、科普、心理、疗愈等垂直领域,可以自动化批量生产图片和视频素材。引流获客:通过优质内容吸引目标受众知识变现:通过教学传授技术工具变现:将搭建好的工作流作为产品销售。

汤师爷的博客 866

pku1160 Post Office

题目链接:http://acm.pku.edu.cn/JudgeOnline/problem?id=1160题意简述:有n个村庄,m个邮局,给定各村庄的坐标位置,求n个村庄建立m个邮局使得所有村庄距它最近邮局的距离的和最小,输出最小值。分析:看起来和前一道题目有点类似,但是我写这道题目的时候感觉要麻烦一点,所以可以把这题归类为上一道题的变形加强。下面来确定状态,设dp[i][j]为前i个村

ccsu_001的专栏 1366

从PSDK到ROS节点:实战GPS数据发布与CMake配置

本文详细介绍了如何从大疆PSDK获取GPS数据并封装为ROS节点的实战过程,包括PSDK编译、GPS数据订阅、ROS节点实现及CMake配置优化。通过具体代码示例和调试技巧,帮助开发者快速实现无人机传感器数据与ROS系统的集成,提升开发效率。

weixin_30843605的博客 458

Pku acm 1160 post office 动态规划题目解题报告(十八)

http://acm.pku.edu.cn/JudgeOnline/problem?id=1160题目给出m个村庄及其距离,给出n个邮局,要求怎么建n个邮局使代价最小。思路:用opt[i][j]记录把前i个邮局建到前j个村庄中的最优解,用cost[i][j]记录所有在i到j村庄中,建1个邮局的最小代价。显然邮局应该设到中点。让前i个邮局覆盖前j个村庄,第i+1个邮局覆盖第j+1至j+k个村

苏强的专栏 3979

STM32Cube高效开发教程<高级篇><FreeRTOS>(十八)-----软件定时器

一、 软件定时器概述声明:本人水平有限,博客可能存在部分错误的地方,请广大读者谅解并向本人反馈错误。本专栏博客参考《STM32Cube高效开发教程(高级篇)》,有意向的读者可以购买正版书籍辅助学习,本书籍由王维波老师、鄢志丹老师、王钊老师倾力打造,书籍内容干货满满。在FreeRTOS中,自动创建的任务有空闲任务和定时器服务任务。FreeRTOS可以通过定时器服务任务提供软件定时器功能。在某些对定时精度要求不太高,无须使用硬件定时器的情况下,我们可以使用FreeRTOS的软件定时器。

我的博客 157

基于RK3588边缘计算平台的人数统计系统设计与实现

针对人数统计场景优化的YOLOv5模型完整的模型转换和部署流程高效的嵌入式推理优化方案低成本、低功耗的部署方案实时性强,满足工业应用需求可扩展性好,适配多种应用场景引入注意力机制,提高小目标检测能力结合多模态信息,增强系统鲁棒性开发可视化管理平台,提升用户体验随着边缘计算和AIoT技术的快速发展,基于深度学习的智能视觉系统必将在更多领域发挥重要作用。本项目为相关应用的开发和部署提供了有价值的参考,为推动人工智能技术的产业化应用做出了积极贡献。

LXY_LOVE36的博客 147

四边形不等式优化dp应用------pku 1160 post office 解题报告

四边形不等式优化动态规划原理:1.当决策代价函数w[i][j]满足w[i][j]+w[i’][j’]时,称w满足四边形不等式.当函数w[i][j]满足w[i’][j]时,称w关于区间包含关系单调.2.如果状态转移方程m为且决策代价w满足四边形不等式的单调函数(可以推导出m亦为满足四边形不等式的单调函数),则可利用四边形不等式推出最优决策s的单调函数性,从而减少每个状态的状态数,将算法的时间

find_my_dream的专栏 7660

计算机组成原理(第三版)唐朔飞-第七章指令系统-课后习题

机器字长是指CPU一次能处理数据的位数通常与CPU的寄存器位数有关。指令字长是指机器指令中二进制代码的总位数。存储字长是指存储单元中存放二进制代码的总位数。三者可以相等也可以不等视不同机器而定。答:OP(4位)A1(6位)A_1(6位)A1​(6位)A2(6位)A_2(6位)A2​(6位)设二地址指令格式为该指令系统的基本格式,4位操作码共有16种编码,其中13种用来定义二地址指令,还剩3种可用作扩展标志。一地址指令条数=3∗26=192。

weixin_45735391的博客 7万+

pku 1160 Post Office

#include #include #include using namespace std;int pos[301];int v[31][301];int cost[301][301];//状态转移方程为: // 前i个邮局控制前j个村庄的最小距离和:// v[i][j] = min{v[i-1][k]+cost[k+1][j]}(i-1 <= k <=

笑风生 1019

华为OD机试双机位A卷 - VLAN资源池 (C++ & Python & JAVA & JS & GO)

华为OD机试2025双机位A卷 VLAN资源池,提供Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解

qq_45776114的博客 879

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

pku1160 Post Office 中等难度的DP

/*Post OfficeTime Limit: 1000MS        Memory Limit: 10000KTotal Submissions: 6697        Accepted: 3531DescriptionThere is a straight highway with villages alongside the highway. The high

zonelight的专栏 717

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

pku 1160 Post Office 四边形不等式优化 经典DP

pku 1160 Post Office 四边形不等式优化 经典DP 邮局 经典的动态规划问题,主要体现在状态的设计和可以用四边形不等式优化上 题意是:给你n个村庄,然后让你用m个邮局对这些村庄进行覆盖,然后让你设计覆盖方式使得每个村庄到其对应邮局的路程和最短 本题状态的设计的灵感来源于“覆盖”这个点,最优子结构其实就是用 m 个邮局覆盖,以及用 m-1个邮局覆盖 那...

weixin_30642305的博客 175

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

重装Win7后网线没反应?用硬件ID三步修复网卡驱动

操作系统重装后,底层驱动文件会随系统盘格式化而消失,其中网卡驱动的缺失会导致电脑直接断网,表现为网口灯不亮、网络图标红叉。要判断是否为驱动问题,可通过设备管理器中的“以太网控制器”黄色感叹号快速锁定。利用硬件ID中的VEN和DEV代码,可以精准匹配网卡型号,避免盲目下载。在断网状态下,可通过手机USB共享网络、另一台电脑加U盘、离线版驱动工具等途径将驱动导入系统。安装时需注意系统位数和数字签名问题,安装完成后还需检查IP获取方式。最后建议备份驱动并制作装机急救U盘,以便日后重装系统时快速恢复网络。掌握硬件I

weixin_30247781的博客 306

POJ1160 Post Office 动态规划

题目大意:一条直线上有n个村庄,定义村庄之间的距离为两个村庄坐标的绝对值,要在这n个村庄当中建立m个邮局,每个村庄只能使用离其最近的邮局,求出使所有村庄都使用邮局所需走的最短距离。 我们都知道只有一个邮局的情况,那么这个邮局肯定在正中间,这样才能使所有村庄到这点的距离之和最短;现在有m个邮局,我们定义一个二维数组tmp(i,j)来表示在第i个村庄到第j个村庄之间有一个邮局时的最短距离和,定义dp

AC_Gibson的专栏 920

poj 1160 Post Office(动态规划:较难)

求把p个邮局建在v个村庄对应的最小距离

小华在努力~ 1237

I - Post Office POJ - 1160 (动态规划)

I - Post Office  POJ - 1160  There is a straight highway with villages alongside the highway. The highway is represented as an integer axis, and the position of each village is identified with a sin...

东风clz 411

poj1160post office{动态规划…

var   v,p,i,j,pos:longint;   x:array[1..300] of longint;   w:array[1..300,1..300] of longint;   f:array[1..300,0..30] of longint; procedure swap(var a,b:longint); var   t:longint; begin   t:=a;a:=b;b:

hugedata 776

noi2004-郁闷的出纳员(cashier) 解题报告

  NOI2004郁闷的出纳员【问题描述】 OIER公司是一家大型专业化软件公司,有着数以万计的员工。作为一名出纳员,我的任务之一便是统计每位员工的工资。这本来是一份不错的工作,但是令人郁闷的是,我们的老板反复无常,经常调整员工的工资。如果他心情好,就可能把每位员工的工资加上一个相同的量。反之,如果心情不好,就可能把他们的工资扣除一个相同的量。我真不知道除了调工资他还做什么其它事情。

幻想の天地 2051

[动态规划]Pku2411--Mondriaan's Dream

Mondriaans DreamTime Limit: 3000MS Memory Limit: 65536KTotal Submissions: 3732 Accepted: 2156DescriptionSquares and rectangles fascinated the famous Dutch painter

幻想の天地 2022
上一篇: [动态规划]Pku1159--Palindrome
下一篇: [并查集]Pku1703--Find them,Catch them
fstephen
博客等级 码龄18年 7粉丝 28原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值