pku 1160 Post Office(DP)

BZOJ2654——WQS二分+最小生成树 Description 给你一个无向带权连通图,每条边是黑色或白色。让你求一棵最小权的恰好有need条白色边的生成树。 题目保证有解。 Input 第一行V,E,need分别表示点数,边数和需要的白色边数。 接下来E行,每行s,t,c,col表示这边的端点(点从0开始标号),边权,颜色(0白色1黑色)。 Output 一行表示所求生成树的边权和。 V<=50000,E<... 阅读详情

 

题目大意:有i个村庄在一条直线上,要在这i个村庄上建立j个邮局(j<=i)。要使各村庄到最近的邮局的距离之和最短,问这个最短距离和是多少。

分析:DP。count[i][j]表示i个村庄建立j个邮局时的最短距离和。为了方便写状态转移方程,我在这里强制了第j个邮局必须建立在第i个村庄,也就是最后一个村庄必须有一个邮局。

min_sum_length[i][j]表示在第i个村庄到第j个村庄范围内有且只有两个邮局,两个邮局分别在第i和第j个村庄时,村庄(i~j)的最短距离和。

于是有方程 count[i][j]=min(count[k][j-1]+min_sum_length[k][i]);

在这里要用到的一个技巧是,在读入village个村庄的位置后,初始化position[village+1]=VERY_FAR。这样,虽然第village+1位置有我们虚构的一个村庄,但是因为距离太远,永远不会有其他村庄的人跑来这里。于是count[village+1][post+1]的值即是最后的答案。

 

自己写完后,百度了一下,看到别人的一种思路。count[i][j]就是表示i个村庄建立j个邮局时的最短距离和,没有其他什么限制条件。cost[i][j]表示在第i到第j个村庄中建立一个邮局时,这(j-i+1)个村庄到这个邮局的最短距离和。于是有count [i][j] = min{ count [k][j-1]+cost[k+1][i]}(j-1 <= k <= i-1);时间效率和我的一样,都是n^3。

 

 

 

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

相关推荐

邮局PKU1160动态规划

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

pku1160 Post Office

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

ccsu_001的专栏 1366

Apache Hop集成Spring Boot实战:从配置到执行HPL文件

本文详细介绍了将Apache Hop集成到Spring Boot应用中的完整实战方案。通过配置核心依赖、初始化Hop环境、编写服务层逻辑,实现了在Java应用中程序化执行HPL管道文件,从而将可视化ETL能力无缝嵌入微服务架构,提升数据处理的自动化与可维护性。

blue42的博客 477

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

C语言实现AES加解密

C语言实现AES加解密 #include<stdio.h> #include<string.h> #include<time.h> #include<windows.h> #define Nb 4 //数据块行数 #define Nk 4 //密码块行数 #define Nr 10 //轮加密次数 unsigned char RoundKey[4*Nb*(Nr+1)]; //轮密钥 unsigned char Key[17];

qq_44310495的博客 8891

Wordpress实战之第二章安装wordpress 软件需要的软件

使用下载并安装phpstudy面版工具 wget -O install.sh?https://notdocker.xp.cn/install.sh?&& sudo bash install.sh 2.安装成功如下 ==============运行状态========================= webpanel stop phpstudy running =================...

安全参透之旅 612

[动态规划]Pku1160--Post Office

http://acm.pku.edu.cn/JudgeOnline/problem?id=1160 Post OfficeTime Limit: 1000MS Memory Limit: 10000KTotal Submissions: 7581 Accepted: 4018DescriptionThere is a

幻想の天地 596

AI视频生成本地搭建图文详细过程

在自己的电脑上搭建一个AI,主要用于通过自己输入的关键字来自动生成视频文案,把视频文案自动生成视频,再自动给视频配音配字幕。

张小三的博客 4694

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

Claude Code 完整学习笔记

Claude Code 学习笔记摘要 Claude Code是Anthropic推出的智能编码工具,基于Claude Opus 4.5模型构建,提供跨平台支持(终端/VS Code/JetBrains/Web等)。核心功能包括: 代码库理解与多文件编辑 命令执行与开发工具集成 智能体协作开发流程 安装要求Node.js≥18,提供原生/Homebrew/npm等多种安装方式,支持环境变量配置API访问。基础交互模式包括会话管理、文件操作和代码审查等功能,可自动读写文件并执行精确修改。 (149字)

虚心若愚 812

YOLOv26全流程实战手册:从yaml配置拆解到训练推理参数调优(附虚拟环境搭建)

以“车辆、行人、小型物体”3类数据集为例,修改# 1. 修改类别数nc: 3# 2. 调整锚框(适配小目标)anchors:- [12,16, 16,24, 33,23] # 增加小锚框# 3. 轻量化调整(边缘部署)depth_multiple: 0.25 # 降低深度系数width_multiple: 0.20 # 降低宽度系数# 其余Backbone/Head结构不变yaml配置:核心是调整nc(类别数)、(轻量化)、anchors(适配目标尺度);虚拟环境。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 879

