“正直角三角形” Contest2074 - 中南大学第九届大学生程序设计竞赛网络预选赛
2015-05-01 15:52
288 查看
最大x为xm,最大y为ym
三角形高为h 宽为w
过(xm,ym)做一条倾斜角为135度的直线 这条直线与x轴y轴一定能将这些点包住
易知这条直线在x,y轴上截距均为xm+ym
hmax=h0=(xm+ym)^2/xm
hmin=ym+1
遍历h的所有可能 找出对应的最小w
方法是连接(0,h) (x[i],y[i]) 这条直线一定能包住(x[i],y[i]) 即可求出w
对同一个h 找出最大的w 便能包住所有点
再找出最小的h*w即可
看过这份代码,但不是很懂,不知道具体怎么算的 链接 http://blog.csdn.net/u013023344/article/details/45133621
以下是我的代码
#include<iostream>
#include<cstdio>
#include<cmath>
using namespace std;
#define max(a,b) (a>b?a:b)
#define min(a,b) (a<b?a:b)
int x[100+10],y[100+10];
int main()
{
int m;
while(~scanf("%d",&m))
{
int xm=0,ym=0;
for(int i=0;i<m;i++)
{
scanf("%d%d",&x[i],&y[i]);
if(x[i]>xm) xm=x[i];
if(y[i]>ym) ym=y[i];
}
int h0=(xm+ym)*(xm+ym)/xm;
int ans=1<<20;
for(int h=ym+1;h<=h0;h++)
{
int w=0;
for(int i=0;i<m;i++)
w=max((int) ceil(1.0*x[i]*h/(h-y[i])),w); //ceil
ans=min(ans,w*h);
}
printf("%.1f\n", ans/2.0);
}
return 0;
}
三角形高为h 宽为w
过(xm,ym)做一条倾斜角为135度的直线 这条直线与x轴y轴一定能将这些点包住
易知这条直线在x,y轴上截距均为xm+ym
hmax=h0=(xm+ym)^2/xm
hmin=ym+1
遍历h的所有可能 找出对应的最小w
方法是连接(0,h) (x[i],y[i]) 这条直线一定能包住(x[i],y[i]) 即可求出w
对同一个h 找出最大的w 便能包住所有点
再找出最小的h*w即可
看过这份代码,但不是很懂,不知道具体怎么算的 链接 http://blog.csdn.net/u013023344/article/details/45133621
以下是我的代码
#include<iostream>
#include<cstdio>
#include<cmath>
using namespace std;
#define max(a,b) (a>b?a:b)
#define min(a,b) (a<b?a:b)
int x[100+10],y[100+10];
int main()
{
int m;
while(~scanf("%d",&m))
{
int xm=0,ym=0;
for(int i=0;i<m;i++)
{
scanf("%d%d",&x[i],&y[i]);
if(x[i]>xm) xm=x[i];
if(y[i]>ym) ym=y[i];
}
int h0=(xm+ym)*(xm+ym)/xm;
int ans=1<<20;
for(int h=ym+1;h<=h0;h++)
{
int w=0;
for(int i=0;i<m;i++)
w=max((int) ceil(1.0*x[i]*h/(h-y[i])),w); //ceil
ans=min(ans,w*h);
}
printf("%.1f\n", ans/2.0);
}
return 0;
}
相关文章推荐
- 外卖的撕‘哔’大战 Contest2074 - 中南大学第九届大学生程序设计竞赛网络预选赛
- 中南大学第九届大学生程序设计竞赛网络预选赛
- 安徽大学第九届大学生程序设计竞赛 网络预选赛 A - 成功人士
- 安徽大学第九届大学生程序设计竞赛 网络预选赛 B - 迭代归一
- 安徽大学第九届大学生程序设计竞赛 网络预选赛 C - 置换的魔术
- 中南大学第十一届大学生程序设计竞赛网络预选赛总结
- 安徽大学第九届大学生程序设计竞赛 网络预选赛 D - 买买买
- 安徽大学第九届大学生程序设计竞赛 网络预选赛
- 安徽大学第九届大学生程序设计竞赛 网络预选赛 F - 周末大法好
- 安徽大学第九届大学生程序设计竞赛 网络预选赛 G - 交换大法好
- 安徽大学第九届大学生程序设计竞赛 网络预选赛 H - 今年多少岁
- ACM/ICPC黑龙江省第四届大学生程序设计竞赛网络预选赛有感
- “Wishare杯”南邮第九届大学生程序设计竞赛之网络赛 部分题解
- 中南大学第十一届大学生程序设计竞赛-COJ1898-复盘拉火车
- ACM学习历程—SNNUOJ 1110 传输网络((并查集 && 离线) || (线段树 && 时间戳))(2015陕西省大学生程序设计竞赛D题)
- CSU 1339: 最后一滴血(模拟啊 湖南省第九届大学生计算机程序设计竞赛)
- 第九届湖南省大学生程序设计竞赛部分题解
- 2012-4-14 中南大学第六届大学生程序设计竞赛(Semilive)之水题经历
- 2017年中国大学生程序设计竞赛网络赛杭电OJ---1003 Friend-Graph
- “亚信科技杯”南邮第七届大学生程序设计竞赛之网络预赛 (部分题解)