日文题……一开始被题目骗了以为真的要写文件?

题目大意&&解答戳:

 #include<iostream>
#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<algorithm>
#include<vector>
#include<queue>
using namespace std;
int w,h,n,ans;
const int MAXN=+;
int x1[MAXN],x2[MAXN],y1[MAXN],y2[MAXN];
int hashx[MAXN*],hashy[MAXN*];
int fld[MAXN*][MAXN*];
int dx[]={,,,-};
int dy[]={,-,,}; void compress()
{
int tx=,ty=;
for (int i=;i<=n;i++)
{
hashx[++tx]=x1[i];hashx[++tx]=x2[i];
hashy[++ty]=y1[i];hashy[++ty]=y2[i];
}
hashx[++tx]=;hashx[++tx]=w;
hashy[++ty]=;hashy[++ty]=h;
sort(hashx+,hashx+tx+);
sort(hashy+,hashy+ty+);
w=unique(hashx+,hashx+tx+)-(hashx+);
h=unique(hashy+,hashy+ty+)-(hashy+);
for (int i=;i<=n;i++)
{
x1[i]=lower_bound(hashx+,hashx+w+,x1[i])-hashx-;
x2[i]=lower_bound(hashx+,hashx+w+,x2[i])-hashx-;
y1[i]=lower_bound(hashy+,hashy+h+,y1[i])-hashy-;
y2[i]=lower_bound(hashy+,hashy+h+,y2[i])-hashy-;
}
w--;h--;
} void init()
{
scanf("%d",&n);
for (int i=;i<=n;i++)
scanf("%d%d%d%d",&x1[i],&y1[i],&x2[i],&y2[i]);
compress();
} void imos() /*imos?*/
{
memset(fld,,sizeof(fld));
for (int i=;i<=n;i++)
{
fld[x1[i]][y1[i]]++;
fld[x2[i]][y2[i]]++;
fld[x1[i]][y2[i]]--;
fld[x2[i]][y1[i]]--;
} for (int i=;i<w;i++)
for (int j=;j<h;j++)
fld[i][j]+=fld[i][j-]; for (int j=;j<h;j++)
for (int i=;i<w;i++)
fld[i][j]+=fld[i-][j];
} void bfs(int x,int y)
{
ans++;
queue<int> qx,qy;
qx.push(x);
qy.push(y);
fld[x][y]=;
while (!qx.empty())
{
int xx=qx.front();qx.pop();
int yy=qy.front();qy.pop();
for (int i=;i<;i++)
{
int nx=xx+dx[i],ny=yy+dy[i];
if (nx< || ny< || nx>w || ny>h || fld[nx][ny]>) continue;
qx.push(nx);
qy.push(ny);
fld[nx][ny]=;
}
}
} void solve()
{
ans=;
for (int i=;i<w;i++)
for (int j=;j<h;j++)
if (fld[i][j]==) bfs(i,j);
printf("%d\n",ans);
} int main()
{
//freopen("input.txt","r",stdin);
//freopen("output.txt","w",stdout);
while (~scanf("%d%d",&w,&h)&&w&&h)
{
init();
imos();
solve();
}
return ;
}

