【牛客 - 317E】小a的轰炸游戏(差分,前缀和)

题干:

小a正在玩一款即时战略游戏,现在他要用航空母舰对敌方阵地进行轰炸
地方阵地可以看做是n×mn×m的矩形
航空母舰总共会派出qq架飞机。
飞机有两种,第一种飞机会轰炸以(xi,yi)(xi,yi)为中心,对角线长为lili的正菱形(也就是两条对角线分别于xx轴 yy轴平行的正方形),而第二种飞机只会轰炸正菱形的上半部分(包括第xixi行)
(具体看样例解释)
现在小a想知道所有格子被轰炸次数的异或和
注意:不保证被轰炸的格子一定在矩形范围内,若越界请忽略

输入描述:

第一行三个整数n,m,qn,m,q,分别表示矩阵的长/宽/询问次数
接下来qq行,每行四个整数opt,x,y,lopt,x,y,l,表示飞机类型,轰炸的坐标,以及对角线长度
保证ll为奇数!

输出描述:

一个整数,表示所有格子被轰炸次数的异或和

示例1

输入

复制

4 5 4
1 2 2 1
1 3 3 5
1 3 2 3
2 2 4 3

输出

复制

2

说明

 

每次的操作矩阵即操作后的矩阵的值如下

0 0 0 0 0

0 1 0 0 0
0 0 0 0 0
0 0 0 0 0

0 0 1 0 0
0 2 1 1 0
1 1 1 1 1
0 1 1 1 0

0 0 1 0 0
0 3 1 1 0
2 2 2 1 1
0 2 1 1 0

0 0 1 1 0
0 3 2 2 1
2 2 2 1 1
0 2 1 1 0
最后把所有元素异或后为2

备注:

1⩽n,m⩽10001⩽n,m⩽1000

1⩽q⩽5∗1051⩽q⩽5∗105

保证opt=1/2,1⩽x,y,l⩽max(N,M)opt=1/2,1⩽x,y,l⩽max(N,M)

读入文件过大,请使用较快的读入方式

 

解题报告:

   这题考查的是对差分数组和前缀和的理解。四个数组分别记录朝着四个方向下放的个数最后求个前缀,就代表着这一行中从这个点开始作为起点的轰炸区域个数,四个数组分别向着四个方向下放最终得到的四个数组分别是前。可以找个边长为1的操作模拟一下,虽然看着别扭但是没啥问题。也就是:数组中是差分数组,最后查询是前缀和查询。

AC代码:

#include<cstdio>
#include<iostream>
#include<algorithm>
#include<queue>
#include<map>
#include<vector>
#include<set>
#include<string>
#include<cmath>
#include<cstring>
#define ll long long
#define pb push_back
#define pm make_pair
#define fi first
#define se second
using namespace std;
const int MAX = 3030,ADD = 1000;
int a[MAX][MAX],b[MAX][MAX],c[MAX][MAX],d[MAX][MAX];
void up(int x,int y,int l) {a[x-l/2][y]++,b[x-l/2][y+1]--;a[x+1][y-l/2-1]--,b[x+1][y+l/2+2]++;
}
void down(int x,int y,int l){c[x+1][y-l/2+1]++,d[x+1][y+l/2]--;c[x+l/2+1][y+1]--,d[x+l/2+1][y]++;
}
int main() {int n,m,q;cin>>n>>m>>q;for(int op,x,y,l,i = 1; i<=q; i++) {scanf("%d%d%d%d",&op,&x,&y,&l);x+=ADD,y+=ADD;if(op == 1) up(x,y,l),down(x,y,l);if(op == 2) up(x,y,l);}for(int i = 1; i<=n+ADD*2; i++) {for(int j = 1; j<=m+ADD*2; j++) {a[i][j] += a[i-1][j+1];b[i][j] += b[i-1][j-1];c[i][j] += c[i-1][j-1];d[i][j] += d[i-1][j+1]; }}int ans = 0;for(int i = 1; i<=n+ADD*2; i++) {int tmp = 0;for(int j = 1; j<=m+ADD*2; j++) {tmp += a[i][j] + b[i][j] + c[i][j] + d[i][j];if(i>=ADD+1 && i<=ADD+n && j>=ADD+1 && j<=ADD+m) ans ^=tmp;}}	cout << ans <<endl;return 0 ;
}

 

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

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

相关文章

认真测试直播软件,直播这么火,你知道怎么测试直播软件吗?

