生活随笔
收集整理的這篇文章主要介紹了
杭电OJ1069java实现
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
杭電1069題目鏈接
思路:建立類包含高,長,寬。(長的為長,在構(gòu)造函數(shù)中默認比較),面積(也可以不需要直接長長,寬寬比較),按照面積從小到大排序(如果沒有面積按照長)。dp[i]表示以第i個為截至的最大高度dp[i]=dp[j] kuai[i].heght.(j表示小于i的最大高度那個),沒輸入三個數(shù)默認增加三個數(shù)據(jù)。類似最長子序列的dp;
代碼如下:
import java
.util
.Scanner
;
public class 杭電
1069 {public static void main(String
[] args
) { Scanner sc
=new Scanner(System
.in
);int time
=0;while(sc
.hasNext()){time
;int n
=sc
.nextInt();if(n
==0)break;kuai k
[]=new kuai[n
*3 1];int dp
[]=new int[n
*3 1];int value
=0;for(int i
=0;i
<n
;i
){int a1
=sc
.nextInt();int a2
=sc
.nextInt();int a3
=sc
.nextInt();k
[i
*3 1]=new kuai(a1
,a2
,a3
);k
[i
*3 2]=new kuai(a2
,a1
,a3
);k
[i
*3 3]=new kuai(a3
,a2
,a1
);}for(int i
=1;i
<n
*3 1;i
){for(int j
=i
;j
<n
*3 1;j
){if(k
[i
].mianji
>k
[j
].mianji
){kuai team
=k
[i
];k
[i
]=k
[j
];k
[j
]=team
;}}}dp
[1]=k
[1].heiht
;for(int i
=1;i
<n
*3 1;i
){int max
=0;for(int j
=1;j
<i
;j
){if(k
[j
].chang
<k
[i
].chang
&&k
[j
].kuan
<k
[i
].kuan
){ if(dp
[j
]>max
) {max
=dp
[j
];}}}dp
[i
]=max k
[i
].heiht
;if(dp
[i
]>value
){value
=dp
[i
];}}System
.out
.println("Case " time
": maximum height = " value
);
} }
}
class kuai
{int heiht
;int chang
;int kuan
;int mianji
;public kuai(int a
,int b
,int c
){this.heiht
=a
;this.chang
= b
>c
?b
:c
;this.kuan
=b
<c
?b
:c
;this.mianji
=b
*c
;}
}
總結(jié)
以上是生活随笔為你收集整理的杭电OJ1069java实现的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。