题目:

桌面上放了N个平行于坐标轴的矩形,这N个矩形可能有互相覆盖的部分,求它们组成的图形的面积。

在翻题目时,偶然发现了这道标号为WA的题目。

原来,以前我把一中培训的代码发了上去,却WA了4个点,因此失去信心。

仔细研究了代码,却无异样,这是标准的离散思想(这里不再展开)。

报了“试一试”的心情,我把其他数组类型也开了int64,结果竟然AC了!

仔细一想,我发现尽管数组在longint范围内(-10^8------10^8),但是在运算的时候(极大值和极小值相减)仍会越界,还是开大为好!

以下为代码:

const
  max=101;
var
  x1,x2,y1,y2:array[0..max] of int64;
  x,y,a,b:array[0..2*max] of int64;
  pop:boolean;
  h1,h2,i,j,k,n,h,t:longint;
  ans:qword;
begin

  readln(n);
  h:=0;
  for i:=1 to n do
    begin
     readln(x1[i],y1[i],x2[i],y2[i]);
      inc(h);
     x[h]:=x1[i];y[h]:=y1[i];
      inc(h);
     x[h]:=x2[i];y[h]:=y2[i];
    end;
  for i:=1 to h-1 do
    for j:=i+1 to h do
      if x[i]>x[j] then
        begin
          t:=x[i];
         x[i]:=x[j];
          x[j]:=t;
        end;
  for i:=1 to h-1 do
    for j:=i+1 to h do
      if y[i]>y[j] then
        begin
          t:=y[i];
         y[i]:=y[j];
          y[j]:=t;
        end;
  h1:=1;
  a[1]:=x[1];
  for i:=2 to h do
    if x[i]<>x[i-1] then
      begin
        inc(h1);
        a[h1]:=x[i];
      end;
  h2:=1;
  b[1]:=y[1];
  for i:=2 to h do
    if y[i]<>y[i-1] then
      begin
        inc(h2);
        b[h2]:=y[i];
      end;
  for i:=1 to h1-1 do
    for j:=1 to h2-1 do
      begin
        pop:=false;
        for k:=1 to ndo
          if (a[i]>=x1[k])and (a[i+1]<=x2[k]) and (b[j]>=y1[k]) and (b[j+1]<=y2[k])then
           begin
             pop:=true;
             break;
           end;
        if pop thenans:=ans+(b[j+1]-b[j])*(a[i+1]-a[i]);
      end;
  writeln(ans);
end. 

vijos1056题解的更多相关文章

  1. 2016 华南师大ACM校赛 SCNUCPC 非官方题解

    我要举报本次校赛出题人的消极出题!!! 官方题解请戳:http://3.scnuacm2015.sinaapp.com/?p=89(其实就是一堆代码没有题解) A. 树链剖分数据结构板题 题目大意:我 ...

  2. noip2016十连测题解

    以下代码为了阅读方便,省去以下头文件: #include <iostream> #include <stdio.h> #include <math.h> #incl ...

  3. BZOJ-2561-最小生成树 题解(最小割)

    2561: 最小生成树(题解) Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 1628  Solved: 786 传送门:http://www.lyd ...

  4. Codeforces Round #353 (Div. 2) ABCDE 题解 python

    Problems     # Name     A Infinite Sequence standard input/output 1 s, 256 MB    x3509 B Restoring P ...

  5. 哈尔滨理工大学ACM全国邀请赛(网络同步赛)题解

    题目链接 提交连接:http://acm-software.hrbust.edu.cn/problemset.php?page=5 1470-1482 只做出来四道比较水的题目,还需要加强中等题的训练 ...

  6. 2016ACM青岛区域赛题解

    A.Relic Discovery_hdu5982 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Jav ...

  7. poj1399 hoj1037 Direct Visibility 题解 (宽搜)

    http://poj.org/problem?id=1399 http://acm.hit.edu.cn/hoj/problem/view?id=1037 题意: 在一个最多200*200的minec ...

  8. 网络流n题 题解

    学会了网络流,就经常闲的没事儿刷网络流--于是乎来一发题解. 1. COGS2093 花园的守护之神 题意:给定一个带权无向图,问至少删除多少条边才能使得s-t最短路的长度变长. 用Dijkstra或 ...

  9. CF100965C题解..

    求方程 \[ \begin{array}\\ \sum_{i=1}^n x_i & \equiv & a_1 \pmod{p} \\ \sum_{i=1}^n x_i^2 & ...

随机推荐

  1. MySql学习笔记(一) —— 关键字的使用

    1.distinct关键字 作用:检索出有不同值的列,比如一个商品表中存在供应商vend_id,一个供应商会对应很多商品,我们要查找有多少供应商,就可以用到该关键字去重. select distinc ...

  2. python 计算两个日期相差多少个月

    近期,由于业务需要计算两个日期之前相差多少个月.我在网上找了很久,结果发现万能的python,居然没有一个模块计算两个日期的月数,像Java.C#之类的高级语言,都会有(date1-date2).mo ...

  3. (中级篇 NettyNIO编解码开发)第八章-Google Protobuf 编解码-2

    8.1.2    Protobuf编解码开发 Protobuf的类库使用比较简单,下面我们就通过对SubscrjbeReqProto进行编解码来介绍Protobuf的使用. 8-1    Protob ...

  4. Flume简介及安装

    Hadoop业务的大致开发流程以及Flume在业务中的地位: 从Hadoop的业务开发流程图中可以看出,在大数据的业务处理过程中,对于数据的采集是十分重要的一步,也是不可避免的一步,从而引出我们本文的 ...

  5. jQuery选择器中的空格问题

    前几天就遇到过这样的问题,明明我用的是('tr :even').css('background','#ccc')想改变表格中行的背景色,反复试了还是没改变.还问了度娘还是没找到原因所在(当时问题描述的 ...

  6. SVN版本控制系统搭建(+结合http服务)

    .zise { background: #CCCCFF; color: white; text-align: center } .fense { color: #FFCCCC; text-align: ...

  7. iOS安全攻防之代码混淆

    iOS 代码安全之代码混淆实践: 前言: 在8月份的时候写了个关于 class-dump 反编译的文章(使用 Class-dump 反编译),利用 class-dump 工具可以反编译出工程的头文件, ...

  8. 你知道现在有一种新的OCR技术叫“移动端车牌识别”吗?

    核心内容:车牌识别.OCR识别技术.移动端车牌识别.手机端车牌识别.安卓车牌识别.Android车牌识别.iOS车牌识别 一.移动端车牌识别OCR技术研发原理 移动端车牌识别是基于OCR识别的一种应用 ...

  9. Spring Task每次都会调用两次的问题

    最近一个Spring Mvc的项目中需要定时执行一个任务,所以使用了spring 自带的Task功能.本地调试的时候一切都正常,可是部署到服务器上后,每次任务都会被调用两次.在网上搜索了相关的问题,排 ...

  10. mac Path had bad ownership/permissions

    解决方案: http://stackoverflow.com/questions/28063598/error-while-executing-plist-file-path-had-bad-owne ...