传送门 很容易看出来这是一道DP题,那么怎么设置状态就成了这道题的关键.本题有点特殊的地方是有两个维度的状态,而每个维度又有三个部分的参数,如果全部设置出来的话肯定会MLE.首先对书的厚度状态简化. 书的厚度是求和的,这个显然不能作为状态的值,作为状态的参数是比较好的, 30*70=2100 2100^3是内存无法接受的,简化状态求出前i本书的前缀和sum[i],如果第一层的厚度是i,第二层的厚度是j,那么第三层的状态显然是sum[i]-j-k,bingo,内存的问题解决了.显然两个维度一个维度…
这道dp算是同类型dp中比较难的了,主要难点在于设置状态上: 如果像平时那样设置,必定爆空间没商量: 下面是一种思路: 先把输入进来的数据按h从大到小排序,这样就可以大大减少状态数, 然后设f[i][j][k]为前i本书第一个书柜厚度j,第二个书柜厚度k,第三个书柜厚度sum[i]-j-k的h最大值得最小和: 这样一是将h放在了里面,相当于一个方程思想,因为s可以由h,t算出来: 二是转移的时候,如果j,k或sum[i]-j-k为0,直接加上h,因为前面的h比后面的大,方便了转移: 但我最后也是…
状态设计的方法很巧妙,六个值 h1,h2,h3,t1,t2,t3,我们发现t1,t2,t3可以通过前缀和优化掉一维. 然后考虑把h留下还是t留下,如果留下h显然t是会发生改变的,一个int存不下. 如果按照h降序排序,然后计算的时候存总的高度值,就很方便转移了. #include <cstdio> #include <cstring> #include <iostream> #include <algorithm> using namespace std;…
神奇的dp优化. 考虑6维状态的dp,分别表示三行高和宽,显然MLE&&TLE. 把高排个序,从大到小往架上放,那么若不是重开一行便对高度没有影响. 然后求出宽度的sum,dp[i][j]表示第一行放了i的宽度,二行放了j的宽度,三行放了sum-i-j宽度的最小的高度值. 先把所有书放在第三行,然后从第二本开始转移,考虑往其他行移的情况. 避免MLE要滚动数组. 注意最后更新答案时保证i>0&&j>0&&sum-i-j>0且dp[i][j]…
Online Judge:Luogu-P2160 Label:思维题,Dp,空间优化 题面: 题目描述 给\(N\)本书,每本书有高度\(Hi\),厚度\(Ti\).要摆在一个三层的书架上. 书架的宽是每层书厚度和的最大值.书架的高度是每层最高书的高度之和. 求如何放书,使得书架的面积最小. 输入 第一行一个整数\(n\),表示书本的个数. 接下来\(n\)行,每行2个整数,表示每本书的高度和厚度. 输出 输出一个整数,表示书架的最小面积. 样例 Input 4 220 29 195 20 20…
Description Tom不喜欢那种一字长龙式的大书架,他只想要一个小书柜来存放他的系列工具书.Tom打算把书柜放在桌子的后面,这样需要查书的时候就可以不用起身离开了.显然,这种书柜不能太大,Tom希望它的体积越小越好.另外,出于他的审美要求,他只想要一个三层的书柜.为了物尽其用,Tom规定每层必须至少放一本书.现在的问题是,Tom怎么分配他的工具书,才能让木匠造出最小的书柜来呢? Tom很快意识到这是一个数学问题.每本书都有自己的高度hi和厚度ti.我们需要求的是一个分配方案,也就是要求把…
Search GO 说明:输入题号直接进入相应题目,如需搜索含数字的题目,请在关键词前加单引号 Problem ID Title Source AC Submit Y 1000 A+B Problem 10983 18765 Y 1036 [ZJOI2008]树的统计Count 5293 13132 Y 1588 [HNOI2002]营业额统计 5056 13607 1001 [BeiJing2006]狼抓兔子 4526 18386 Y 2002 [Hnoi2010]Bounce 弹飞绵羊 43…
看这道题的时候,感觉很难,因为数据范围比较大,很难dp: 后来想到了[书柜的尺寸]这道题,也是一道dp,曾经看了那道题的题解而深有启发: 这道题每组的付费只与这一组长宽的最大值有关,也就是说要分组,一定从按长或宽的从大到小(从小到大也可以)排序,这样剔除无用的数据后,就只剩下一串数据,长从大到小,宽从小到大: 然后我们要在这里面分组,可以轻易发现,一个组的成员一定是连续的,原因与单调性有关: 这样就成了经典的dp,加上一个斜率优化即可轻松水过: #include<iostream> #incl…
In this lesson you will learn to describe a room or place. 这节课讲学习描述一个房间或地方 课上内容(Lesson) 1. Where do you study or work? 你在哪学习/工作? Do you work at a desk?  你在办公桌前工作吗? Do you study at school?  你在学校学习吗? Do you work in your own office?  你在你自己的办公室工作吗? 2. Ta…
Meet your classmates 见见你的同学 Look at the picture. What do you see? 看图片.你看到了什么? calendar  日历 bookcase 书柜 bookshelf  ['bʊkʃelf] 书架 1 man  --> 2 个或以上 men 1 woman ['wʊmən] --> 2 个或以上 women ['wɪmɪn] Classroom directions 课堂指示语 Listen and point 支出你所听到单的内容 1…