1609. 幻灯片

该博客探讨了一个平面上有多个半透明矩形幻灯片的场景,幻灯片颜色可能因重叠而混合。任务是计算不同颜色的总数。输入包含幻灯片数量和每个幻灯片的坐标及颜色值,输出是平面上的独特颜色数量。数据范围限制考虑了不同规模的问题,代码可能涉及处理颜色重叠的算法。
摘要由CSDN通过智能技术生成

题目描述

在一个平面上放置有许多涂满颜色的幻灯片,这些幻灯片都是矩形而且是半透明的,所有的幻灯片的四边都与X轴或Y轴平行。我们可以给这些幻灯片的颜色编一个号,相同的数字对应相同的颜色。但是这些幻灯片可能会相互重叠,重叠部分的颜色就会混合变成另一种颜色,这个颜色值等于所有重叠幻灯片的颜色值之和。你的任务是找出这个平面上有多少种不同的颜色。

输入

输入第一行为一个整数N(1<=N<=100),N为平面上幻灯片的数量。接下来N行每行5个整数X1, Y1, X2, Y2, C,X1<X2,Y1<Y2,1<=C<=100,描述了一张幻灯片的情况,(X1,Y1)为左下角坐标,(X2,Y2)为右上角坐标,C为幻灯片颜色值。

输出

输出一个整数,为平面上出现的不同颜色的数量。

数据范围限制

对于50%的数据,0<=X1,Y1,X2,Y2<=10^2。
对于100%的数据,0<=X1,Y1,X2,Y2<=10^9。

Code

#include <cstdio>
#include <algorithm>
#include <iostream>
#define lowbit(x) ((x) & -(x))
using namespace std;
const int N = 100;
const int C = 100;
int n;
struct note
{
   
	double x1,y1,x2,y2;
	int c;
} a[N + 5];
double ind[N * 8 + 5];
int len,tot;
int sum[N * 8 + 5][N * 8 + 5];
int cnt[N * C + 5],ans;
int main()
{
   
	freopen("b.in","r",stdin)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 11
    评论
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值