Problem - 1255

  暴力统计覆盖超过一次的区域。1y。

代码如下:

 #include <cstdio>
#include <cstring>
#include <cmath>
#include <iostream>
#include <algorithm>
#include <set> using namespace std; typedef pair<double, int> PDBI;
multiset<PDBI> pos;
#define MPR make_pair
#define FI first
#define SE second
const int N = ;
double rec[N][]; struct Mark {
double x1, x2, y;
bool end;
Mark() {}
Mark(double x1, double x2, double y, bool end) :
x1(x1), x2(x2), y(y), end(end) {}
bool operator < (Mark x) const { return y < x.y;}
} mk[N << ]; int main() {
int n, T;
cin >> T;
while (T-- && cin >> n) {
for (int i = ; i < n; i++) {
for (int j = ; j < ; j++) {
cin >> rec[i][j];
}
if (rec[i][] > rec[i][]) swap(rec[i][], rec[i][]);
if (rec[i][] > rec[i][]) swap(rec[i][], rec[i][]);
mk[i << ] = Mark(rec[i][], rec[i][], rec[i][], false);
mk[i << | ] = Mark(rec[i][], rec[i][], rec[i][], true);
}
sort(mk, mk + (n << ));
pos.clear();
if (mk[].end) {
puts("WTF?!!");
while () {}
}
pos.insert(MPR(mk[].x1, ));
pos.insert(MPR(mk[].x2, -));
multiset<PDBI>::iterator msi;
double area = 0.0;
for (int i = , end = n << ; i < end; i++) {
msi = pos.begin();
int cnt = ;
double last, sum = 0.0;
while (msi != pos.end()) {
double fi = (*msi).FI;
int se = (*msi).SE;
if (se > ) {
cnt++;
if (cnt == ) last = fi;
} else {
cnt--;
if (cnt == ) sum += fi - last;
}
msi++;
}
area += sum * (mk[i].y - mk[i - ].y);
if (mk[i].end) {
pos.erase(pos.find(MPR(mk[i].x1, )));
pos.erase(pos.find(MPR(mk[i].x2, -)));
} else {
pos.insert(MPR(mk[i].x1, ));
pos.insert(MPR(mk[i].x2, -));
}
}
if (pos.size()) {
puts("shit!");
while () {}
}
printf("%.2f\n", area);
}
return ;
}

——written by Lyon

hdu 1255 覆盖的面积 (Bruceforce)的更多相关文章

  1. hdu 1255 覆盖的面积(线段树 面积 交) (待整理)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1255 Description 给定平面上若干矩形,求出被这些矩形覆盖过至少两次的区域的面积.   In ...

  2. hdu 1255 覆盖的面积(求覆盖至少两次以上的面积)

    了校赛,还有什么途径可以申请加入ACM校队?  覆盖的面积 Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 65536/32768 K ...

  3. HDU - 1255 覆盖的面积(线段树求矩形面积交 扫描线+离散化)

    链接:线段树求矩形面积并 扫描线+离散化 1.给定平面上若干矩形,求出被这些矩形覆盖过至少两次的区域的面积. 2.看完线段树求矩形面积并 的方法后,再看这题,求的是矩形面积交,类同. 求面积时,用被覆 ...

  4. hdu 1255 覆盖的面积 (线段树处理面积覆盖问题(模板))

    http://acm.hdu.edu.cn/showproblem.php?pid=1255 覆盖的面积 Time Limit: 10000/5000 MS (Java/Others)    Memo ...

  5. HDU 1255 覆盖的面积(线段树+扫描线)

    题目地址:HDU 1255 这题跟面积并的方法非常像,仅仅只是须要再加一个变量. 刚開始我以为直接用那个变量即可,仅仅只是推断是否大于0改成推断是否大于1.可是后来发现了个问题,由于这个没有下放,没延 ...

  6. hdu 1255 覆盖的面积 (扫描线求矩形交)

    覆盖的面积 Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Subm ...

  7. HDU 1255 覆盖的面积 ( 扫描线 + 离散 求矩阵大于k次面积并 )

    覆盖的面积 Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Subm ...

  8. HDU 1255 覆盖的面积(线段树:扫描线求面积并)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1255 题目大意:给你若干个矩形,让你求这些矩形重叠两次及以上的部分的面积. 解题思路:模板题,跟HDU ...

  9. HDU 1255 覆盖的面积 (线段树+扫描线+离散化)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1255 题意很清楚,就是让你求矩阵之间叠加层数大于1的矩形块的面积和. 因为n只有1000,所以我离散化 ...

随机推荐

  1. 微服务开源生态报告 No.8

    「微服务开源生态报告」,汇集各个开源项目近期的社区动态,帮助开发者们更高效的了解到各开源项目的最新进展. 社区动态包括,但不限于:版本发布.人员动态.项目动态和规划.培训和活动. 非常欢迎国内其他微服 ...

  2. Django项目:CRM(客户关系管理系统)--02--01PerfectCRM基本配置ADMIN02

    三.CRM项目表结构设计 from django.db import models # Create your models here. """ #运行 Terminal ...

  3. php收集表单数据-$GET和$POST的区别

    学习笔记: $_GET 变量 预定义的 $_GET 变量用于收集来自 method="get" 的表单中的值. 从带有 GET 方法的表单发送的信息(例如:http://www.r ...

  4. 双系统删除ubuntu

    我的电脑安装了双系统,Windows和Linux,不过由于Linux在最近一段时间内不会使用,所以我打算删除Linux.    删除Linux最需要注意的地方,就是MBR(Master Boot Re ...

  5. php_imagick是怎么实现复古效果的呢?

    php_imagick程序示例 1.创建一个缩略图并显示出来 <?phpheader('Content-type: image/jpeg');$image = new Imagick('imag ...

  6. Ajax--Ajax基于原生javascript:创建Ajax对象、链接服务器、发送请求、接受响应结果

    Ajax概述 异步:指某段程序执行时不会阻塞其它程序执行,其表现形式为程序的执行顺序不依赖程序本身的书写顺序,相反则为同步. 同步请求: 请求是由浏览器发送 页面会刷新 异步请求: 请求是由浏览器的一 ...

  7. 链表经典题Merge Two Sorted Lists

    Merge two sorted linked lists and return it as a new list. The new list should be made by splicing t ...

  8. [Android]Space控件的应用场景

    Space控件是在Android 4.0中加入,是个空白的view,一般用于填充View组件中的间隙. support-v4包里提供了兼容低版本的Space控件. 源码分析 Space控件源码非常简单 ...

  9. JMeter 参数意义

    样本数目:运行时得到的取样器响应结果个数 最新样本:最近一个取样器结果的响应时间 平均:所有取样器结果的响应时间平均值 偏离:所有取样器结果的响应时间标准差 吞吐量:每分钟响应的取样器结果个数 中值: ...

  10. Mac查看Python安装路径和版本

    目录 #查看当前所有Python版本路径 appledeMBP:~ apple$ which python2.7 /usr/local/bin/python2.7 appledeMBP:~ apple ...