POJ 1160 Post Office
WA
1. 写出了 dist[][] 数组和 minDist() 函数, 实现了 minDist 函数但最终却是使用了 dist 数组
不一致
代码
#include <iostream>
#include <stdio.h>
#include <memory.h>
#include <algorithm>
#include <vector>
#include <map>
#include <set>
#include <string>
#include <deque>
#include <cstring>
#define MIN(x,y) (x)<(y)?(x):(y)
using namespace std;int pos[10010];
int dp[10010][40];int minDist(int i, int j) {if(i >= j)return 0;int mid = (i+j)/2;int sum = 0;for(int k = i; k <= j; k ++) {sum += abs(pos[k]-pos[mid]);}return sum;
}int solve_dp(int v, int p) {memset(dp, 0x3f, sizeof(dp));// initfor(int i = 0; i <= p; i ++)dp[0][i] = 0;for(int i = 1; i <= v; i ++) {for(int j = 1; j <= p; j ++) {for(int k = 0; k < i; k ++) {dp[i][j] = min(dp[i][j], dp[k][j-1] + minDist(k+1,i));}}}return dp[v][p];
}int main() {freopen("C:\\Users\\vincent\\Dropbox\\workplacce\\joj\\test.txt", "r", stdin);int V, P;while(scanf("%d%d", &V, &P) != EOF) {for(int i = 0; i < V; i ++) {scanf("%d", pos+i+1);}int res = solve_dp(V, P);printf("%d\n", res);}return 0;
}
转载于:https://www.cnblogs.com/zhouzhuo/p/3678525.html
POJ 1160 Post Office相关推荐
- POJ 1160 Post Office(经典DP)
题目链接:点击打开链接 题意:一条高速公路,有N个村庄,每个村庄均有一个唯一的坐标,选择P个村庄建邮局,问怎么选择,才能使每个村庄到其最近邮局的距离和最小?最后打印这个最小值. 思路:典型的DP问题. ...
- poj 1160(Post Office)
http://poj.org/problem?id=1160 先讲讲我的思路:这道题首先很容易想到是用动态规划思想,所以我定义了一个二维数组dp[i][j],表示前j个位置,修建了i个邮局.所以推导出 ...
- poj 1160 Post Office(DP简单题)
给n个村子建p个邮局,求最佳的建设方案使得每个村子到最近的邮局的距离和最短,输出最短距离. 首先递推求出n个村子建1个邮局的最佳方案,画下图很容易理解. 再递推求解多个邮局的最佳方案,具体的看注释吧. ...
- poj 1160 dp
题意:n个村庄建p个邮局,最短距离和. dp[MAXN][35];//dp[i][j]表示前i个村庄有j个post且第i个村庄有post的最小值 优化前(969ms....): View Code 1 ...
- pku 1160 Post Office
#include <iostream> #include <cmath> #include <climits> using namespace std; int p ...
- kuangbin带你飞专题合集
题目列表 [kuangbin带你飞]专题一 简单搜索 [kuangbin带你飞]专题二 搜索进阶 [kuangbin带你飞]专题三 Dancing Links [kuangbin带你飞]专题四 最短路 ...
- 动态规划总结与题目分类
源博客链接:http://blog.csdn.net/cc_again/article/details/25866971 动态规划一直是ACM竞赛中的重点,同时又是难点,因为该算法时间效率高,代码量少 ...
- dp进阶之FFT加速+数据结构优化+不等式优化
快速傅里叶变换 快速傅里叶变换(英语:Fast Fourier Transform, FFT),是快速计算序列的离散傅里叶变换(DFT)或其逆变换的方法.傅里叶分析将信号从原始域(通常是时间或空间)转 ...
- 算法学习经典例题整理
陆续会对本篇博客进行更新! 搜索:https://vjudge.net/contest/292597 区间DP:https://vjudge.net/contest/293892 树状背包:https ...
最新文章
- 8.Deep Interest Evolution Network for Click-Through Rate Prediction论文详解
- Python 进阶 — 创建本地 PyPI 仓库与 Python 程序的离线部署
- 【迁移学习(Transfer L)全面指南】不需要时关闭autograd的方法:torch.no_grad
- Valid Sudoku
- go项目部署到linux服务器
- tp3.2php开启事务,Thinkphp 3.2.3 开启调试模式
- ios realm 文件_关于ios:具有后台进程的Realm实例会丢失数据
- MyBatis 为什么需要通用 Mapper ? 1
- (37)Verilog HDL拼接运算:拼接操作与重复操作
- zabbix自动发现及其自动注册
- 多普达D700手机利用USB电缆与电脑连接上网方法
- 适用于ActiveX v18.6 x86的Codejock Xtreme Suite Pro
- 学习笔记(二)之字符常量和字符串常量
- 零基础无经验,该怎么学编程,要学多久?
- PV,V,UV的概念,采集数据
- web前端开发零基础入门教程
- pbootcms网站模板安装教程图文详解
- 计算机基础运用知识woord,《计算机基础知识word.doc
- 拉丁方阵(非正交拉丁方阵)
- CCProcxy代理服务器的配置使用