CF1982D Beauty of the mountains

【题意】

Nikita 喜欢爬山。当地的山可以看作一个由 ( n × m ) (n \times m) (n×m) 个格子组成的 n × m n \times m n×m 的矩形,每一个格子都有一个初始非负高度 a i , j a_{i,j} ai,j

格子有两种类型:

  • 有雪
  • 无雪

Nikita 有一种超能力:他可以任意选择一个 k × k k \times k k×k 的子矩形,使这个子矩形中的所有格子的高度增加同一个常量 c c c c c c 可以自己指定,每次操作未必相同)。 c c c 可以是负数

Nikita 希望通过有限次操作使得有雪的格子的总高度和无雪的格子的总高度相等。

你的任务是判断是否可行。

【读入】

本题有多组数据。

第一行一个整数 t ( 1 ≤ t ≤ 1 × 1 0 4 ) t(1 \leq t \leq 1 \times 10^{4}) t(1t1×104),表示一共有 t t t 组数据。

每组数据的第一行三个整数 n , m , k ( 1 ≤ n , m ≤ 500 , 1 ≤ k ≤ min ⁡ { n , m } ) n,m,k(1 \leq n,m \leq 500, 1\leq k \leq \min \left \{ n,m \right \}) n,m,k(1n,m500,1kmin{n,m})

接下来 n n n 行,每行 m m m 个整数,表示初始高度 a i , j ( 0 ≤ a i , j ≤ 1 × 1 0 9 ) a_{i,j}(0 \leq a_{i,j} \leq 1 \times 10^{9}) ai,j(0ai,j1×109)

接下来 n n n 行,每行一个长度为 m m m 的有 0 , 1 0,1 0,1 构成的字符串(没有空格), 0 0 0 表示该格子无雪, 1 1 1 表示有雪。

保证所有数据的 n × m n \times m n×m 总和不超过 250 , 000 250,000 250,000

【输出】

t t t 行,表示答案。如果 Nikita 可以在有限次操作后达成目标,则输出 Yes,否则输出 No

不区分大小写,如 YESYesyEs 都表示给出肯定答案

Translated by HPXXZYY.


[Solution] \color{blue}{\texttt{[Solution]}} [Solution]

显然,每个格子的值具体是多少我们并不关心,我们只关心两种格子的值的差值,记为 Δ \Delta Δ

很显然,对 k × k k \times k k×k 的子矩形中的每一个数都加上 c 1 c_{1} c1,再加上 c 2 c_{2} c2,与直接加上 c = c 1 + c 2 c=c_{1}+c_{2} c=c1+c2 没有区别。因此,如果有解,一定存在这样的解:我们对每个需要变化的子矩形最多进行 1 1 1 次操作。

当然,如果对某个子矩形不进行操作,我们也可以对它进行一次加上 c = 0 c=0 c=0 的操作。这样,一定存在这样的一组解:我们对每个 k × k k \times k k×k 的子矩形都进行且只进行 1 1 1 次操作。

对于某个子矩形,加入它有 x x x 个有雪的格子,那么它一定有 ( k 2 − x ) \left ( k^{2}-x \right ) (k2x) 个没有雪的格子。那么对这个子矩形进行一次操作后,会使 Δ \Delta Δ 变化为 Δ + c × [ ( k 2 − x ) − x ] \Delta + c \times \left [ \left ( k^{2}-x \right ) -x\right ] Δ+c×[(k2x)x](显然你想要 Δ \Delta Δ 减小只需让 c c c 为负数)。

对每个子矩形维护这样一个特征值 [ ( k 2 − x ) − x ] \left [ \left ( k^{2}-x \right ) -x\right ] [(k2x)x],记为 t t t。对这个子矩形的操作必然使 Δ \Delta Δ 增加或减小 t t t 的倍数。

这样我们就获得了一系列的 t t t,记为 t 1 , t 2 , t 3 , … , t g t_{1},t_{2},t_{3}, \dots ,t_{g} t1,t2,t3,,tg。问题变成解下面的不定方程是否有整数解

Δ = ∑ i = 1 g c i ⋅ t i \Delta=\sum\limits_{i=1}^{g}c_{i} \cdot t_{i} Δ=i=1gciti

显然如果 Δ \Delta Δ gcd ⁡ { t i } \gcd \{ t_{i} \} gcd{ti} 的倍数,则有解;反之则无解。

[code] \color{blue}{\text{[code]}} [code]

