poj 1948 Triangular Pastures
2014-04-14 19:53
323 查看
#include<iostream> #include<cstring> #include<cstdio> #include<cmath> using namespace std; bool dp[45][800][800]; int a[45]; int main(){ int n,i,j,k; int total=0; scanf("%d",&n); for(i=1;i<=n;i++){ scanf("%d",&a[i]); total+=a[i]; } memset(dp,false,sizeof(dp)); dp[0][0][0]=true; double area=0,ans=0; for(k=1;k<=n;k++){ for(i=0;i<=total/2;i++) for(j=0;j<=(total-i)/2;j++){ dp[k][i][j]=dp[k-1][i][j]; if(i>=a[k]&&dp[k-1][i-a[k]][j]) dp[k][i][j]=true; if(j>=a[k]&&dp[k-1][i][j-a[k]]) dp[k][i][j]=true; } } for(i=0;i<=total/2;i++) for(j=0;j<=(total-i)/2;j++) if(dp [i][j]){ int c=total-i-j; if(i+j>c&&j+c>i&&c+i>j){ double half=(double)(i+j+c)/2.0; area=sqrt((double)half*(half-i)*(half-j)*(half-c)); if(area>ans) ans=area; //cout<<i<<" "<<j<<endl; } } if(ans==0.0) printf("-1\n"); else printf("%d\n",(int)(ans*100)); return 0; }
相关文章推荐
- poj 1948 Triangular Pastures (二维背包dp)
- 携程第二场 Poj 1182 食物链(带权并查集) Poj 1948 Triangular Pastures Poj(dp二维背包) 1740 A New Stone Game(博弈)
- poj 1948 Triangular Pastures
- POJ 1948 Triangular Pastures 笔记
- POJ 1948 Triangular Pastures 二维 0-1背包
- poj 1948 Triangular Pastures dp
- poj 1948 Triangular Pastures 二维01背包
- poj 1948 Triangular Pastures
- 所谓的二维背包Triangular Pastures POJ 1948
- POJ 1948 Triangular Pastures 二维 0-1背包
- poj 1948 Triangular Pastures 01背包
- poj 1948 Triangular Pastures
- POJ 1948 Triangular Pastures【二维01背包】
- poj 1948 Triangular Pastures 二维背包
- 背包问题--POJ 1948 Triangular Pastures[二维01背包]
- poj 1948 Triangular Pastures
- POJ 1948 Triangular Pastures 解题报告
- POJ 1948 Triangular Pastures
- POJ 1948 Triangular Pastures 【经典问题 - 二维01背包求最大三角形】
- poj 1948 Triangular Pastures