CodeForces 869E The Untended Antiquity 二维树状数组,随机hash

CodeForces 869E

题意: n*m 的格子,有三种操作, 1、在一个矩形周围加一层障碍。2、把一个矩形周围的障碍去掉。 3、询问两个格子是否可达。     题目保证不会有矩形障碍交叉,且去掉的矩形一定是在前面已给出的。

tags:

知道二维树状数组的话应该很容易想到怎么做,增减矩形只要给矩形里面的格子打上这个矩形的标记,询问的时候就看两个格子的标记是否一样即可。

但这题难在给矩形一个hash值,必须要保证两个被不同矩形围着的格子上标记的hash值不一样,这其实不太可能一定保证,只能让概率尽可能小。

我们可以随机给出矩形的 hash值,具体证明看官方题解。

#include<bits/stdc++.h>
using namespace std;
#pragma comment(linker, "/STACK:102400000,102400000")
#define rep(i,a,b) for (int i=a; i<=b; ++i)
#define per(i,b,a) for (int i=b; i>=a; --i)
#define mes(a,b)  memset(a,b,sizeof(a))
#define INF 0x3f3f3f3f
#define MP make_pair
#define PB push_back
#define fi  first
#define se  second
#define  PII  pair<int , int >
typedef long long ll;
const int N = 2505;ll  rd()
{return rand()<<15 | rand();
}int n, m, q;
ll  bit[N][N];
map< pair< PII, PII > , int >  mp;
void add(int r, int c, int x)
{for(int i=r; i<N; i+=i&-i)for(int j=c; j<N; j+=j&-j)bit[i][j] += x;
}
void update(int r1, int c1, int r2, int c2, int x)
{add(r2+1, c2+1, -x);   add(r1, c1, -x);add(r1, c2+1, x);  add(r2+1, c1, x);
}
ll Sum(int r, int c)
{ll ans = 0;for(int i=r; i; i-=i&-i)for(int j=c; j; j-=j&-j)ans += bit[i][j];return ans;
}int main()
{srand(time(0));rep(i,1,50) srand(rd());scanf("%d%d%d", &n, &m, &q);int t, r1, c1, r2, c2;rep(i,1,q){scanf("%d%d%d%d%d", &t, &r1, &c1, &r2, &c2);if(t==1){int rdm = rd();update(r1, c1, r2, c2, rdm);mp[MP(MP(r1,c1), MP(r2,c2))] = rdm;}else if(t==2){int tmp = mp[MP(MP(r1,c1), MP(r2,c2))];update(r1, c1, r2, c2, -tmp);}else{ll  ans1=Sum(r1, c1),  ans2=Sum(r2, c2);if(ans1==ans2) puts("Yes");else puts("No");}}return 0;
}

转载于:https://www.cnblogs.com/sbfhy/p/7676969.html

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

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

相关文章

纪念机器翻译概念的诞生:重新认识瓦伦·韦弗先生

来源&#xff1a;AI科技评论作者&#xff1a;张家俊编辑&#xff1a;丛 末机器翻译旨在利用计算机实现自然语言之间的自动翻译&#xff0c;一直是自然语言处理与人工智能领域的重要研究方向&#xff0c;近年来更是取得了突破性进展&#xff0c;已成为大众较为熟知和常用的技术…

php 怎样清除浏览器痕迹,如何清除电脑使用痕迹?上网痕迹清理的方法介绍

当我们上网的时候&#xff0c;会使用电子信箱&#xff0c;会登录很多论坛类网站&#xff0c;这样就会留下账号&#xff1b;可能会访问一些网站&#xff0c;这样会留下上网信息&#xff1b;可能会登录一些电子商务网站&#xff0c;那账号和密码则会默认保存在系统之中&#xff0…

兰德报告《现代战争中的全域联合指挥控制--一种确定和开发人工智能应用的分析框架》...

本文来源&#xff1a;兵推天下本报告作者研究了美国空军应用人工智能&#xff08;或更广泛的自动化系统&#xff09;进行有计划全域联合指挥控制规划的机会并给出了相关建议。作者发现&#xff0c;要为未来多域战提供支持&#xff0c;必须协调以下三个范畴的内容:1&#xff09;…

实现内、外网同时访问

不少公司的网管试图解决双网卡问题&#xff0c;下面我就给大家详细的讲解一下双网卡同时使用的方法&#xff0c;这样即可保障内网的安全&#xff0c;又能解决电脑访问外网的问题&#xff0c;一举两得。希望大家喜欢。 首先你的机器需要有两块网卡&#xff0c;分别接到两台交换机…

java swing 多个线程,Swing与多线程

1)如果要在图形界面上显示经过数据查询或经过其他方式得来的数据&#xff0c;一般将这个过程放在一个线程中&#xff0c;由该线程进行单独运算&#xff0c;并随时更新图形界面。(2)Swing线程发生死锁的时候&#xff0c;如果是使用命令行的方式运行的该程序&#xff0c;可以使用…

日本面向未来的特定科技领域技术预见分析

作者&#xff1a;王达&#xff0c;中国科协创新战略研究院本文转载自微信公众号科学家&#xff0c;原载于《今日科苑》2020年第5期目前&#xff0c;全球面临的环境、人口变化、资源、粮食和能源安全等问题亟待解决&#xff0c;先进的测量技术与信息处理技术的深度融合可以刺激更…

Prototype模式

原型模式创建对象不调用原对象的构造函数&#xff0c;是直接copy原对象的浅克隆&#xff1a;对值类型的成员变量进行值的复制,对引用类型的成员变量只复制引用,不复制引用的对象.深克隆&#xff1a;对值类型的成员变量进行值的复制,对引用类型的成员变量也进行引用对象的复制. …