作为互联网的新生力量&#xff0c;一种新型的社交互动方式&#xff0c;直播软件快速在互联网行业占有一席之地。市场上对于直播软件的开发应用也越来越多&#xff0c;直播软件的框架&#xff1f;直播软件的原理&#xff1f;直播软件的功能点&#xff1f;直播软件测试关注点&…

csm和uefi_关于CSM和UEFI你要知道的一些事

最近碰到了一件小事,让我觉得关于这个还是专门用一期说一下比较好。 一个朋友最近要升级机器,老机器是A8 5600+8GB DDR3,还有一张我送他的GTX660.他的预算3K左右,决定先不买显卡,花了2600左右,买了一张技嘉的B360M DS3H+i5 8400+16GB DDR4内存,SSD他有,电源准备用老的。…

计算机辅助教学研究现状,计算机辅助教学应用现状及对策研究

计算机辅助教学应用现状及对策研究 (8页)本资源提供全文预览&#xff0c;点击全文预览即可全文预览,如果喜欢文档就下载吧&#xff0c;查找使用更方便哦&#xff01;9.9 积分计算机辅助教学应用现状及对策研究摘要&#xff1a;新形势下&#xff0c;计算机辅助教学迅速发展&…

【牛客 - 317F】小a的子序列(线性dp,tricks)

题干&#xff1a; 小a有一个长度为nn的序列&#xff0c;但是他忘了这个序列的样子&#xff0c;他只记得序列中的数大小在[1,V][1,V]内 你可以任意选择一些位置&#xff0c;并给它们赋值来组成一段子序列&#xff0c;需要满足序列中的数严格递增 一段子序列的“萌值”定义为序…

hostapd 进程启动不了_项目管理|项目启动会实操要点,项目经理掌权的关键

项目启动会就像古代的誓师大会&#xff0c;把大家集中到一起&#xff0c;告诉大家我们要去干什么&#xff0c;这个事情如何重要、皇帝如何重视&#xff0c;干成以后大家升官加爵、富贵少不了大家的等等&#xff0c;大会目的在于调动起大家干活的热情&#xff0c;然后顺利地推进…

【牛客 - 317G】小a的排列(模拟,构造)

题干&#xff1a; 小a有一个长度为nn的排列。定义一段区间是"萌"的&#xff0c;当且仅当把区间中各个数排序后相邻元素的差为11 现在他想知道包含数x,yx,y的长度最小的"萌"区间的左右端点 也就是说&#xff0c;我们需要找到长度最小的区间[l,r][l,r]&a…

怎么看联想计算机的ip,如何查看本机ip

ip地址是我们连上互联网的凭证&#xff0c;每台能连上互联网的电脑都会分配有一个ip地址。每台电脑的IP地址都不唯一&#xff0c;并且从我们主机的IP地址上可以看出我们电脑连上互联网的所在位置与地区&#xff0c;就像我们生活中的门牌号码一样。很多朋友还不知道本机ip怎么查…

当前元素_前端系列——获取页面中的DOM元素

这里就聊一下获取页面中DOM元素最基本的两种方法&#xff1a;document.getElementById.在整个页面中通过元素的Id属性值来获取到这个元素对象&#xff0c;getElementById是获取元素的方法&#xff0c;而document是获取元素的范围&#xff0c;我们也将此范围称为“上下文”。注意…

东华大学计算机年薪,东华大学公布应届毕业生薪酬:本科生月薪中位数6637元...

岁末年初&#xff0c;国内多所名校陆续发布了2020届毕业生就业质量报告&#xff0c;各校毕业生的平均薪酬也随之公布。澎湃新闻(www.thepaper.cn)注意到&#xff0c;由教育部直属的新中国第一所纺织高等学府东华大学也于近日公布了本校毕业生的平均薪酬状况。1月4日&#xff0c…

【牛客 - 330C】Applese 走迷宫(bfs)

题干&#xff1a; 精通程序设计的 Applese 双写了一个游戏。 在这个游戏中&#xff0c;它被困在了一个 nmnm 的迷宫中&#xff0c;它想要逃出这个迷宫。 在迷宫中&#xff0c;有一些方格是水池&#xff0c;只有当 Applese 处于水属性的时候才可以通过&#xff1b;有一些方格是岩…

怎么做蒙特卡洛计算npv_PowerBI非标准日历下的同比环比计算,你知道怎么做吗?...