【坐标离散化】AOJ0531- Paint Color的更多相关文章

  1. Aizu 0531 "Paint Color" (坐标离散化+DFS or BFS)

    传送门 题目描述: 为了宣传信息竞赛,要在长方形的三合板上喷油漆来制作招牌. 三合板上不需要涂色的部分预先贴好了护板. 被护板隔开的区域要涂上不同的颜色,比如上图就应该涂上5种颜色. 请编写一个程序计 ...

  2. Greedy:Paint Color(AOJ 0531)

    涂颜料 题目大意:在一个1000000*1000000的矩阵中放入几块木板,问你这些木板把矩阵划分成了几个区域?输入会给左下角和右上角的坐标,输入W==0且H==0结束. 这一题是书上的作业题,书上有 ...

  3. AOJ 0531 坐标离散化

    涂色:(日文题目,自己翻译成了中文)为了宣传信息竞赛,要在长方形的三合板上喷油漆来制作招牌.三合板上不需要涂色的部分预先贴好了护板.被护板隔开的区域要涂上不同的颜色,比如上图就应该涂上5种颜色. 请编 ...

  4. Aizu - 0531 Paint Color

    白书例题,直接用书上的暴力压缩坐标是可以的,但是看了别人的博客的写法,大概是理解了思想但是看不懂为什么那么压缩,先放这,等明白了补上 #define debug #include<stdio.h ...

  5. hihoCoder#1079(线段树+坐标离散化)

    时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 小Hi和小Ho在回国之后,重新过起了朝7晚5的学生生活,当然了,他们还是在一直学习着各种算法~ 这天小Hi和小Ho所在的学 ...

  6. AOJ 0531:Paint Color(二维离散+imos)

    [题目链接] http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=0531 [题目大意] 给出一张图,和一些矩形障碍物,求该图没被障碍物覆 ...

  7. nyoj_600:花儿朵朵(树状数组+坐标离散化)

    http://acm.nyist.net/JudgeOnline/problem.php?pid=600 只附代码好了 #include<bits/stdc++.h> using name ...

  8. Atlantis(坐标离散化)

    http://poj.org/problem?id=1151 题意:给出矩形的左上角坐标和右下角坐标(坐标的y轴是向下的),求出矩形面积的并.. 今天好困啊..迷迷糊糊的听会神给讲了讲,敲完之后调试了 ...

  9. nyoj 600:花儿朵朵(树状数组+坐标离散化)

    http://acm.nyist.net/JudgeOnline/problem.php?pid=600 只附代码好了 #include<bits/stdc++.h> using name ...

随机推荐

  1. Java基础-配置开发环境-安装JDK

    Java基础-配置开发环境-安装JDK 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.计算机基础知识 1>.计算机的组成 计算机有硬件与软件组成. 2>.硬件: 硬 ...

  2. 流媒体技术学习笔记之(三)Nginx-Rtmp-Module统计某频道在线观看流的客户数

    获得订阅者人数,可以方便地显示观看流的客户数. 查看已经安装好的模块 /usr/local/nginx/sbin/nginx -V 安装从源编译Nginx和Nginx-RTMP所需的工具 sudo a ...

  3. [软件]在浏览器里添加MarkDown Here(插件)

    1. 先来说说这个插件的作用是什么: 用于在网页一些编辑文本的地方, 使用MacDown编辑文本 支持大部分浏览器,  https://github.com/adam-p/markdown-here ...

  4. [转载]HTML5 真的会消灭原生App吗?

    http://mp.weixin.qq.com/s?__biz=MzA5NjQ4MzkyMw==&mid=201728945&idx=1&sn=8f43b5bb10695efc ...

  5. CS229 笔记08

    CS229 笔记08 Kernel 回顾之前的优化问题 原始问题为: \[ \min_{w,b} \frac{1}{2}||w||^2\\[1.5em] {\text{s.t.}}y^{(i)}\le ...

  6. ListUtil(差集、交集、并集)

    package cn.fraudmetrix.octopus.horai.biz.utils; import java.util.ArrayList; import java.util.Arrays; ...

  7. 洛谷 P1563 玩具谜题

    如果你想不耗费脑力做出这个题目,往下看: 本萌新看到这个题目,想到了乘法法则,题目中左右方向要判断两次,很耗脑力,和乘法中的正负号判断非常像. 抽象一点:这个人向内向外就是乘法中括号外的正负号,他的左 ...

  8. rpmbuild 构建rpm包时报错解决 error: Installed (but unpackaged) file(s) found:

    解决的办法是找到 /usr/lib/rpm/macros 中%__check_files         /usr/lib/rpm/check-files %{buildroot}   注释掉

  9. SpringBoot 构建RestFul API 含单元测试

    相关博文: 从消费者角度评估RestFul的意义 SpringBoot 构建RestFul API 含单元测试 首先,回顾并详细说明一下在快速入门中使用的  @Controller .  @RestC ...

  10. Petrozavodsk WinterTraining 2015

    PetrozavodskWinterTraining2015 A - Three Servers 题目描述:有\(n\)个数,将这\(n\)个数分成\(3\)堆,使得\(3\)堆中和的最大值减最小值最 ...