hdu1069 Monkey and Banana 还是DP
2012-03-09 16:18
330 查看
题意看了半天才懂,英语不好,真难为情嗄。。。
还是DP题,开始还以为是完全背包,再细看,发现只是一个block可以经过翻转成为3个block。
题意:block从低向高严格递减排序(两个关键字的排序)。
DP前对数据进行小小的处理,排序。
详见代码:
收获:刚看到题,理解了题意后,用贪心写,发现忽略了很多可行的block,后来特意推导DP的方程,很快找到。总之,觉得自己有进步,加油!!!吖飒。。
看题的时候尽量集中精神,要记得 比赛的时候 5个小时不能解决的问题,就是不会。
还是DP题,开始还以为是完全背包,再细看,发现只是一个block可以经过翻转成为3个block。
题意:block从低向高严格递减排序(两个关键字的排序)。
DP前对数据进行小小的处理,排序。
详见代码:
#include <iostream> #include<algorithm> using namespace std; struct info { int x; int y; int z; }dp[100]; int num[3]; bool compare(struct info a,struct info b) { if(a.x>b.x) return 1; else if(a.x==b.x&&a.y>b.y) return 1; else return 0; } int main() { int n; int i,k;int cnt=1; while(cin>>n&&n) { k=0; for(i=0;i<n;i++) { cin>>num[0]>>num[1]>>num[2]; sort(num,num+3);//长宽高排个序 dp[k].x=num[2];dp[k].y=num[1];dp[k].z=num[0]; dp[k+1].x=num[2];dp[k+1].y=num[0];dp[k+1].z=num[1]; dp[k+2].x=num[1];dp[k+2].y=num[0];dp[k+2].z=num[2]; k+=3; } sort(dp,dp+k,compare);//整体排序,使dimension大的在下 int j=0; int sum[100]; sum[0]=dp[0].z; int Max=sum[0]; //DP过程 for(i=1;i<k;i++) { sum[i]=dp[i].z; for(j=0;j<i;j++) if(dp[j].x>dp[i].x&&dp[j].y>dp[i].y) { if (sum[j]+dp[i].z>sum[i]) { sum[i]=sum[j]+dp[i].z; } } if(Max<sum[i]) Max=sum[i];//记录最大值 } cout<<"Case "<<cnt++<<": maximum height = "<<Max<<endl; } return 0; }
收获:刚看到题,理解了题意后,用贪心写,发现忽略了很多可行的block,后来特意推导DP的方程,很快找到。总之,觉得自己有进步,加油!!!吖飒。。
看题的时候尽量集中精神,要记得 比赛的时候 5个小时不能解决的问题,就是不会。
相关文章推荐
- HDU1069 Monkey and Banana题解(水DP) 顺便写写近况
- HDU 1069 Monkey and Banana【DP】
- HDU 1069 Monkey and Banana (dp)
- C - Monkey and Banana HDU - 1069 简单dp
- HDU 1069 Monkey and Banana(DP 长方体堆放问题)
- hdu 1069 Monkey and Banana (DP)
- HDU 1069 Monkey and Banana(DP,水题)
- 【HDU】1069 - Monkey and Banana(dp)
- HDU 1069 Monkey and Banana(DP)
- Monkey and Banana - HDU 1069 dp
- HDU 1069 Monkey and Banana(DP)
- HDU-1069-Monkey and Banana-DP
- C - Monkey and Banana HDU - 1069——基础dp
- dp基础4 - C - Monkey and Banana HDU - 1069
- HDU 1069 Monkey and Banana(基础dp)
- HDU 1069 Monkey and Banana (DP)
- HDU 1069 Monkey and Banana DP LIS变形题
- [简单DP]Monkey and Banana HDU - 1069
- HDU 1069 Monkey and Banana(dp)
- 【dp】HDU - 1069 Monkey and Banana