题目:

桌面上放了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. java基础阅读卷1整理(待更新)

    JAVA语言的一些简单摘要,分为11点 1.简单性2.面相对象3.网络技能(Network-Savvy)4.健壮性5.安全性 6.体系结构中立7.可移植性8.解释型9.高性能10.多线程11.多态性 ...

  2. poi jsp xls

    poi jsp xls <%@ page language="java" pageEncoding="UTF-8"import="java.ut ...

  3. C++如何入门

    去 Visual Studiohttps://www.visualstudio.com/zh-hans/?rr=https%3A%2F%2Flink.zhihu.com%2F%3Ftarget%3Dh ...

  4. div,css命名规范!

    命名规则说明: 1).所有的命名最好都小写 2).属性的值一定要用双引号("")括起来,且一定要有值如class="pcss5",id="pcss5& ...

  5. oracle 体系结构简介

    1.1.SGA(system global area) SGA是oracle Instance的基本组成部分,在示例启动是分配.是一组包含一个oracle实例的数据和控制信息的共享内存结构.主要用于存 ...

  6. zookeeper 应用场景概述

    Zookeeper主要可以干哪些事情:配置管理,名字服务,提供分布式同步以及集群管理. 一 .配置管理 在我们的应用中除了代码外,还有一些就是各种配置.比如数据库连接,远程服务访问地址等.一般我们都是 ...

  7. 限制容器对CPU的使用 - 每天5分钟玩转 Docker 容器技术(28)

    上节学习了如何限制容器对内存的使用,本节我们来看CPU. 默认设置下,所有容器可以平等地使用 host CPU 资源并且没有限制. Docker 可以通过 -c 或 --cpu-shares 设置容器 ...

  8. DllImport 自动选择x64或x86 dll

    前言 标题不知道怎么确切地命名,在.net的托管世界里,有时不得不使用c的某个动态库,比如ocr.opencv等,如果幸运,有前人已经包装出.net版本,但有些不非常流行的库,只能自己使用pinvok ...

  9. 最近一个刚刚毕业的朋友说,他面试时候,遇到最频繁的css问题就是垂直居中,这里给出几种垂直居中方式!

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  10. 带着问题写React Native原生控件--Android视频直播控件

    最近在做的采用React Native项目有一个需求,视频直播与直播流播放同一个布局中,带着问题去思考如何实现,能更容易找到问题关键点,下面分析这个控件解决方法: 现在条件:视频播放控件(开源的ijk ...