HDU 1069 Monkey and Banana
来源:互联网 发布:爱奇艺会员 淘宝 编辑:程序博客网 时间:2024/05/30 07:13
题目地址:点击打开链接
思路:先把x排序,只能对x,y种一个变量排序,且必须对一个变量先排序,然后再保证x,y都符合要求的情况下,对高度进行DP,虽然题目说每种砖块可以无限用,但每种砖块最多只能用6次,因为每种砖块有6种摆放方法,并且摆放时要求长和宽严格递减
AC代码:
#include <iostream>#include<algorithm>#include<cstring>#include<cstdio>using namespace std;struct blocks{ int x,y,z;}kind[200];int num,dp[200];void init(int k,int x,int y,int z){ kind[k].x = x; kind[k].y = y; kind[k].z = z; //dp[k] = z;要排序完再赋值,不然排序完的kind值和dp值不对应}bool cmp(blocks a,blocks b){ return a.x > b.x;//只能排一个,因为虽然x很大,y很小会被排到第一个,不符合题意}int main(){ int i,j,n,num,l=1; int x,y,z,max,max1; while(cin>>n && n) { num = 0; memset(dp,0,sizeof(dp)); for(i=0; i<n; i++) { cin>>x>>y>>z; init(num++,x,y,z); init(num++,y,x,z); init(num++,y,z,x); init(num++,z,y,x); init(num++,x,z,y); init(num++,z,x,y); } max1 = dp[0]; sort(kind,kind+num,cmp); for(i=0; i<num; i++) { dp[i] = kind[i].z; } for(i=1; i<num; i++) { max = 0; for(j=0; j<i; j++) { if(kind[i].y < kind[j].y && kind[i].x < kind[j].x && dp[j]> max)//排序完的结果还有等于的情况,再判断一次 max = dp[j]; } dp[i] += max; if(dp[i] > max1) max1 = dp[i]; } printf("Case %d: maximum height = %d\n",l++,max1);//记得加\n } return 0;}
0 0
- HDU 1069 Monkey and Banana
- hdu 1069 Monkey and banana
- hdu 1069 Monkey and Banana
- HDU 1069 Monkey and Banana
- hdu 1069 Monkey and Banana
- hdu 1069 Monkey and Banana
- HDU 1069 Monkey and Banana
- hdu 1069 Monkey and Banana
- hdu 1069 Monkey and Banana
- hdu 1069 Monkey and Banana
- HDU 1069 Monkey and Banana
- hdu 1069 Monkey and Banana
- HDU 1069 Monkey and Banana
- hdu 1069 Monkey and Banana
- hdu 1069 Monkey and Banana
- hdu 1069 Monkey and Banana
- HDU 1069 Monkey and Banana
- hdu 1069 Monkey and Banana
- 浅谈C++中指针和引用的区别
- 数据库基本知识备忘录
- Java Printf 函数及其使用
- Win7升级成Win10后VMware安装CentOS不能联网的解决办法
- JDK,JRE,JVM区别与联系
- HDU 1069 Monkey and Banana
- 利用硬盘安装软件(使用nt6 hdd installer)
- PHP 判断数组是否为空的方法
- POJ 3311 Hie with the Pie(状态压缩DP+Floyd)
- 设置uitextview边框
- SQL2008 清空数据库中所有表数据的方法
- 错误提示:连接 built-in.o 提示 undefined reference to
- c#读取数据库server sql
- 使用java向rsyslog发送日志