传送门 :
题意给定一个 n ∗ m n*m n∗m的数组,对于 a [ i , j ] a[i,j] a[i,j]表示当前 [ i , j ] [i,j] [i,j]的颜色
两个相同颜色的点,可以使得将其 [ x 1 , y 1 , x 2 , y 2 ] [x1,y1,x2,y2] [x1,y1,x2,y2]的范围内所有的颜色都覆盖掉
询问有多少个点没有被覆盖
思路首先做这题没有什么思路,感觉点很多
但是其实画了一个图之后会发现,当前颜色所能影响的点为 m a x [ x 1 , y 1 ] m i n [ x 2 , y 2 ] max[x1,y1]min[x2,y2] max[x1,y1]min[x2,y2]
即将所有点进行颜色分组,他能影响的范围也就是 最 大 的 x y 和 最 小 的 x y 最大的xy和最小的xy 最大的xy和最小的xy
对于一种比较难想的下图解释,如图显然就算当前图形有缺口,我们也可也使用另外两个节点补上
因此我们需要将所有点进行颜色分组并且记录
x
,
y
x,y
x,y,然后求得所有节点的左上角和右下角
因为是求覆盖问题,我们可以考虑使用二维差分矩阵
然后求一遍前缀和即可
Codeconst int N = 1e6+10 , INF = 0x3f3f3f3f3f;
int a[N][4];
int n,m;
int sum[1010][1010];
void solve(){
cin>>n>>m;
for(int i = 1;i
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?