CF1303F 题解
题意
有一个 \(n\times m\) 的矩阵,初始全是 \(0\)。我们定义 \(a_{i,j}\) 表示矩阵中第 \(i\) 行第 \(j\) 列的元素。
如果两个格子有相邻边并且格子中的元素相同,我们就说它们是联通的。联通关系可以传递,也就是说整个矩阵被分成了若干个联通块。
你需要处理 \(q\) 次修改操作,第 \(i\) 次操作包含三个整数 \(x_i,y_i,c_i\),表示将 \(a_{x_i,y_i}\) 替换为 \(c_i\)。每次修改结束后你需要求出这个矩阵当前有多少连通块。
\(1\le n,m\le 300,1\le q\le 2\times 10^6,1\le c_i\le \max(1000,\lceil\frac{2\times 10^6}{nm}\rceil),c_i\le c_{i+1}(i\in [1,q-1])\)
题解
动态图连通性板题,于是做完了
我们将一次修改操作(将 \(a_{x,y}\) 从 \(z\) 改为 \(w\))分为两步考虑:在\(w\) 的导出子图中加入 \(a_{x,y}\),在 \(z\) 的导出子图中删除 \(a_{x,y}\)。加入操作可以用并查集,但删除操作不好处理。但由于此题的特殊性质,\(z\) 一定小于 \(w\)(这里不考虑相等的情况)。我们考虑规避删除。
逆着做一遍。那么就是将 \(w\) 改为 \(z\)。此时,在 \(z\) 的导出子图中加入 \(a_{x,y}\) 增加的连通块个数与 上段操作中在 \(z\) 的导出子图中删除 \(a_{x,y}\) 增加的连通块个数互为相反数。正确性易证。于是此题得解。
CF1303F 题解的更多相关文章
- 2016 华南师大ACM校赛 SCNUCPC 非官方题解
我要举报本次校赛出题人的消极出题!!! 官方题解请戳:http://3.scnuacm2015.sinaapp.com/?p=89(其实就是一堆代码没有题解) A. 树链剖分数据结构板题 题目大意:我 ...
- noip2016十连测题解
以下代码为了阅读方便,省去以下头文件: #include <iostream> #include <stdio.h> #include <math.h> #incl ...
- BZOJ-2561-最小生成树 题解(最小割)
2561: 最小生成树(题解) Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 1628 Solved: 786 传送门:http://www.lyd ...
- Codeforces Round #353 (Div. 2) ABCDE 题解 python
Problems # Name A Infinite Sequence standard input/output 1 s, 256 MB x3509 B Restoring P ...
- 哈尔滨理工大学ACM全国邀请赛(网络同步赛)题解
题目链接 提交连接:http://acm-software.hrbust.edu.cn/problemset.php?page=5 1470-1482 只做出来四道比较水的题目,还需要加强中等题的训练 ...
- 2016ACM青岛区域赛题解
A.Relic Discovery_hdu5982 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Jav ...
- poj1399 hoj1037 Direct Visibility 题解 (宽搜)
http://poj.org/problem?id=1399 http://acm.hit.edu.cn/hoj/problem/view?id=1037 题意: 在一个最多200*200的minec ...
- 网络流n题 题解
学会了网络流,就经常闲的没事儿刷网络流--于是乎来一发题解. 1. COGS2093 花园的守护之神 题意:给定一个带权无向图,问至少删除多少条边才能使得s-t最短路的长度变长. 用Dijkstra或 ...
- CF100965C题解..
求方程 \[ \begin{array}\\ \sum_{i=1}^n x_i & \equiv & a_1 \pmod{p} \\ \sum_{i=1}^n x_i^2 & ...
- JSOI2016R3 瞎BB题解
题意请看absi大爷的blog http://absi2011.is-programmer.com/posts/200920.html http://absi2011.is-programmer.co ...
随机推荐
- 第三篇:前端基础之JavaScript
前端基础之JavaScript JavaScript概述 ECMAScript和JavaScript的关系 1996年11月,JavaScript的创造者--Netscape公司,决定将JavaS ...
- pickle兼容问题
1 import pickle 2 3 with open('a.pkl',mode='wb') as f: 4 # 一:在python3中执行的序列化操作如何兼容python2 5 # python ...
- nuxt.js实现页面刷新功能
key 属性Key:String 或者Function key属性赋值到<router-view>,这对于在动态页面和不同路径中进行转换很有用.不同的key会使页面组件重新渲染. 设置ke ...
- XCTF分站赛ACTF——Crypto
impossible RSA: 没啥好说的,跟我之前文章有道题类似,虽然如此还是花费了很长时间,原因令人落泪,把q = inverse(e,p)的数学式写成了eq mod p导致数学式推导及其困难(能 ...
- [python] 基于matplotlib实现雷达图的绘制
雷达图(也称为蜘蛛图或星形图)是一种可视化视图,用于使用一致的比例尺显示三个或更多维度上的多元数据.并非每个人都是雷达图的忠实拥护者,但我认为雷达图能够以视觉上吸引人的方式比较不同类别各个特征的值.本 ...
- [python] python模块graphviz使用入门
文章目录 1 安装 2 快速入门 2.1 基本用法 2.2 输出图像格式 2.3 图像style设置 2.4 属性 2.5 子图和聚类 3 实例 4 如何进一步使用python graphviz Gr ...
- 用 Python 脚本实现电脑唤醒后自动拍照 截屏并发邮件通知
背景 背景是这样的, 我的家里台式机常年 休眠, 并配置了 Wake On Lan (WOL) 方便远程唤醒并使用. 但是我发现, 偶尔台式机会被其他情况唤醒, 这时候我并不知道, 结果白白运行了好几 ...
- ionic+vue+capacitor系列笔记--手机从安卓10升级到安卓11以后,之前的代码不管用了,无法跳转其他应用
之前手机是安卓10版本,没什么问题,升级以后,手机出现了一些异常,发现原来代码里写的跳转功能,无法使用了哦~~脑壳痛 解决方案 本项目:build.gradle targetSdkVersion 30 ...
- VMware vSphere vCenter ServerAppliance 7.0安装配置
VMware vSphere vCenter ServerAppliance 7.0安装配置 环境说明: 1.将vCenter ServerAppliance部署在ESXi主机上,安装配置好ESXi主 ...
- Apache 2.4 的下载与安装
1. 登录Apache官网 http://httpd.apache.org/download.cgi 2. 点击 Files for Microsoft Windows 3. 点击 ApacheHau ...