poj 1948(背包)
来源:互联网 发布:淘宝网站的盈利模式 编辑:程序博客网 时间:2024/05/16 02:11
//思路是看大神的
//把三角型的一边当成一维费用 另一边当做另一维费用
//第三边可以通过sum-第一边-第二边得到
//每一根棒子作为一个物品 棒子的长度作为物品的费用
//所有棒子长度和的一半作为背包的大小 因为三角形任意一条边长不可能超过总长的一半
#include<stdio.h>
#include<string.h>
#include<math.h>
#define N 1700/2
int dp[N][N];
int c[50];
int n;
int sum;
int v;
int main()
{
int i,j,k;
sum=0;
while(scanf("%d",&n)!=EOF)
{
sum=0;
for(i=1;i<=n;i++)
{
scanf("%d",&c[i]);
sum+=c[i];
}
v=sum/2;
memset(dp,0,sizeof(dp));
dp[0][0]=1;
for(i=1;i<=n;i++)
{
for(j=v;j>=0;j--)
{
for(k=v;k>=0;k--)
{
if(j>=c[i]&&dp[j-c[i]][k]||k>=c[i]&&dp[j][k-c[i]])
dp[j][k]=1;
}
}
}
double ans=0;
for(i=1;i<=v;i++)
{
for(j=1;j<=v;j++)
{
if(dp[i][j])
{
int q=sum-i-j;
double t=sum*1.0/2;
if(i+j>q&&i+q>j&&j+q>i)
{
double an=sqrt(t*(t-i)*(t-j)*(t-q)*1.0);
if(ans<an*100)
ans=an*100;
}
}
}
}
if(ans-0<=1e-10)
ans=-1;
printf("%d\n",(int)ans);
}
return 0;
}
//把三角型的一边当成一维费用 另一边当做另一维费用
//第三边可以通过sum-第一边-第二边得到
//每一根棒子作为一个物品 棒子的长度作为物品的费用
//所有棒子长度和的一半作为背包的大小 因为三角形任意一条边长不可能超过总长的一半
#include<stdio.h>
#include<string.h>
#include<math.h>
#define N 1700/2
int dp[N][N];
int c[50];
int n;
int sum;
int v;
int main()
{
int i,j,k;
sum=0;
while(scanf("%d",&n)!=EOF)
{
sum=0;
for(i=1;i<=n;i++)
{
scanf("%d",&c[i]);
sum+=c[i];
}
v=sum/2;
memset(dp,0,sizeof(dp));
dp[0][0]=1;
for(i=1;i<=n;i++)
{
for(j=v;j>=0;j--)
{
for(k=v;k>=0;k--)
{
if(j>=c[i]&&dp[j-c[i]][k]||k>=c[i]&&dp[j][k-c[i]])
dp[j][k]=1;
}
}
}
double ans=0;
for(i=1;i<=v;i++)
{
for(j=1;j<=v;j++)
{
if(dp[i][j])
{
int q=sum-i-j;
double t=sum*1.0/2;
if(i+j>q&&i+q>j&&j+q>i)
{
double an=sqrt(t*(t-i)*(t-j)*(t-q)*1.0);
if(ans<an*100)
ans=an*100;
}
}
}
}
if(ans-0<=1e-10)
ans=-1;
printf("%d\n",(int)ans);
}
return 0;
}
0 0
- poj 1948 二维背包
- poj 1948(背包)
- POJ -- 1948 二维背包问题
- poj 1948二维01背包
- poj 1948 二维01背包
- poj 1948 二维01背包
- POJ 背包
- poj 1948 Triangular Pastures 01背包
- POJ 1948 TRIANGULAR PASTURES(背包问题)
- poj 1948 Triangular Pastures(二维01背包)
- poj 1948 Triangular Pastures 二维背包
- poj 1948 Triangular Pastures 二维01背包
- 0-1背包-poj-1948-Triangular Pastures
- POJ 1948 Triangular Pastures(01背包)
- poj 1948 Triangular Pastures 二维01背包
- POJ 1948 Triangular Pastures(二维背包)
- POJ 1742 多重背包
- poj 1276 多重背包..
- 轻曲书辞,伏案杯空逍遥
- wpf设置窗体边框为无边框
- 表单提交的中文为乱码处理
- 软件开发模型(Software Development Model)
- PHP与HTML混编的一点疑惑
- poj 1948(背包)
- windows远程桌面连接
- PAT A 1012. The Best Rank (25)
- C运算符优先级的问题
- C语言 认识转换符 fscanf()用法
- Linux下不能进入windows的NTFS分区之挂载错误问题(error mounting)
- freemaker
- .NET Reactor 4.8程序授权管理/源码混淆
- com.sun.image.codec.jpeg.JPEGCodec编译无法通过