LA 4987 背包
题意:
有n个施工队,给定他们的位置,有m个防空洞,给定位置,求将施工队放到m个防空洞里面,最少的总距离?
n<=4000
分析:
dp[i][j] 前 i 个施工队,放到前 j 个防空洞里面的最少距离;
dp(i+1,j) = min(dp(i,j),dp(i,j-1)) + dist(a[i] - b[j]);
DP采用滚动数组;
那么,第二维的防空洞该怎么循环呢?
因为,每个防空洞都要有,那么这类似于背包中的容量,刷表的方式;
![](/assets/blank.gif)
![](/assets/blank.gif)
#include <bits/stdc++.h>using namespace std;const int maxn = 4000+5; const int inf = 0x3f3f3f3f;struct node {int d;int id;int ans; }A[maxn],B[maxn];long long dp[maxn]; int path[maxn][maxn]; int n,m;bool cmp(node a,node b) {if(a.d==b.d)return a.id < b.id;return a.d < b.d; }void find_path(int i,int j) {if(i)find_path(i-1,path[i][j]);A[i].ans = B[j].id; }int cmp1(node a,node b) {return a.id < b.id; }int main() {while(~scanf("%d",&n)) {for(int i=0;i<n;i++){scanf("%d",&A[i].d);A[i].id = i;}scanf("%d",&m);for(int i=0;i<m;i++) {scanf("%d",&B[i].d);B[i].id = i;}sort(A,A+n,cmp);sort(B,B+m,cmp);memset(dp,inf,sizeof(dp));dp[0] = abs(A[0].d-B[0].d);for(int i=1;i<n;i++) {for(int j=min(m-1,i);j>=0;j--) {if(!j||dp[j]<dp[j-1]) {path[i][j] = j;dp[j] = dp[j] + abs(A[i].d-B[j].d);}else {path[i][j] = j-1;dp[j] = dp[j-1] + abs(A[i].d - B[j].d);}}}printf("%lld\n",dp[m-1]);find_path(n-1,m-1);sort(A,A+n,cmp1);for(int i=0;i<n;i++)printf("%d ",A[i].ans+1);puts("");}return 0; }
View Code
转载于:https://www.cnblogs.com/TreeDream/p/7076961.html
LA 4987 背包相关推荐
- UVa在线比赛单题汇总-----DP专题
动态规划基础 例题 LA 3882 UVa 3882 - And Then There Was One 递推------------无力orz UVa 10635 10635 - Prince and ...
- Codeforces Round #104 (Div. 2) E DP(01背包模型) +组和+除法取模求逆元
题意: 规定只包含4或7的数为幸运数字,给定n个数的序列,求他的子序列,使得该子序列的长度为k并且满足该子序列中不存在相同的两个幸运数字.问一共寻在多少种可能.(只要该数的下标不同则认为是不同的序列) ...
- 牛客网暑期ACM多校训练营(第三场)A.PACM Team(多重01背包)
链接:https://www.nowcoder.com/acm/contest/141/A 来源:牛客网 题目描述 Eddy was a contestant participating in ACM ...
- [luogu4389]付公主的背包
前言 一道巧妙的推式子题 题目相关 链接 题目大意 给出nnn个商品,第iii个商品的体积为viv_ivi,并且有无限个 现在给出一个mmm,对背包大小s∈[1,m]s\in[1,m]s∈[1,m] ...
- HDU 1248 寒冰王座(全然背包:入门题)
HDU 1248 寒冰王座(全然背包:入门题) http://acm.hdu.edu.cn/showproblem.php?pid=1248 题意: 不死族的巫妖王发工资拉,死亡骑士拿到一张N元的钞票 ...
- 单调队列多重背包时间复杂度O(vn)
版权声明:本文为博主原创文章,未经博主允许不得转载. 多重背包问题: 有N种物品和容量为V的背包,若第i种物品,容量为v[i],价值为w[i],共有n[i]件.怎样装才能使背包内的物品总价值最大? 网 ...
- WCDMA中的URA和LA/RA
1.关于URA的概念: URA(UTRAN Registration Area)是UTRAN内部区域的划分适用于UE处于RRC连接状态的情形,而且只能在UTRAN端使用(比如由UTRAN发起的寻呼). ...
- 浅说——九讲背包之01背包
所谓九讲,也就是: 0/1背包 0/1背包降维 完全背包 多重背包(二进制优化) 混合背包 二维费用背包 分组背包 有依赖的背包 背包的方案总数\背包的具体方案路径 0/1背包: [问题描述](经典) ...
- codevs——2894 Txx考试(背包)
时间限制: 1 s 空间限制: 32000 KB 题目等级 : 黄金 Gold 题解 题目描述 Description Txx是一个成绩很差的人,考试便成了他的噩梦.于是他常在考试时睡觉以打发时间.今 ...
- HDU-1203 I NEED A OFFER!-0、1背包及空间优化
I NEED A OFFER! Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) ...
最新文章
- python定时任务contrib_django+celery配置(定时任务+循环任务)
- 用archoctopus下载花瓣
- ​实时音视频服务的“既要、又要、还要”
- c 语言差错编码实验结果,C语言程序设计实验报告(四).doc11111111111111111.doc
- Linux 之 编译器 gcc/g++参数详解
- 【BZOJ2326】【codevs2314】数学作业,第100篇博文纪念
- python turtle画简单树_大家用Python-turtle库作图画出过哪些漂亮的树哇 ?
- 1个app的完整测试用例_同你分享1个完整的聚类分析案例
- EXCEL中,函数中的双引号如何表示?
- sonar报java.io.StreamCorruptedException: invalid internal transport message format, got (48,54,54,50)
- Dubbo源码解析-Dubbo架构的实现
- android第三方apk找不到/system/lib64/里面的系统库
- Angular JS introduce
- 微信公众平台模版消息
- Apple Music 推出空间音频和无损音频
- 122、影响爆炸极限的因素
- [Unity Shader] 水纹着色器 Water Shader
- 关于wordcloud安装
- Grafana监控安装和监控看板创建
- 文件名称重命名后,一键恢复的技巧