博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
poj3347线段相交,扩大数据运算
阅读量:5321 次
发布时间:2019-06-14

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

链接:

题意:一系列正方形立着排列,正方形互不重叠,能贴着放就贴着,求俯视的时候能看到哪些正方形。

思路:把正方形的重叠问题转化为线段相交问题。正方形投影到x轴上就是横着的那条对角线,如果把正方形边长扩大根号2倍的话,对角线长就是整数,便于处理。然后再来对线段长进行裁剪,如果某部分被遮住了的话,就去掉这部分。还有个重要的地方是求正方形的左边顶点的横坐标,对于某个正方形,假定他和前面的正方形都是贴着的,求出相应的横坐标,取最大,即可。

#include
#include
#include
using namespace std;struct squ{ int l,r,len;}a[52];int main(){ int n; while((cin>>n) && n) { for(int i=1;i<=n;i++) { cin>>a[i].len; a[i].l=0; for(int j=1;j
a[i].l) a[j].r=a[i].l; else if(a[j].len>a[i].len && a[j].r>a[i].l) a[i].l=a[j].r; } } int k=1; for(int i=1;i<=n;i++) { if(a[i].l

完全没想到投影成线段,然后判断线段相交。

转载于:https://www.cnblogs.com/54zyq/p/3189805.html

你可能感兴趣的文章
在线文件管理器elFinder支持中文
查看>>
String比较
查看>>
Django之Models
查看>>
Spring缓存注解@Cache使用
查看>>
CSS 透明度级别 及 背景透明
查看>>
Linux 的 date 日期的使用
查看>>
PHP zip压缩文件及解压
查看>>
SOAP web service用AFNetWorking实现请求
查看>>
jQuery Easy UI Resizable(调整大小)组件
查看>>
Sail
查看>>
C# JSON字符串序列化与反序列化
查看>>
HTTPS、SPDY和HTTP/2的性能比较
查看>>
Java变量类型,实例变量 与局部变量 静态变量
查看>>
Angular实践----理解数据绑定过程
查看>>
sublime快捷键
查看>>
mysql操作命令梳理(4)-中文乱码问题
查看>>
Hyper-V Centos7 网络设置 虚拟机固定IP
查看>>
Python环境搭建(安装、验证与卸载)
查看>>
一个.NET通用JSON解析/构建类的实现(c#)
查看>>
Windows Phone开发(31):画刷 转:http://blog.csdn.net/tcjiaan/article/details/7460226
查看>>