2024.11.20 NOIP模拟 - 模拟赛记录

news/2024/11/20 18:31:24/文章来源:https://www.cnblogs.com/jerrycyx/p/18558947

异或(xor

每次所加三角形的范围如图所示:

image

这道题做法较多,我是通过两组差分与前缀和来做的。

首先需要一个三角形差分,使每一次在差分数组中修改时,影响到的范围是一个三角形,比如这样(红色点为 \((x,y)\),即 \((r,c)\)):

image

假设我们真正需要修改的三角形是橙色部分:

image

那么联系到正常差分,很容易想到在 \((x+l,y+l)\) 的位置减去多出的值:

image

然而,左下方还多出了一块矩形,而这不是我们想要的,所以我们可以再额外维护一个矩形的二维差分来抵消这部分多出的贡献(像正常二维差分一样在这块矩形区域内全部减去多出的贡献即可):

image

最后,对所有差分数组求前缀和,矩形差分数组的前缀和很好求,而三角形差分数组的前缀和则要额外注意。根据差分数组影响的三角形范围倒推可以得知,深蓝色部分的三角前缀和应该是这一部分的和:

image

其中深蓝色块的三角前缀和等于紫色块的三角前缀和加上深灰色部分,即(\(sum\) 表示三角前缀和,\(dif\) 表示差分数组):

\[sum_{i,j}=sum_{i-1,j-1}+\sum_{k=1}^{i-1}dif_{k,j} \]

然后就做出来了,时间复杂度 \(O(N^2)\)

#include<cstdio>
#include<algorithm>
#define LL long long
using namespace std;const int N=1005;
int n,q;
LL tr_dif[N][N],sq_dif[N][N];
LL tr_sum[N][N],sq_sum[N][N];
//triangle, square inline void Add(int x,int y,int l,int s)
{tr_dif[x][y]+=s;if(x+l<=n&&y+l<=n) tr_dif[x+l][y+l]-=s;if(x+l<=n) sq_dif[x+l][y]-=s;if(x+l<=n&&y+l<=n) sq_dif[x+l][y+l]+=s;return;
}void Calc_sum()
{for(int i=1;i<=n;i++)for(int j=1;j<=n;j++)sq_sum[i][j]=sq_dif[i][j]+sq_sum[i-1][j]+sq_sum[i][j-1]-sq_sum[i-1][j-1];for(int j=1;j<=n;j++){LL tmp=0;for(int i=1;i<=n;i++){tmp+=tr_dif[i][j];tr_sum[i][j]=tr_sum[i-1][j-1]+tmp;}}return;
}int main()
{freopen("xor.in","r",stdin);freopen("xor.out","w",stdout);scanf("%d%d",&n,&q);for(int i=1;i<=q;i++){int x,y,l,s;scanf("%d%d%d%d",&x,&y,&l,&s);Add(x,y,l,s);}Calc_sum();LL ans=0;for(int i=1;i<=n;i++)for(int j=1;j<=n;j++)ans^=tr_sum[i][j]+sq_sum[i][j];printf("%lld\n",ans);return 0;
}

对于每一行维护一个差分的做法时间复杂度是 \(O(QN)\) 的,似乎也可以卡一卡。

游戏(game

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

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

相关文章

实时多模态 AI 的 N 种新可能丨实时互动和大模型专场@RTE2024回顾

在本届 RTE2024 大会上,来自产业界和学术界的多位专家深入探讨了实时互动和大模型技术的最新进展及其潜在应用。西湖心辰联合创始人俞佳、声网 AI 算法工程师乔齐、MiniMax 资深音频算法专家张博闻、商汤科技数字文娱解决方案负责人焦文奎以及面壁智能算法 VP 翟忠武等分享了他…

vscode主题美化

vscode 主题美化 主题使用Tokyo Night由于我在用rust的时候发现其对一些变量的颜色不太好看,所以自己又在设置中改了一点"editor.tokenColorCustomizations": {...."[Tokyo Night]": { // or "[Tokyo Night Storm]""textMateRules": […

2024.11.20总结

1本文于 github 博客同步更新。 A: 一个数可以被操作当且仅存在一列的顶部元素为它且存在一列的底部元素为它,初始扫一遍,将合法的元素以顶部所在列为关键字扔到小根堆里,每次找到最小的元素添加,然后检查将新露出来的元素是否存在匹配,若结束时未填完即为无解。 B: 要么…

ABAP 日期计算

RP_CALC_DATE_IN_INTERVAL 日期函数2 FIMA_DATE_CREATE 有问题 在2月份计算有问题 慎用 计算两个日期月份 FIMA_DAYS_AND_MONTHS_AND_YEARS

群晖NAS维修数据恢复

一台群晖NAS,开机状态灯是黄灯,DISC4也是亮黄灯,机器一直在报警。 群辉型号DS415+,是一种典型的硬盘损坏的情况,这是一台四盘位的一个群辉NAS,第一时间把每个硬盘取下来编个编号,WD的红盘也就是nasVR专用硬盘,型号是WD401F2X的,生产日期有三块是2015年,有一块是比较新…

实景三维技术在基层社会治理中的数智化应用

在推进国家治理体系和治理能力现代化的进程中,基层社会治理的数字化转型尤为关键。实景三维技术,以其直观、精准的空间信息表达能力,正在成为基层社会治理的有力工具。本文将探讨实景三维技术如何在“地、房、人、用、管”五个维度赋能基层社会治理。一、实景三维技术简介实…

Nginx服务器配置---反向代理服务时proxy_pass的转发规则

nginx是由俄罗斯开发的一款http web服务器,我们经常用这款服务器做负载均衡和反向代理。今天我们就来聊聊Nginx作为反向代理时,如何进行路由配置。假设你已经部署好Nginx了,我们进入Nginx安装目录,进入nginx.conf文件。找到http节点下的server节点,值是一个json。在json中…

less 全局变量使用 引用

参考链接: https://blog.csdn.net/qq_42493241/article/details/120021001 照搬成功 (以防链接失效截图)

Ablations

消融实验(ablation study)是什么? 太长不看版: 说白了就是设立对照组/控制变量法的意思,通过去除/增加某个模块的作用,来证明该模块的必要性,如果消融实验后得到性能结果大幅变化,说明该模块起到了作用。—————————————————————————— 严谨版: …

低代码无代码开发工具:TOP10排名

随着企业数字化转型步伐的加快,无代码及低代码开发工具(LCNC)已跃升为构建应用的首选方案。这些工具凭借简化开发流程、降低技术壁垒的优势,赋能企业迅速构建并部署应用,以灵活应对市场的瞬息万变。为何需要低无代码? 在快速迭代的商业环境中,传统的代码开发模式往…

Debian12关闭休眠模式

场景描述: 日常服务器部署中,系统环境如果是Debian12操作系统,那么安装完操作系统后,会默认开启系统自动休眠模式, 需要关闭系统的自动休眠,否则网络状态也会休眠,导致远程连接服务器的时候,没有响应! 临时解决方式: 如果目标服务器在机房或者在旁边,可以移动下该服…