typedef long long ll;char c[510];
int n,m,T,res,k;ll delta;
int a[510][510],b[510][510],s[510][510];inline int Abs(int u){return ((u<0)?-u:u);
}
inline int gcd(int u,int v){if (v==0) return u;return gcd(v,u%v);
}int main(){T=read();while (T--){n=read();m=read();k=read();for(int i=1;i<=n;i++)for(int j=1;j<=m;j++)a[i][j]=read();for(int i=1;i<=n;i++)for(int j=1;j<=m;j++)b[i][j]=s[i][j]=0;//只能这么清空 delta=0;res=-1;for(int i=1;i<=n;i++){scanf("%s",c+1);for(int j=1;j<=m;j++)if (c[j]=='1'){delta+=a[i][j];b[i][j]=1;}else{delta-=a[i][j];b[i][j]=-1;}}for(int i=1;i<=n;i++)for(int j=1;j<=m;j++)s[i][j]=s[i-1][j]+s[i][j-1]-s[i-1][j-1]+b[i][j];for(int i=k;i<=n;i++)for(int j=k;j<=m;j++){int tmp=s[i][j]-s[i-k][j]-s[i][j-k]+s[i-k][j-k];if (res==-1) res=Abs(tmp);else res=gcd(res,Abs(tmp));}if (res==0) printf("%s\n",(delta==0?"Yes":"NO"));else if (delta%res==0) printf("yEs\n");else printf("nO\n");}return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/41880.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数组相关内容

一、数组 就是一个集合&#xff0c;里面存放了相同类型的数据元素 特点&#xff1a; 1.数组中的每个数据元素都是相同的数据类型 2.数组是由连续内存位置组成的 二、一维数组 定义方式 1.数据类型 数组名[数组长度]&#xff1b; 2.数据类型 数组名[数组长度]{值1&#xff0…

Jacoco的覆盖率原理

收集覆盖率信息的方法 Runtime Profiling Runtime Profiling是一种在程序运行时进行的性能分析技术,它可以帮助开发者了解程序的运行情况,识别性能瓶颈和优化程序性能。由于是在程序运行时进行,runtime profiling 能够提供实时的数据,便于理解程序在实际运行条件下的行为…

周报7.1-7.7

学习内容 了解注意力机制的相关内容&#xff0c;学习注意力提示、注意力汇聚、评分函数、Bahdanau注意力、多头注意力、Transformer等内容。了解Bahdanau注意力和Transformer的模型代码实现。Qt的碳汇源继续需求整改 下周计划 学习Pytorch的代码实战&#xff0c;学习使用Ten…

HashMap中的put()方法

一. HashMap底层结构 HashMap底层是由哈希表(数组),链表,红黑树构成,哈希表存储的类型是一个节点类型,哈希表默认长度为16,它不会每个位置都用,当哈希表中的元素个数大于等于负载因子(0.75)*哈希表长度就会扩容到原来的2倍 二. 底层的一些常量 三. HashMap的put()方法 当插入一…

ONLYOFFICE最新8.1版本——桌面编辑器简单测评

前言 大家好&#xff0c;我是小雨&#xff0c;看到最近ONLYOFFICE更新了最新的版本&#xff0c;更新了一下当前版本来具体的测评一下&#xff0c;先来看看官网提供的各类更新信息&#xff0c;下面是我找到的三个主页&#xff0c;包括功能演示链接&#xff0c;官网连接以及专门…

阿里云存储

传统存储面临的挑战 现如今&#xff0c;数据与土地、劳动力、资本、技术并称为五大生产要素&#xff0c;数据成为数字经济发展的重要引擎。大数据时代&#xff0c;数据处理的需求急剧增长&#xff0c;越来越多的智能设备以及新应用如区块链、机器学习训练和AI等产生大量的数据…

复分析——第10章——Θ函数应用(E.M. Stein R. Shakarchi)

第10章 Θ函数的应用 (Applications of Theta Functions) The problem of the representation of an integer n as the sum of a given number k of integral squares is one of the most celebrated in the theory of numbers. Its history may be traced back to Diopha…

CV03_mAP计算以及COCO评价标准

COCO数据集回顾&#xff1a;CV02_超强数据集&#xff1a;MSCOCO数据集的简单介绍-CSDN博客 1.1 简介 在目标检测领域中&#xff0c;mAP&#xff08;mean Average Precision&#xff0c;平均精度均值&#xff09;是一个广泛使用的性能评估指标&#xff0c;用于衡量目标检测模型…

短信验证码实现

一、设置AccessKey 创建用户并配置使用权限&#xff0c;使我们拥有调用 aliyunAPI 的权限&#xff0c;之后会生成 AccessKeyID 和 AccessKey密码&#xff0c;后面我们会使用到。需要注意的是 AccessKeyID 和 AccessKey密码生成后我们需要将他保存起来&#xff0c;否则后期无法查…

奇迹MU 骷髅战士在哪

BOSS分布图介绍 我为大家带来各地区怪物分布图。在游戏前期&#xff0c;很多玩家可能会不知道该去哪里寻找怪物&#xff0c;也不知道哪些怪物值得打。如果选择了太强的怪物&#xff0c;弱小的玩家可能会无法抵御攻击。如果选择了低等级的boss&#xff0c;收益可能并不理想。所…

智能家居安防系统教学解决方案

前言 随着科技的不断进步和智能家居概念的深入人心&#xff0c;智能家居安防系统作为智能家居领域的重要组成部分&#xff0c;其重要性日益凸显。智能家居安防系统不仅能够提供环境和人员的监测功能&#xff0c;还能够采取措施降低或避免人员伤亡及财产损失。因此&#xff0c;…

Double 4 VR虚拟情景智能互动系统在高铁乘务管理课堂上的应用

在不断进步的科技背景下&#xff0c;虚拟现实&#xff08;VR&#xff09;技术已广泛应用于教育领域。VR技术的运用为课堂教育提供了新的思路与方式&#xff0c;尤其在高铁乘务管理这一专业中&#xff0c;Double 4 VR虚拟情景智能互动系统更是发挥了其独特的优势。 一、VR技术带…

word文档没有保存就关闭了怎么恢复?找到正确的方法

昨天写教程的时候&#xff0c;终于完成了一个word文档&#xff0c;以为保存了就直接关了。word提醒我“是否保存”&#xff0c;我直接忽略了。动作一气呵成&#xff0c;毫不犹豫的关闭了。之后才发现我没有保存word文档。这种情况大家有遇到过吗?我们该如何在没有保存的情况下…

迎接AI新时代:GPT-5即将登场的巨大变革与应用前瞻

迎接AI新时代&#xff1a;GPT-5即将登场的巨大变革与应用前瞻 &#x1f48e;1. GPT-5 一年半后发布&#xff1a;AI新时代的来临1.1 GPT-5的飞跃&#xff1a;从高中生到博士生 &#x1f48e;2. GPT-5的潜在应用场景&#x1f48e;2.1 医疗诊断和健康管理&#x1f48e;2.2 教育领域…

Docker+Spring boot为环境变量赋值(普通变量和List变量)

DockerSpring boot为环境变量赋值&#xff08;普通变量和List变量&#xff09; Spring boot开发微服务&#xff0c;使用yml做配置文件&#xff0c;Docker方式部署。 在不同环境中&#xff0c;需要对yml中的配置进行调整&#xff0c;本文主要介绍在以docker run方式运行时&…

谷歌推广:精准定位潜在客户群体,提高广告转化率

借助谷歌推广&#xff0c;你的品牌将如火箭升空般迅速崛起。作为全球最大的搜索引擎&#xff0c;其影响力犹如站在巨人之肩&#xff0c;触及的受众规模高达数十亿人。更为重要的是&#xff0c;我们可以准确锁定那些最有可能对贵公司的产品或服务产生浓厚兴趣的群体。这并非普通…

【Git】取消追踪多个文件或目录

文章目录 场景方法1. 添加到 .gitignore2. 从暂存区移除 示例1. 编辑 .gitignore 文件2. 从暂存区移除文件或目录 场景 清理&#xff1a;不再希望某些文件被 Git 追踪。配置忽略文件&#xff1a;通常配合 .gitignore 文件使用&#xff0c;以便以后这些文件不会被重新添加到索引…

ContextCapture - 开启三维世界的魔法之门

亲爱的朋友们&#xff0c;当我第一次接触到ContextCapture这款软件时&#xff0c;我的内心激动得难以平静。仿佛一位魔法师突然出现在我面前&#xff0c;向我展示了一个全新的世界。是的&#xff0c;这就是ContextCapture带给我的感觉 - 它不仅仅是一款软件&#xff0c;更是一把…

基于海思Hi3403V100方案开发双目1600万拼接相机测试截图

海思Hi3403V100平台SOC内置四核A55&#xff0c;提供高效且丰富和灵活的CPU资源&#xff0c;以满足客户计算和控制需求&#xff0c;并且集成单核MCU&#xff0c;已满足一些低延时要求较高场景。 多目相机PE108CB板是针对该芯片设计的一款多目凭借相机PCBA&#xff0c;硬件接口支…

7寸微型FPV无人机技术详解

对于7寸微型FPV&#xff08;First Person View&#xff0c;第一人称视角&#xff09;无人机技术的详解&#xff0c;可以从以下几个方面进行介绍&#xff1a; 一、定义与基本概念 FPV无人机&#xff0c;全称为“第一人称视角无人机”&#xff0c;它利用安装在无人机上的摄像头…