题意:给你一个面,然后涂颜色,问你最后剩多少颜色,每种颜色面积。

思路:第一反应是二维线段树,代码又臭又长,可以做。但是这题暴力+离散化就可以过。可以看到他给的n只有100,也就是说最坏情况下会涂100次,每次最多涂200*200个点,那么完全可以用暴力。有一个地方纠结了半天,原题每一格代表了面积,我们离散化后每一格代表的是坐标点,所以我在涂面积时在起始位置+1后的位置开始涂,在算面积时,坐标左边就是涂的面积。

代码:

#include<set>
#include<map>
#include<cstdio>
#include<utility>
#include<cmath>
#include<stack>
#include<vector>
#include<queue>
#include<cstring>
#include<string>
#include<sstream>
#include<iostream>
#include<algorithm>
#define ll long long
#define ull unsigned long long
using namespace std;
const int maxn = 100+10;
const int seed = 131;
const int MOD = 100013;
const int INF = 0x3f3f3f3f;
struct node{int x1,y1,x2,y2,color;
}q[maxn];
int x[maxn << 1],y[maxn << 1];    //离散
int mp[maxn << 1][maxn << 1];
int color[maxn];
int main(){int h,w;int n,Case = 1;while(~scanf("%d%d",&h,&w) && h + w){scanf("%d",&n);int num1 = 0,num2 = 0;for(int i = 1;i <= n;i++){scanf("%d%d%d%d%d",&q[i].x1,&q[i].y1,&q[i].x2,&q[i].y2,&q[i].color);x[num1++] = q[i].x1,x[num1++] = q[i].x2;y[num2++] = q[i].y1,y[num2++] = q[i].y2;}sort(x,x + num1);sort(y,y + num2);num1 = unique(x,x + num1) - x;num2 = unique(y,y + num2) - y;memset(mp,0,sizeof(mp));memset(color,0,sizeof(color));for(int k = 1;k <= n;k++){int x1 = lower_bound(x,x + num1,q[k].x1) - x;int x2 = lower_bound(x,x + num1,q[k].x2) - x;int y1 = lower_bound(y,y + num2,q[k].y1) - y;int y2 = lower_bound(y,y + num2,q[k].y2) - y;for(int i = x1 + 1;i <= x2;i++){for(int j = y1 + 1;j <= y2;j++){mp[i][j] = q[k].color;}}}for(int i = 1;i < num1;i++){for(int j = 1;j <= num2;j++){if(mp[i][j]){color[mp[i][j]] += (x[i] - x[i - 1])*(y[j] - y[j - 1]);}}}if(Case != 1) printf("\n");printf("Case %d:\n",Case++);int num = 0;for(int i = 1;i <= 100;i++){if(color[i]){printf("%d %d\n",i,color[i]);num++;}}if(num == 1){printf("There is 1 color left on the wall.\n");}else{printf("There are %d colors left on the wall.\n",num);}}return 0;
}

转载于:https://www.cnblogs.com/KirinSB/p/9506119.html

ZOJ 2747 Paint the Wall(离散化+暴力)题解相关推荐

  1. CCF-CSP-202012-5 星际旅行 80分暴力题解

    问题描述 试题编号: 202012-5 试题名称: 星际旅行 时间限制: 3.0s 内存限制: 512.0MB 问题描述: 题目描述乔帝要规划一次星际旅行,星际空间可以视为一个 3 维坐标系,乔帝有 ...

  2. ZOJ Monthly, June 2014 月赛BCDEFGH题题解

    比赛链接:点击打开链接 上来先搞了f.c,,然后发现状态不正确,一下午都是脑洞大开,, 无脑wa,无脑ce...一样的错犯2次.. 硬着头皮搞了几发,最后20分钟码了一下G,不知道为什么把1直接当成不 ...

  3. 【分段哈希】H. Paint the Wall

    https://www.bnuoj.com/v3/contest_show.php?cid=9147#problem/H [题意] 在一个长为H,宽为W的白墙上选一个矩形区域涂颜色,后涂的颜色会覆盖先 ...

  4. 带修莫队 ---- 离散化 + 暴力 + 带修莫队 F. Machine Learning

    题目链接 题目大意: 给出nnn个数字,qqq个询问: 每次询问有两种类型,一种是询问区间,一种是单体修改: 询问区间是询问区间内最小的没用到的大于0的整数: 比如我有一串数字是 1 1 2 2 2 ...

  5. POJ3277 线段树段更新,点询问+二分离散化+暴力

    题意:       x轴上有一些矩形,问你这些矩形覆盖的面积和是多少. 思路:       首先范围很大,n很小,果断离散化,然后我们就是求出任意区间的最大值作为当前区间的高,最后在算一遍答案就行了, ...

  6. hdu 4391 Paint The Wall 线段树 +优化 2012 Multi-University Training Contest 10 )

    http://acm.hdu.edu.cn/showproblem.php?pid=4391 题意: 刷墙, 以开始 有 n个节点,每个节点有一种颜色 ,m 次询问 m次  输入 a,l,r,z 如果 ...

  7. ZOJ 2975 Kinds of Fuwas(暴力)

    题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2975 给出n*m的矩阵,要求算出四个角类型相同的小矩形的数目 使 ...

  8. 化装晚会(costume)暴力题解

    暴力出奇迹,这种题,看着有点难其实用两重循环就行了. 题目步骤: 1st:先用一个快排,从小到大 2nd:循环 for i:=n downto 1 dobeginfor j:=1 to i-1 doi ...

  9. B - Paint The Wall HDU - 4391[分块hash+tag标记]

    题目大意:就是有两个第一个操作你可以修改[l,r]区间内的所有数称为z,第二个操作是问你[l,r]区间内z的个数是多少 解法1:分块 由于这里涉及到了区间修改那么我们要借助线段树的Tag的思想,对于没 ...

最新文章

  1. 阿里2022“研究型实习生”计划公布,开放200多个科研选题
  2. Java SE7新特性之try-with-resources语句
  3. C语言使用array实现stack(附完整源码)
  4. 51nod1667-概率好题【容斥,组合数学】
  5. antd的 input有下拉_解决antd 下拉框 input [defaultValue] 的值的问题
  6. opencv入门_【OpenCV入门之十八】通过形态学操作提取水平与垂直线
  7. Mybatis从入门到精通下篇
  8. MySql 主从模式原理及操作步骤
  9. js截取字符串区分汉字字母代码
  10. 无向图中两点之间的距离_九上数学:二次函数图像,一动点到两定点距离和最小...
  11. 手动实现 NSTabViewController 的 Rect Transition 及 Propagate Title-b
  12. 41. 后台模块开发(6)
  13. html如何嵌入手机,手机嵌入页面
  14. SAP-WEB-GUI无法上传excel问题
  15. IO端口和IO内存映射【waitting】
  16. ttl传输中过期怎么解决_TTL在运输错误和解决方案中过期
  17. 计算机函数sumif求平均值,SUMIF在指定条件下求平均值
  18. vue地图单个打点定位
  19. 方孔分段的lisp_cad怎么把一条线直接分段
  20. 装备系统学习--GameGrind教程

热门文章

  1. 【算法学习笔记】43.动态规划 逆向思维 SJTU OJ 1012 增长率问题
  2. mysql_secure_installation
  3. java对象--内部类
  4. istringstream ostringstream stringstream
  5. WebService重载问题
  6. SpringIOC注解的学习笔记(一)
  7. 【Amazon 必考】Amazon Leadership Principles 亚马逊领导力准则
  8. spring 依赖注入
  9. (转)Activity的四种launchMode
  10. 删除条目时的确认对话框