当前位置: 首页 > news >正文

​P1103 书本整理 - 洛谷​

一、题目信息

1、题目链接:P1103 书本整理 - 洛谷。没有什么特别的思路,只是想记录下解这道题的曲折。

二、解题过程

1、状态转移方程,d[i][j]:表示前i本书留j本,不反映第i本书的去留情况,于是要有额外的空间存储d[i][j]对应的留下的最后一本书的序号pre。然后有以下情况:

  • i = j 时:第i本书保留,此时d[i][j]=d[i-1][j-1]+width_dif(i,i-1)。width_dif(i,i-1)表示第i本书和第i-1本书的宽度差的绝对值,下同
  • i > j 时,有两种情况:
    • 保留第i本书,则此时d[i][j]=d[i-1][j-1]+width_dif(i,pre),pre是d[i-1][j-1]对应的留下的最后一本书的序号
    • 不保留第i本书,则此时d[i][j]=d[i-1][j]

对于i>j,我们根据哪种情况得到的d[i][j]更小我们就选择哪种情况。然而若保留和不保留计算得到的d[i][j]相等呢,此时保留还是不保留呢?显然不能任意,于是我傻掉了。

2、于是只好乖乖的按照题解的做法,d[i][j]:表示前i本书留j本且第i本书留下,从而此时计算d[i][j]要考虑当前最后一本书的所有可能,变为d[i][j]=min{d[j-1][j-1]+width_dif(i,j-1), d[j][j-1]+width_dif(i,j), ..., d[i-1][j-1]+width_dif(i,i-1)},每一项分别对应最后一本书是第j-1本、第j本、...、第i-1本的情况。

3、这样这道题就结束了,动态规划边界就不写出来了

三、代码

#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;bool compare(const vector<int> &v1,const vector<int> &v2){return v1[0]<v2[0];
}int main(){int n,k;cin>>n>>k;k=n-k;vector<vector<int>> arr(n+1,vector<int>(2));int h,w;for(int i=1;i<=n;i++){cin>>h>>w;arr[i][0]=h;arr[i][1]=w;}sort(arr.begin(),arr.end(),compare);int dp[n+1][k+1];for(int i=0;i<=n;i++){for(int j=0;j<=k;j++) dp[i][j]=0;}for(int i=2;i<=n;i++){for(int j=2;j<=i&&j<=k;j++){int min_result=20000;for(int m=j-1;m<=i-1;m++){int temp=dp[m][j-1]+abs(arr[i][1]-arr[m][1]);if(min_result>temp) min_result=temp;}dp[i][j]=min_result;}}int result=20000;for(int i=k;i<=n;i++){if(result>dp[i][k]) result=dp[i][k];}cout<<result;return 0;
}
http://www.dtcms.com/a/299405.html

相关文章:

  • 方正小标宋简3.0,可编辑
  • 暑期算法训练.9
  • ArcGIS 2024软件下载及安装教程|ArcGIS软件安装附下载地址|详细安装说明
  • Linux中的线程(Lightweight Processes - LWP)
  • Flowable 实战落地核心:选型决策与坑点破解
  • MGER实验
  • 数字化转型 - 企业数字化建设的几点思考
  • 苍穹外卖学习笔记Day3
  • 6种AI Agent模式详解:从原理到实战应用
  • GRE和MGRE综合实验
  • 【NLP舆情分析】基于python微博舆情分析可视化系统(flask+pandas+echarts) 视频教程 - 热词数量分析日期统计功能实现
  • Netty综合案例(下)
  • 人工智能与能源:智慧能源的高效与可持续
  • 2025年入局苹果Vision Pro开发:从零到发布的完整路线图
  • uniapp+vue3——通知栏标题纵向滚动切换
  • 去除视频字幕 4 : 下一步,打算研究 Video Inpainting (视频修复):
  • MongoDB数据库高并发商业实践优化·运行优化之不可使用root账户进行MongoDB运行-优雅草卓伊凡
  • 【LeetCode 热题 100】79. 单词搜索——回溯
  • 《用于几何广义断层触觉传感的图结构超分辨率:在仿人面部的应用》论文解读
  • Linux随记(二十一)
  • COZE官方文档基础知识解读第六期 ——数据库和知识库
  • 【算法】前缀和经典例题
  • RU 19.28安装
  • ubuntu22.04系统 算力4090服务器 病毒防护 查杀等 运维入门(三)clamAV工具离线查杀
  • C 语言详解:特性、应用与发展
  • UniappDay03
  • 港股历史逐笔十档分钟级订单簿行情数据分析
  • ChibiOS深度解析:硬实时内核的全景剖析与FreeRTOS实战对比
  • 前端组件梳理
  • dify前端应用相关