ZOJ Problem Set - 1093Monkey and Banana
2010-03-03 20:50
267 查看
简单DP
#include<iostream> #include<vector> #include<algorithm> using namespace std; struct point { int x; int y; int value; int wi; }mp[10000]; int cmp(point a,point b) { if(a.x==b.x)return a.y<b.y; return a.x<b.x; } int main() { int T,ca=0,a[3],np,i,j,key,nx,ny; point uu; while(1) { np=0; scanf("%d",&T); if(T==0)break; for(i=0;i<T;i++) { scanf("%d%d%d",&a[0],&a[1],&a[2]); sort(a,a+3); mp[np].x=a[0]; mp[np].y=a[1]; mp[np].value=a[2]; np++; if(a[2]!=a[1]&&a[0]!=a[1]) { mp[np].x=a[1]; mp[np].y=a[2]; mp[np].value=a[0]; np++; } if(a[1]!=a[2]) { mp[np].x=a[0]; mp[np].y=a[2]; mp[np].value=a[1]; np++; } } sort(mp,mp+np,cmp); for(i=0;i<np;i++) mp[i].wi=mp[i].value; for(i=0;i<np;i++) { for(j=i+1;j<np;j++) { if(mp[i].x<mp[j].x&&mp[i].y<mp[j].y&&mp[j].wi<mp[i].wi+mp[j].value) { mp[j].wi=mp[i].wi+mp[j].value; } } } key=0; for(i=0;i<np;i++) { if(key<mp[i].wi) key=mp[i].wi; } printf("Case %d: maximum height = %d/n",++ca,key); } return 0; }
相关文章推荐
- ZOJ Problem Set - 2850 Beautiful Meadow
- ZOJ Problem Set - 3777
- ZOJ Problem Set - 2478 Encoding
- ZOJ Problem Set - 2947 Abbreviation
- ZOJ Problem Set - 1241 Geometry Made Simple
- ZOJ Problem Set - 2857 Image Transformation
- ZOJ Problem Set - 3869
- ZOJ Problem Set - 1006 Do the Untwist
- ZOJ Problem Set - 1205 Martian Addition
- ZOJ Problem Set - 1240 IBM Minus One
- ZOJ Problem Set - 2562 More Divisors 反素数
- ZOJ Problem Set - 3804 YY's Minions
- ZOJ Problem Set - 1712||Skew Binary
- ZOJ Problem Set - 2186 Keep on Truckin'
- ZOJ Problem Set - 3607 Lazier Salesgirl
- ZOJ Problem Set - 1038 T9
- ZOJ Problem Set - 1045||HangOver
- ZOJ Problem Set–1712 Skew Binary
- ZOJ Problem Set - 1060 Sorting It All Out
- ZOJ Problem Set - 3878||Convert QWERTY to Dvorak