HDU1069(KB12-C)】的更多相关文章

HDU1069 Monkey and Banana 题目大意 给定 n 种盒子, 每种盒子无限多个, 需要叠起来, 在上面的盒子的长和宽必须严格小于下面盒子的长和宽, 求最高的高度. 思路 对于每个方块, x, y, z 的全排列共有 6 种可能性, 每种可能性只需要一个方块, 因为方块必须严格小于, 若有两个相同的方块, 则不符合题意. 先将方块按照 x, y 依次进行排序 设 dp[i] 为第 i 个方块时的最高高度, 则每个方块的最高高度为 dp[i] = max(dp[j] + arr[…
题目链接:https://cn.vjudge.net/problem/HDU-1069 题意 给出n种箱子的长宽高 现要搭出最高的箱子塔,使每个箱子的长宽严格小于底下的箱子的长宽,每种箱子数量不限 问最高可以搭出多高 思路 有向无环图(DAG)上的动规 想象有一个图,每个节点表示一种箱子,每个边代表可以落在一块的关系 递归的找max即可 $ dp(i)=max(dp(j)+h(i) | (i, j) \in E) $ 代码 #include <cstdio> #include <cstr…
***************************************转载请注明出处:http://blog.csdn.net/lttree*************************************** Monkey and Banana Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 6984    Accep…
Problem Description A group of researchers are designing an experiment to test the IQ of a monkey. They will hang a banana at the roof of a building, and at the mean time, provide the monkey with some blocks. If the monkey is clever enough, it shall…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1069 分析: 每种石头有六种方法,那么等效为:有6*n种石头. 根据x和y排序(要保证相应的x.y总有x>=y),然后dp[i]= max{s[i].z,s[i].z+dp[j]}(j<i,且石块i放于石块j上,符合题意). 其实就是最长上升子序列的换种求法... #include <cstdio> #include <cstring> #include <cmath…
emm....矩形嵌套 还记得吗....就是它... 直接贴代码了.... import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.Comparator; import java.util.Scanner; public class Main{ final static int maxn = 1000000; final static int INF =…
/* dp[i]:取第i个方块时最多可以累多高 */ #include<bits/stdc++.h> using namespace std; struct node{ int x,y,z; bool operator<(const node & a)const { if(x==a.x)return y>a.y; return x>a.x; } //按照x从大到小排,x相同的话就按y从小到大排 }block[]; ],tot; int main(){ ; while(…
本题大意:给出n个长方体,每种长方体不限量,让你求出如何摆放长方体使得最后得到的总高最大,摆设要求为,底层的长严格大于下层的长,底层的宽严格大于下层的宽. 本题思路:一开始没有啥思路...首先应该想到如果数组内的长宽等都是乱序的话会很影响计算的效率,所以我们先进行排序,对于每种长方体,我们将其三种摆放方式存入数组,然后利用sort排序, 我们会得到一个按照长度递增,长度相等则按照宽度递增的顺序摆放,最后很明显就可以得出状态转移方程:dp[ i ] = max(dp[ j ]) + a[ i ].…
Monkey and Banana Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 13837    Accepted Submission(s): 7282 Problem Description A group of researchers are designing an experiment to test the IQ of a…
今天不想说太多废话-由于等下要写自己主动提交机. 不知道能不能成功呢? 题目的意思就是,一个猴子,在叠砖头 ...以下的要严格大于上面的.求叠起来最高能到多少- n非常少,n^2算法毫无压力-话说dp的n一般都小. 我们先排序.拍完序的状态转移方程是:  dp[i]=max(dp[j])+z[i],0<=i<=j.记得要等于. 之后再线性遍历一下找出max ,不然还是WA~ 还有在读入的时候,一个砖生成六个砖,能够自己暴力模拟一下.我是走循环的- 这个循环条件我也不知道怎么说.我仅仅是认为推断…