oauth2.0 php简化模式,OAuth2.0学习(1-5)授权方式2-简化模式(implicit grant type)

授权方式2-简化模式(implicit grant type)简化模式(implicit grant type)不通过第三方应用程序的服务器&#xff0c;直接在浏览器中向认证服务器申请令牌&#xff0c;跳过了"授权码"这个步骤&#xff0c;因此得名。所有步骤在浏览器中完成&#xff0c;令牌对访问者是…

人与人工的智能区别

来源&#xff1a;人机与认知实验室是非之心&#xff0c;智也! 为什么说这不仅仅是指伦理道德&#xff0c;其实&#xff0c;这涉及到人之智能、智慧的根本&#xff1a;非逻辑推理性的判断! 机器的判断是逻辑推理性的&#xff0c;对环境的适应性自然就弱了一些。作家菲茨杰拉德的…

Swift UISearchController

1.遵守协议 UISearchController 2.变量声明 var sc :UISearchController! 3.viewDidLoad中实现 sc UISearchController(searchResultsController: nil) sc.searchResultsUpdater self sc.dimsBackgroundDuringPresentation false//是否添加半透明覆盖层 self.tableView.tab…

matlab的三维伪彩图,matlab画等高线伪彩图

exp(-x.*x-y.*y); con tour3(z,20); title(三维等值线图); xlabel( X ),ylabel( Y ),zlabel( Z); grid; 4) 打印函数的伪彩色图......MATLAB总结 - 三维图形、等高线_数学_自然科学_专业资料。个人总结的一些...(系) 物电学院 专业班级 电子信息科学与技术 1103 指导教师 蒋媛 …

nginx基本配置与参数说明

#运行用户 user nobody; #启动进程,通常设置成和cpu的数量相等 worker_processes 1;#全局错误日志及PID文件 #error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info;#pid logs/nginx.pid;#工作模式及连接数上限 events {…

AI大觉醒:图灵奖得主Bengio称AI将产生意识,未来机器学习核心是注意力机制

来源&#xff1a;人工智能AI技术人工智能会产生意识吗&#xff1f;这是一直以来美剧《西部世界》中探讨的问题。AI主人公觉醒&#xff0c;意识到这个世界是人类杀伐主宰的乐园&#xff0c;于是开启了逆袭之路。2020年ICLR上&#xff0c;图灵奖得主、蒙特利尔学习算法研究所主任…

php 文件指定位置添加内容,C++_VC++在TXT文件指定位置追加内容的方法,本文实例讲述了VC++操作文本文 - phpStudy...

VC在TXT文件指定位置追加内容的方法本文实例讲述了VC操作文本文件的方法&#xff0c;实现在txt文件指定位置插入内容。对于VC爱好者有一定的学习参考价值。主要功能代码如下&#xff1a;void CGoToFileDlg::OnPaint(){if (IsIconic()){CPaintDC dc(this);SendMessage(WM_ICONER…

人类应鼎力进行探索的35种颠覆性技术

本文转载自“战略前沿技术”&#xff0c;原标题《人类应鼎力进行探索的35种颠覆性技术》人类文明的进步&#xff0c;只要出现难以逾越的障碍&#xff0c;必然给人类的发展带来迷茫和灾难。而解决的路径只有一个&#xff1a;科技探索和创新。只有鼎力进行中的科技探索&#xff0…

【codevs2488】绿豆蛙的归宿

这个题开始正向拓扑排序&#xff0c;然后各种wa&#xff0c;心灰意冷&#xff0c;找了个题解&#xff0c;和同学研究了半天&#xff0c;甚至曾经一度认为题解是错的。 这个题正向反向应该都无所谓&#xff0c;但是我实在是蒻&#xff0c;打了半天正向都没打过去&#xff0c;最后…

php读取某类型文件代码,php代码实现读取文件头判断文件类型

php代码实现读取文件头判断文件类型&#xff0c;支持图片、rar、exe等后缀。案例&#xff1a;//为图片的路径可以用d:/upload/11.jpg等绝对路径$file fopen($filename, "rb");$bin fread($file, 2); //只读2字节fclose($file);$strInfo unpack("C2chars"…

半导体光刻机行业深度报告:复盘ASML,探寻本土光刻产业投资机会

报告来源&#xff1a;西南证券1、 提要&#xff1a;光刻工艺是晶圆制造最核心环节&#xff0c;光刻产业链协同发展成为光刻机突破关键因子1.1 光刻定义晶体管尺寸&#xff0c;光刻工艺合计占芯片成本近 30% 2019 年全球半导体市场规模达 4090 亿美元&#xff0c;成为数码产业的…

C语言的参数传递原理解析(值传递)

本讲我们和大家一起来聊一聊C语言中有关参数传递的一些知识。 1.问题引入 请写出以下程序的打印结果。 #include // 将某整数加10 void add_by_10(int a){ a a 10; } int main(int argc, char *argv[]){ int a 2; add_by_10(a); printf("a %d\n", a); 上面的程序非…

字符串php手册,php知识点复习之字符串

欢迎进入Linux社区论坛&#xff0c;与200万技术人员互动交流 >>进入 /*echo mark qqqqqq\nqqqqqqbrqqqqqqqqqqqqq\rqqqqqqqqqqqqqqqqqq mark*/ //技术标志要另起一行&#xff0c;并且是顶格写&#xff01; //作用跟""类似//最致命的一点是&#xff1a;mark后面…