这题只能想到第一步。。

首先题目要求的是最小化两个变量的关系,那就必须转化成一个变量的关系,化动为静

比如:枚举限制因素,枚举所有值,再或者就是贪心

一开始想到枚举限制因素,即枚举三个集合中高度最大的数,但剩下的是分配问题,不太好dp TLE

然后就是贪心排序,,然后每个物品一定被选在一个背包里,这样先进入的一定是最大的,

然后直接在每个对应厚度中取当前高度答案最小的。。感觉是生造的dp

码:

#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
int k,f[2][2200][2200],i,j,n,m,now,sum[90];
long long ans=100000000000009;
struct la
{int x,y;
}a[99];
bool cmp(la a,la b)
{return a.x>b.x;
}
int main()
{scanf("%d",&n);for(i=1;i<=n;i++){scanf("%d%d",&a[i].x,&a[i].y); }sort(a+1,a+1+n,cmp);for(i=1;i<=n;i++)sum[i]=sum[i-1]+a[i].y;for(i=1;i<=n;i++,now^=1){
//      cout<<endl<<i<<" "<<a[i].x<<" "<<a[i].y<<endl;for(k=0;k<=sum[n];k++)for(j=0;j<=sum[n];j++){f[now][k][j]=1000000009;
//  if(f[now^1][j][k]<1000000009&&f[now^1][j][k]!=0)
//  cout<<j<<" "<<k<<" "<<f[now^1][j][k]<<endl;}for(j=0;j<=sum[i-1];j++)for(k=0;k<=sum[i-1];k++){f[now][j+a[i].y][k]=min(f[now][j+a[i].y][k],f[now^1][j][k]+(j==0)*a[i].x);f[now][j][k+a[i].y]=min(f[now][j][k+a[i].y],f[now^1][j][k]+(k==0)*a[i].x);f[now][j][k]=min(f[now][j][k],f[now^1][j][k]+(j+k==sum[i-1])*a[i].x);}}
for(i=1;i<sum[n];i++)
for(j=1;j<sum[n];j++)
{if(sum[n]-i-j>0)ans=min(1ll*f[now^1][i][j]*1ll*(max(sum[n]-i-j,max(i,j))),ans);
}
printf("%lld",ans);
} 

2017.10.25 书柜的尺寸 失败总结相关推荐

  1. 2017.10.25水题大作战题解

    rank: T1P1615 西游记公司 https://www.luogu.org/problemnew/show/P1615 scanf直接秒 1 #include<iostream> ...

  2. 2017.10.25

    日期计算 时间限制:3000 ms  |  内存限制:65535 KB 难度:1 描述 如题,输入一个日期,格式如:2010 10 24 ,判断这一天是这一年中的第几天. 输入 第一行输入一个数N(0 ...

  3. 2017.10.9 找相同字符 失败总结

    一上来先想到hash和dp.. 其实散的连续子串匹配问题后缀相关都是可以解决的 对于SA,,就只需两个串之间加#,然后扔到SA里,单调栈维护lcp贡献就可以了,,但似乎并不好写,SA的大循环容易残 于 ...

  4. 2017.10.25笔记3

    1.语法   <form method="get|post" action="数据向哪提交的地址">    //表单内容   </form&g ...

  5. 2017.10.28 管道取珠 失败总结

    这个题有一个新套路:  ∑ai^2 要知道一般的计数题是∑ai,,所以这多乘了一个自己有什么意义呢? 于是想到,两两枚举,加起来正好是ai^2:: 所以就有一个想法,枚举两种取法, 然后就是插数dp, ...

  6. 2017.10.27 sue的小球 失败总结

    这个题是论文题...说这个题之前先说一下关路灯 这两个题都有时间的限制,但都不能作为状态设计进去 关路灯那个题,由于要忽略时间的限制,所以对于一个区间省得最多,是不是就是最优解了呢 首先,就算你知道这 ...

  7. 2017.10.25 打鼹鼠 思考记录

    挺直白的dp 离散的是移动的过程,因为经过一番移动一定是为了出现在某个地点 所以直接m^2枚举,类似lis的转移即可 码: #include<iostream> #include<c ...

  8. 2017.10.24 学校食堂Dining 失败总结

    这题目描述不清啊.省选应该有人解释吧, 对着理解错的题调了一上午... 注意  如果一个人b==5 那这个人后面6个以后的都不能在这个人以前选 这个题就是怎么处理7的问题,状压枚举,同时满足条件的选人 ...

  9. 2017.10.23 卡牌游戏 失败总结

    dp好难啊.. 这个题主要是离散点找不准,但其实也就这样 1.尝试状态压缩,状态爆炸 2.状态里面1很多,尝试统计1的个数 3.枚举起点 但这样做还是没法做,因为没有终点 所以就再枚举一层终点.. 就 ...

最新文章

  1. 科大星云诗社动态20210514
  2. LINUX挂接移动硬盘
  3. Spring与Struts2整合的两种解决方案
  4. 在即将发布的Camel 2.21版本中改进了使用Apache Camel和ActiveMQ Artemis处理大型消息的功能...
  5. 《PHP和MySQL Web开发从新手到高手(第5版)》一2章 MySQL简介2.1 数据库简介
  6. 华为P50真机谍照曝光:璀璨粉色机身 牢牢锁定女性用户
  7. 华南师范大学:迈向智慧校园的“极简”之路
  8. 标题栏透明android,android改变标题栏的透明度
  9. SQL 两张结构一样的表合并查询
  10. 【前端基础】浏览器对象
  11. MATLAB中使用XLSREAD无法找到文件的一种解决方法
  12. 接口测试通用测试用例
  13. 善领dsa2020最新车机ce版_小米MIX 3 5G版成为首款获欧盟5G认证的骁龙855手机
  14. 什么是3322域名?3322域名如何注册?
  15. 数据库语言,转载自:红黑联盟
  16. oracle IMO史上最详细使用文档
  17. 暑期2020“大咖说开源” | 陈莉君:Linux从入门到深入内核有多远
  18. 将代码提交到github上
  19. Axure RP-产品原型设计工具使用
  20. stm32cube 和 RTX v5一起用的方法

热门文章

  1. 《JavaScript高级程序设计》红宝书第二遍阅读(动手实践)
  2. opengl学习笔记 (一)
  3. Android笔记 简单demo Spinner AutoCompleteTextView Menu
  4. 捋一捋20201217
  5. 你敢花一天时间看完本文在简历上添一笔“熟练使用C++编程”吗?
  6. Win10下安装LabelImg以及使用(绝对是全网最简单的教程)
  7. 重装jdk后运行java程序出现Error: could not open `C:\Program Files\Java\jre68\lib\amd64\jvm.cfg'的解决办法
  8. 存储:Cookie/localStorage
  9. python 字节码 优化_字节码优化
  10. python opencv pdf脚本之家_OpenCV 3和Qt5计算机视觉应用开发 PDF 影印含源码版