四边形不等式优化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

SPSS 多重共线性问题:编程解决方案

多重共线性会导致回归模型的不稳定性,使得估计的回归系数失去解释力,降低模型的准确性和可靠性。通过执行这些代码,你将能够计算和查看VIF和CI的结果,并确定是否存在多重共线性问题。上述代码执行了一个回归分析,其中A是我们感兴趣的因变量,B、C、D和E是我们要检查的自变量。接下来,我们将执行多重共线性的检测。通过执行上述代码,你将能够看到每个自变量的VIF和CI值,以及预先设置的阈值。上述代码将计算VIF和CI的值,并将结果写入指定路径的结果文件中。接下来,我们可以使用以下代码来计算和显示VIF和CI的值。

CyberGenius的博客 1426

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

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

weixin_30642305的博客 175

YOLOv10改进目录一览 | 涉及卷积层、轻量化、注意力、损失函数、Backbone、SPPF、Neck、检测头等全方位改进

如何寻找创新点?为什么要使用这个模块?如何才能提升模型的精度?这是贯穿我们研究始终的问题。创新点在这个专栏中我已经整理好了,这已经省去了大部分时间,但是当我们使用这些新的模块去优化已有的模型,如何才能提升模型的精度,才是我们要达到的最终目标。当然我们可以使用传统的A+B+C的方法去堆积模块,然后是进行大量的实验去排列组合以实现最终的精度提升,这无可厚非。

Limiiiing的博客 1万+

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

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

android 蓝牙通讯demo

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

poj 1160 Post Office(dp)

Post Office Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 16131   Accepted: 8757 Description There is a straight highway with villages alongside the highway.

madaidao的专栏 417

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

计算机控制技术及应用

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

[WQS二分] BZOJ2654:tree

以前做这题的时候以为只是个神奇的二分,没有完全懂原理,现在发现实际上就是 WQSWQS 二分。 考虑 g(x)g(x) 表示选共 xx 条白边的最优解,可以感觉到这个 g(x)g(x) 应是上凸的,满足斜率不降。所以就 WQSWQS 二分就好了。#include<cstdio> #include<algorithm> using namespace std; const int maxn=1000

Lynstery's blog 702

POJ1160

题目链接 这倒题目对我来说感觉很难。想了很久都没有想到,后来看了一份ppt才敲出了代码。这是那个PPT的链接:PPT链接 这里面讲的很详细,照着它说的推一下就能写出程序了。关于最后一页的优化我没有做,不过我感觉应该不会很难。 下面是我A的代码,效率有点低。以后有兴致了,再试着不参考,写一下优化过的代码,看看自己是不是真的理解了。 /*Source Code Problem: 1160

Bearox 编程之路 1061

poj1160 Post Office(区间dp)

题意 有p个邮局,n个村庄,邮局只能建在村庄里, 求令所有寄信距离之和最短的值。 题解 数据比较弱,O(n^3)过了。 dp[i][j]表示前i个村庄需要j个邮局, 其必为某个前k个村庄用j-1个邮局,k+1到i用1个邮局的最小值。 即可实现转移,对于某段区间建一个的最小值,邮局一定建在中位数即可。 如果有两个中位数,显然两个地点的值是相等的。 从左中位数a转移到右中位数...

小衣同学的博客 453

POJ 1160 Post Office (水DP)

思路:设dp[i][j]为前j个地方放i个邮局且第i个放在地方j上的最小距离和。 那么dp[i][j] = min(dp[i][j],dp[i-1][k] +w(k,j)) (w(k,j)为区间k到j的最小距离和) 这里可以用四边形不等式优化。 我的代码: #include #include #include #include using namespace std; const

Neutralzz的博客 320

poj1160

#include #include using namespace std; int a[301]; __int64 cost[301][301]; __int64 dp[301][31]; int main() { int v,p; while(cin>>v>>p) { for(int i=1;iv;i++)

wys_NO1的博客 570

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

poj1160 Post Office

dp[i][j]:前i个村庄建j个邮局的最小距离和 dis[i][j]:第i个村庄到第j个村庄之间建1个邮局的最小距离和(预处理) 状态转移方程:dp[i][j] = min(dp[i][j],dp[k][j - 1] + dis[k + 1][j]) 还有一点,计算dis[i][j]时,dis[i][j - 1]已经计算出来,而且可以推导出无论j - 1为奇数还是偶数,dis[i][j]均可以写...

weixin_45885433的博客 198
上一篇: pku 1458 Common Subsecquence(DP)
下一篇: pku 1163 The Triangle(DP)
logic_nut
博客等级 码龄17年 103粉丝 247原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值