​对于按照自然年月日来分析的业务数据&#xff0c;在PowerBI中可以轻松的使用时间智能函数来进行各种时间指标的计算&#xff0c;但如果不是按标准的日历&#xff0c;很多人就开始有点懵&#xff0c;不知道该如何计算了。比如有的公司的业务月份是从26号到下个月的25号&#x…

pvz安卓服务器维修礼包码,植物大战僵尸2礼包兑换码大全2020最新版

植物大战僵尸2礼包码2020最新版是一款能够让玩家体验烧脑塔防大战的放置游戏&#xff0c;拥有经典的游戏规则设计&#xff0c;带来的玩法也会让每个玩家体验最为精彩的体验&#xff0c;每个僵尸都有着自己的特性&#xff0c;游戏之中的每一种植物都有自己的战斗方式&#xff0c…

【牛客 - 330F】Applese 的QQ群(拓扑排序,二分)

题干&#xff1a; Applese 有一个QQ群。在这个群中&#xff0c;大家互相请教问题。如 b 向 a 请教过问题&#xff0c;就把 a 叫做是 b 的"老板"。这样一个群中就会有很多老板。 同时规定&#xff1a;如果 a 是 b 的老板&#xff0c;b 是 c 的老板&#xff0c;那么…

安卓用于组件传递参数的对象是_入门篇:7.组件2:Android Service-service的数据传递与通信...

(由于对java的回调机制和线程理解的不够透彻&#xff0c;所以这块内容我理解了好久&#xff0c;尤其是绑定服务传递数据&#xff0c;一句一句写一句一句看&#xff0c;对我来说挺难理解的。以后还要多看几遍&#xff0d;&#xff0d;&#xff01;)既然单纯的启动或跳转activity…

【牛客 - 330G】Applese 的毒气炸弹(最小生成树,构造,判连通图)

题干&#xff1a; 众所周知&#xff0c;Applese 是个很强的选手&#xff0c;它的化学一定很好。 今天他又AK了一套题觉得很无聊&#xff0c;于是想做个毒气炸弹玩。 毒气炸弹需要 k 种不同类型元素构成&#xff0c;Applese一共有 n 瓶含有这些元素的试剂。 已知元素混合遵循…

服务器风扇一直高速转系统起不来,【案例】别克君越风扇启动后一直高速常转 维修案例...

故障诊断启动车辆&#xff0c;冷车时风扇正常&#xff0c;当温度达到正常温度后&#xff0c;节温器打开风扇一直常转&#xff0c;客户描述的问题存在。目测检查发动机外观状态&#xff1a;无漏油、无移位、部件连接无松动、电气插头安装牢固、无异味、无过热现象&#xff0c;都…

添加一列_Joom平台CSV文件如何添加产品?CSV文件添加产品流程一览

CSV文件添加产品在添加产品及变型以前&#xff0c;请先了解产品的CSV文件介绍以及产品变型要求。CSV添加产品CSV文件中的一行对应一个产品变型。卖家想为产品添加变型的话&#xff0c;需要在表格里新添一行或多行信息。——列表第一行是产品基本信息及产品本身的信息。卖家需要…

【牛客 -330E 】Applese 涂颜色(费马小定理,超级快速幂)

题干&#xff1a; 精通程序设计的 Applese 叕写了一个游戏。 在这个游戏中&#xff0c;有一个 n 行 m 列的方阵。现在它要为这个方阵涂上黑白两种颜色。规定左右相邻两格的颜色不能相同。请你帮它统计一下有多少种涂色的方法。由于答案很大&#xff0c;你需要将答案对 10971…

四元数乘法_JPL四元数和Hamilton四元数的区别

四元数的定义&#xff1a; 1.顺序JPL: 实部在后 , Hamilton: 实部在前 , 2.坐标系JPL: 左手坐标系 Hamilton: 右手坐标系 3.坐标系的转换方向JPL: global-to-local 世界坐标系 --> 局部坐标系 , Hamilton: local-to-global 局部坐标系 --> 世界坐标系 , 4.四元数与旋…

【牛客 - 330I】Applese 的回文串(结论题,类似编辑距离,dp)

题干&#xff1a; 自从 Applese 学会了字符串之后&#xff0c;精通各种字符串算法&#xff0c;比如……判断一个字符串是不是回文串。 这样的题目未免让它觉得太无聊&#xff0c;于是它想到了一个新的问题。 如何判断一个字符串在任意位置(包括最前面和最后面)插入一个字符后…