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

洛谷 P1103 书本整理

原题

题目描述

对于给出的书本,Frank会先把它们按照高度排好序,接下来通过删去k本书来达到最小的不整齐度。

解题思路

我们可以令f[i][j]表示当有i本书时,留下j本的最小不整齐度。通过稍微地分析,我们就可以得到f[i][k1]=min(f[i][k1],f[j][k1-1]+abs(a[i].k-a[j].k));其中,i为当前有多少本书;k1为留下的本数。

#include<bits/stdc++.h> using namespace std; struct node{ int h,k; }a[110]; int f[110][110]; bool cmp(node a1,node a2){ return a1.h>a2.h; } int main(){ ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); int n,k; cin>>n>>k; for(int i=1;i<=n;i++){ cin>>a[i].h>>a[i].k; } sort(a+1,a+n+1,cmp); //按照高度进行排序 fill(f[1]+1,f[n+1],0x3f3f3f3f); //将f数组初始化为∞ for(int i=1;i<=n;i++)f[i][1]=0; //只留1本不整齐度为0 for(int i=2;i<=n;i++){ for(int j=1;j<=i-1;j++){ for(int k1=2;k1<=min(i,n-k)/*枚举留下k1本书*/;k1++){ f[i][k1]=min(f[i][k1],f[j][k1-1]+abs(a[i].k-a[j].k)); } } } int ans=INT_MAX; for(int i=n-k;i<=n;i++){ ans=min(ans,f[i][n-k]); //选取最小值 } cout<<ans; return 0; }
http://www.cnnetsun.cn/news/119014.html

相关文章:

  • 普通主机进入BIOS
  • Notally:终极简单快速的免费笔记应用完全指南
  • OctoSQL查询计划可视化终极指南:3个技巧快速优化SQL性能
  • CCM CRM单相有源功率因数校正boost PFC电路仿真探索
  • 使用EmotiVoice避免版权纠纷的正确姿势
  • 有声内容创作者福音:EmotiVoice一键生成带情绪的朗读音频
  • Java中PageHelper的拦截器实现机制
  • 为什么EmotiVoice成为开发者最青睐的开源TTS引擎?
  • 18、量子测量、信息增益与量子信息理论的哲学思考
  • 26、量子计算、力学与密码学深度解析
  • Nginx gzip压缩完整配置指南:如何快速提升网站性能
  • [深度学习] 大模型学习5-高效微调框架Unsloth使用指北
  • WIndows安装MongoDB数据库
  • NiceGUI之Button操作(ElementPlus组件库)
  • Claude code学习笔记(一)-环境安装claude code+ccr
  • WordPress中文完全教程:从菜鸟到神人的终极指南
  • EmotiVoice语音合成引擎的更新日志与版本迭代规划
  • 纪念日回忆录语音生成:温情科技应用
  • Flutter富文本渲染性能优化终极指南:长文本处理与资源回收策略
  • Ditto剪贴板管理器架构深度解析:从用户痛点到技术实现
  • Qwen3-4B终极指南:如何快速上手新一代AI语言模型
  • 5 款 AI 写论文哪个好?深度横评后,才发现虎贲等考 AI 是学术圈隐藏的 “六边形战士”!
  • EmotiVoice vs 传统TTS:情感表达能力的代际差异分析
  • POV-Ray 光线追踪终极指南:从零开始掌握专业渲染
  • EmotiVoice支持语音情感风格迁移学习
  • 定期第三方安全审计:EmotiVoice质量保证
  • 不同职业人群对EmotiVoice的应用需求分析
  • 手机系统预装应用包彻底删除
  • EmotiVoice能否实现多人对话同步生成?技术可行性评估
  • FusionCompute 8.0 实验环境搭建:完整资源获取与部署指南