博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
洛谷P1284 三角形牧场
阅读量:5251 次
发布时间:2019-06-14

本文共 1858 字,大约阅读时间需要 6 分钟。

题目描述

和所有人一样,奶牛喜欢变化。它们正在设想新造型的牧场。奶牛建筑师Hei想建造围有漂亮白色栅栏的三角形牧场。她拥有N(3≤N≤40)块木板,每块的长度Li(1≤Li≤40)都是整数,她想用所有的木板围成一个三角形使得牧场面积最大。

请帮助Hei小姐构造这样的牧场,并计算出这个最大牧场的面积。

输入输出格式

输入格式:

 

第1行:一个整数N

第2..N+1行:每行包含一个整数,即是木板长度。

 

输出格式:

 

仅一个整数:最大牧场面积乘以100然后舍尾的结果。如果无法构建,输出-1。

 

输入输出样例

输入样例#1:
511334
输出样例#1:
692

说明

样例解释:692=舍尾后的(100×三角形面积),此三角形为等边三角形,边长为4。

————————————————————我是分割线————————————————————————

dp题目,用dp[i][j][k]表示前i块木板是否能拼成j、k长度,即可。

记得用海伦公式

1 /* 2 Problem: 3 OJ:  4 User: S.B.S. 5 Time:  6 Memory: 7 Length: 8 */ 9 10 #include
11 #include
12 #include
13 #include
14 #include
15 #include
16 #include
17 #include
18 #include
19 #include
20 #include
21 #include
22 #include
23 #include
24 #define F(i,j,k) for(int i=j;i<=k;++i)25 #define M(a,b) memset(a,b,sizeof(a))26 #define FF(i,j,k) for(int i=j;i>=k;i--)27 #define maxn 1000128 #define inf 0x3f3f3f3f29 #define maxm 400130 #define mod 99824435331 using namespace std;32 int read(){33 int x=0,f=1;char ch=getchar();34 while(ch<'0'||ch>'9'){ if(ch=='-')f=-1;ch=getchar();}35 while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();}36 return x*f;37 }38 int n,m;39 bool dp[2000][2000];40 int d[41];41 int sum=0;42 double ans=-1.0;43 inline double solve(int a,int b,int c)44 {45 if(c==0||a+b<=c||b+c<=a||a+c<=b) return -1;46 double p=(a+b+c)/2.0;47 return 100*sqrt(p*fabs(p-a)*fabs(p-b)*fabs(p-c));48 }49 int main()50 {51 std::ios::sync_with_stdio(false);//cout<
<
<
>n;58 F(i,1,n) cin>>d[i],sum+=d[i];59 F(i,1,n) dp[0][0]=true;60 F(k,1,n)FF(i,sum,0)FF(j,sum,0){61 if(i>=d[k]) dp[i][j]=dp[i][j]||dp[i-d[k]][j];62 if(j>=d[k]) dp[i][j]=dp[i][j]||dp[i][j-d[k]];63 if(k==n&&i&&j&&dp[i][j]) ans=max(ans,solve(i,j,sum-i-j));64 }65 cout<<(int)(ans)<
View Code

 

转载于:https://www.cnblogs.com/SBSOI/p/5994300.html

你可能感兴趣的文章
JAVA跨域CORS
查看>>
正确的在循环list的时候删除list里面的元素
查看>>
ERP渠道文档详细和修改(二十五)
查看>>
C#正则Groups高级使用方法
查看>>
ecshop安装常见问题及解决办法
查看>>
解决windows系统的oracle数据库不能启动ora-00119和ora-00130的问题
查看>>
ip相关问题解答
查看>>
第九周作业
查看>>
Postman—添加断言和检查点
查看>>
网络文件下载
查看>>
Mixing Milk
查看>>
iOS下移除按钮原生样式
查看>>
如何保存图片
查看>>
js中严格模式
查看>>
win2003远程超出最大连接数解决办法
查看>>
内存堆和栈的区别
查看>>
MetaWeblog API Test
查看>>
数组方法
查看>>
ACM学习历程—HDU 5073 Galaxy(数学)
查看>>
反弹SHELL
查看>>