poj1160 Post Office
来源:互联网 发布:centos 6.7 升级内核 编辑:程序博客网 时间:2024/04/28 22:27
点击打开链接 DP
题意:有V(1<=V<=300)个村庄在x轴上,给出横坐标,有P(1<=P<=30,P<=V)个邮局要建在这些村庄里,每个村庄至多建一个,问怎样建使得每个村庄到最近的邮局的距离之和最短。
分析:这种题毫无疑问是DP,难点在于如何动态转移,考虑到如果两个邮局已建好,这两个邮局之间的村庄总距离也就确定了,dp[i][j]表示在前i个村庄建j个邮局*且第j个邮局建在第i个村庄,那么d[i][j]=min(d[k][j-1]+cost[k][j]),cost[i][j]为在i,j建邮局,村庄i-j到最近邮局距离之和。
#include<iostream>#include<string>#include<cstring>#include<cstdio>#include<cmath>#include<iomanip>#include<map>#include<algorithm>#include<queue>#include<set>#define inf 100000000#define PI acos(-1.0)#define eps 1e-8#define seed 131using namespace std;typedef unsigned long long ULL;typedef long long LL;typedef pair<int,int> pii;const int maxn=100005;int v,p;int m[305];int d[305][35];int cost[305][305];int main(){ scanf("%d%d",&v,&p); for(int i=1;i<=v;i++) scanf("%d",&m[i]); for(int i=1;i<=v;i++) for(int j=1;j<=p;j++) d[i][j]=inf; d[1][1]=0; for(int i=2;i<=v;i++) { int ans=0; for(int j=1;j<i;j++) ans+=m[i]-m[j]; d[i][1]=ans; } for(int i=1;i<=v;i++) { for(int j=1;j<=v;j++) { int ans=0; for(int k=i+1;k<j;k++) { ans+=min(m[k]-m[i],m[j]-m[k]); } cost[i][j]=ans; } } for(int i=1;i<=v;i++) { for(int j=2;j<=p;j++) { if(i<j) continue; for(int k=j-1;k<i;k++) d[i][j]=min(d[i][j],d[k][j-1]+cost[k][i]); } } int tot=inf; for(int i=p;i<=v;i++) { int u=d[i][p]; for(int j=i+1;j<=v;j++) u+=m[j]-m[i]; tot=min(tot,u); } cout<<tot<<endl; return 0;}
0 0
- poj1160(Post Office)
- poj1160 Post Office
- poj1160 Post Office
- POJ1160 Post Office
- poj1160 Post Office
- poj1160 Post Office
- POJ1160 【Post Office】
- [dp] poj1160 Post office
- poj1160 Post Office
- POJ1160, post office
- POJ1160 Post Office 动态规划
- 【POJ1160】Post Office(动态规划 DP)
- poj1160——Post Office//dp
- poj1160 Post Office 四边形优化dp
- POJ1160--Post Office(四边形不等式优化)
- DP 【POJ1160】POST OFFICE 邮局问题
- POJ1160 Post Office(经典DP)
- poj1160 Post Office 四边形不等式优化
- 遇到个小问题,Java泛型真的是鸡肋吗?
- SSH框架之Hibernate(1)——映射关系
- android activity 窗口化后 隐藏
- 直观的Xcode快捷键展示
- MyEclipse(2013) 出现从svn检出项目项目后source folder 以文件夹的方式组织的解决方法
- poj1160 Post Office
- 随手笔记 UIlabel 简单富文本
- 无题
- 启动和关闭ADB服务(adb start-server和adb kill-server)
- Velocity 资料
- UNICODE与UTF-8的转换详解
- SQL Server设置主键自增长列
- busybox 文件系统 etc目录,登陆 login,密码 password,shadow
- LeetCode OJ 之 Search in Rotated Sorted Array (有序数组翻转后的查找)