POJ 3347 Kadj Squares 计算几何
求出正方形的左右端点,再判断是否覆盖
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <cmath>
#define eps 1e-8
#define INF 1e9
using namespace std; const int maxn=55; struct Square
{
double l,r,len;
}sqr[maxn]; int sgn(double x)
{
if(fabs(x)<eps) return 0;
return x<0? -1:1;
} int main()
{
// freopen("in.txt","r",stdin);
int n;
while(scanf("%d",&n),n)
{
for(int i=0;i<n;i++)
{
scanf("%lf",&sqr[i].len);
sqr[i].l=0;
for(int j=0;j<i;j++)
sqr[i].l=max(sqr[i].l,sqr[j].r-fabs(sqr[i].len-sqr[j].len)/sqrt(2.0));
sqr[i].r=sqr[i].l+sqr[i].len*sqrt(2.0);
}
for(int i=0;i<n;i++)
{
for(int j=0;j<i;j++)
{
if(sqr[i].len>sqr[j].len && sqr[i].l<sqr[j].r)
sqr[j].r=sqr[i].l; //sqr[i]的左侧覆盖了sqr[j]的右侧,把sqr[j]的右侧删去
if(sqr[i].len<sqr[j].len && sqr[i].l<sqr[j].r)
sqr[i].l=sqr[j].r; //sqr[i]的左侧被sqr[j]的右侧覆盖,把sqr[j]的左侧删去
}
}
bool flag=true;
for(int i=0;i<n;i++)
{
if(sgn(sqr[i].r-sqr[i].l)>0)
{
if(flag) printf("%d",i+1);
else printf(" %d",i+1);
flag=false;
}
}
puts("");
}
return 0;
}
POJ 3347 Kadj Squares 计算几何的更多相关文章
- POJ 3347 Kadj Squares
Kadj Squares Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 2132 Accepted: 843 Descr ...
- POJ 3347 Kadj Squares (计算几何)
题目: Description In this problem, you are given a sequence S1, S2, ..., Sn of squares of different si ...
- POJ 3347 Kadj Squares (计算几何+线段相交)
题意:从左至右给你n个正方形的边长,接着这些正方形都按照旋转45度以一角为底放置坐标轴上,最左边的正方形左端点抵住y轴,后面的正方形依次紧贴前面所有正方形放置,问从上方向下看去,有哪些正方形是可以被看 ...
- 简单几何(线段覆盖) POJ 3347 Kadj Squares
题目传送门 题意:告诉每个矩形的边长,它们是紧贴着的,问从上往下看,有几个还能看到. 分析:用网上猥琐的方法,将边长看成左端点到中心的距离,这样可以避免精度问题.然后先求出每个矩形的左右端点,然后如果 ...
- POJ 3347 Kadj Squares (线段覆盖)
题目大意:给你几个正方形的边长,正方一个顶点在x轴上然后边与x轴的夹角为45度,每个正方形都是紧贴的,问从上面看能看的正方形的编号 题目思路:线段覆盖,边长乘上2防止产生小数,求出每个正方形与x轴平行 ...
- [poj] 3347 Kadj Square || 计算几何的“线段覆盖”
原题 多组数据,给出n个正方形的边长,使他们以45度角倾斜的情况下最靠左(在第一象限内),如图.求从上看能看到哪几个完整的正方形. 借鉴于https://www.cnblogs.com/Ritchie ...
- poj3347 Kadj Squares (计算几何)
D - Kadj Squares Time Limit:2000MS Memory Limit:65536KB 64bit IO Format:%I64d & %I64u Su ...
- poj3347 Kadj Squares【计算几何】
Kadj Squares Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 3594 Accepted: 1456 Desc ...
- Kadj Squares - POJ 3347
题目大意:给一些序列的正方形的边长,然后让这个正方形倾斜45度,放在第一象限,一个角要紧挨着x轴,按照输入的顺序放下去,然后问最后从上往下看可以看到那些正方形? 分析:不能算是计算几何题..... ...
随机推荐
- 如何在我的EC2实例状态更改时获取自定义电子邮件通知
具体详情,请参见: https://amazonaws-china.com/cn/premiumsupport/knowledge-center/ec2-email-instance-state-ch ...
- 上,打开SSH服务的配置文件:/etc/ssh/sshd_config 加上如下两行: ClientAliveInterval 120 ClientAliveCountMax 720 第一行,表示每隔120秒向客户端
SSH的默认过一段时间会超时,有时候正在执行着脚本,出去一会回来就断开了,输出信息都看不到了... 禁止SSH自动超时最简单的办法就是,每隔一段时间在客户端和服务器之间发送一个"空包&quo ...
- 云计算OpenStack核心组件---horizon Web管理界面(9)
一.horizon介绍 Horizon 为 Openstack 提供一个 WEB 前端的管理界面 (UI 服务 )通过 Horizone 所提供的 DashBoard 服务 , 管理员可以使用通过 W ...
- 安装T4环境
Install-Package Microsoft.VisualStudio.TextTemplating.14.0 -Version 14.3.25407
- selenium常用代码
from selenium import webdriver # 1. 添加浏览器设置参数对象 options = webdriver.ChromeOptions() # 2. 设置中文,与下载无弹窗 ...
- maxscrip_import_csv_构建对象
3DMAX通过脚本文件批量操作相当有效率,国内关于maxscript的资料比较少,知识点比较零散,逐步进行补充. 导入文件: filepath = "... Data\\01_us.csv& ...
- npm基本用法及原理(10000+)
作为前端开发者,应该每个人都用过npm,那么npm到底是什么东西呢?npm run,npm install的时候发生了哪些事情呢?下面做详细说明. 1.npm是什么 npm是JavaScript ...
- 昇腾AI 软硬件全栈平台
昇腾AI 软硬件全栈平台
- Waymo的自主进化
Waymo的自主进化 3月初,Waymo在推特上宣布,共获得了22.5亿美元(约合人民币156亿元)融资,由Silver Lake(银湖资本).Canada Pension Plan Investme ...
- C#-防止用户输入具有风险的敏感字符
最近有涉及到要防止用户在网页文本框中输入具有风险的敏感字符所以特地编写了一套针对用户输入的字符进行安全过滤的一个方法,在后台接收到用户输入的字符后调用执行该方法即可完成过滤操作,主要使用正则来匹配并替 ...