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

积木城堡-DP

题目:

Problem C. 积木城堡

时间限制 1000 ms
内存限制 128 MB

题目描述

XC的儿子小XC最喜欢玩的游戏用积木垒漂亮的城堡。城堡是用一些立方体的积木垒成的,城堡的每一层是一块积木。小XC是一个比他爸爸XC还聪明的孩子,他发现垒城堡的时候,如果下面的积木比上面的积木大,那么城堡便不容易倒。所以他在垒城堡的时候总是遵循这样的规则。
小XC想把自己垒的城堡送给幼儿园里漂亮的女孩子们,这样可以增加他的好感度。为了公平起见,他决定把送给每个女孩子一样高的城堡,这样可以避免女孩子们为了获得更漂亮的城堡而引起争执。可是他发现自己在垒城堡的时候并没有预先考虑到这一点。所以他现在要改造城堡。由于他没有多余的积木了,他灵机一动,想出了一个巧妙的改造方案。他决定从每一个城堡中挪去一些积木,使得最终每座城堡都一样高。为了使他的城堡更雄伟,他觉得应该使最后的城堡都尽可能的高。
任务:
请你帮助小XC编一个程序,根据他垒的所有城堡的信息,决定应该移去哪些积木才能获得最佳的效果。

输入数据

第一行是一个整数N(N<=100) , 表示一共有几座城堡。以下 N 行每行是一系列非负整数,用一个空格分隔,按从下往上的顺序依次给出一座城堡中所有积木的棱长。用-1结束。一座城堡中的积木不超过100块,每块积木的棱长不超过100。

输出数据

一个整数,表示最后城堡的最大可能的高度。如果找不到合适的方案,则输出  。

样例输入
2
2 1 –1
3 2 1 –1
样例输出
3

思路:①将所有城堡能表示的高度存储起来②求交集里的最大值

值得学习的是这里用DP求子集的办法,非常之妙啊!假定dp[h-b]缺失当前块的高度可达,那么当前块加入之后,变成dp[h],h高度可达。注意一下更新状态的前后顺序

#include <bits/stdc++.h>
using namespace std;int main()
{int n;cin>>n;vector<vector<bool>>castel(n);//存储所有城堡的所有高度int min_total=1e5;//假定一个最高的高度for(int i=0;i<n;i++){int sum=0;vector<int>blocks;int h;while( cin>>h){if(h==-1){break;}blocks.push_back(h);sum+=h;}min_total=min(min_total,sum);vector<bool>dp(sum+1,false);//dp存储所有可达的高度,求子集和dp[0]=true;for(int b:blocks){for(int h=sum;h>=b;h--){if(dp[h-b]){dp[h]=true;}}}castel[i]=dp; }//求交集int ans=0;for(int i=min_total;i>=0;i--){bool ok=true;for(int j=0;j<n;j++){if(i>castel[j].size()||!castel[j][i]){ok=false;break;}}if(ok){ans=i;break;}}cout<<ans<<"\n";}

http://www.dtcms.com/a/615047.html

相关文章:

  • 魔兽做图下载网站wordpress切换语言 语言包
  • chrony组件和NTP组件的区别
  • 网站开发 相册wordpress熊掌
  • 计算机组成原理 刘宏伟 第六章 计算机的运算方法(下)
  • C语言编译软件文档 | 提供完整功能与使用指南,帮助开发者高效编译程序
  • 在线网站排名工具积分商城系统
  • 个人网站开发多少钱wordpress钩子大全
  • 在FreeBSD 14.3上部署轻量级Linux jail环境 仅仅占用10M内存
  • 室内设计师是干嘛的快速优化seo软件推广方法
  • Datawhale:吴恩达Post-training of LLMs,学习打卡4
  • ADC 药物:“生物导弹” 的精准抗癌机制与未来潜力
  • 网站管理助手山东 网站备案
  • 签证网站建设wordpress怎么做采集
  • dw做的网页在网站图片不显示网站开发范围说明书
  • 做网站的网页用什么软件好襄阳网站制作公司有哪些
  • 突破分割边界!多模态大模型X-SAM:从 “分割万物” 到 “任意分割”,实现全场景图像分割统一
  • 网站后台登录界面代码洛阳制作网站的公司吗
  • 个人可以建设头条网站吗关键词搜索指数
  • 西安网站建设推广专家安徽网站建设seo优化
  • 网站建设合同要求绍兴 网站建设
  • 字节技术总监笔记:linux多线程>>进程线程互斥管道
  • 个人网站备案 内容黑龙江建设兵团知青网站
  • AI 大模型如何给 CAD 3D 模型“建立语义”?
  • MYSQL指令合集
  • 北京企业网站百度wordpress结构化数据插件 sign 检测失败
  • 网站建设需要注意哪些事项前端网站开发课程
  • 周期购那个网站做的比较好太原seo整站优化
  • 加强网站安全建设说明报告范文湖南长沙招聘
  • 精品成品网站源码关键词优化易下拉效率
  • 做网站前期框架图怎么做解析视频网站