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 ...
随机推荐
- 远程登录到Linux服务器
首先我们下载一个xshell,下载地址:https://www.xshell.com/zh/ 下载安装打开xshell 按快捷键alt + n进入新建窗口,输入自己的主机名,名称,说明等 双击点击左边 ...
- 【Dubbo3 终极特性】「云原生三中心架构」带你探索 Dubbo3 体系下的配置中心和元数据中心、注册中心的原理及开发实战(中)
承接上文 通过之前的[Dubbo3终极特性]「云原生三中心架构」带你探索 Dubbo3 体系下的配置中心和元数据中心.注册中心的原理及开发实战(上),让我们对Dubbo3的三中心架构体系有了一定的认识 ...
- 再讲Floyd变形:传递闭包类问题
题目 今天上课老师讲到一道传递闭包的问题,由于蒟蒻之前讲的不详细再来讲一遍. 传送门 思路 建图,注意是有向图. 能确定名次指的是:在图上由这个点可以到达的点数+在图上可以到达这个点的点数=n-1 对 ...
- angular组件共用服务打印日志父子组件传值2创建服务注入
- 详解 Gulp4 和 Gulp3 的区别
最近在开发几个网站,为了优化一下前端代码,就复习一下gulpjs,之前工作gulp用的版本比较老,但是今天看了新的版本,新的语法出了一下,但是为了时间,我决定使用之前gulp3的旧版本,后面发现自己环 ...
- 微机原理与系统设计笔记3 | 8086cpu指令系统
打算整理汇编语言与接口微机这方面的学习记录.本部分介绍8086的指令系统(一些与程序设计密切相关的如子程序调用指令放在下一部分). 参考资料 西电<微机原理与系统设计>周佳社 西交< ...
- 移动 WEB 开发布局方式 ---- rem 适配布局
一.rem 基础 1. rem 单位 em : 相对于父元素的字体大小来说的 <div> <p></p> </div> div { font-size: ...
- Android IO 框架 Okio 的实现原理,如何检测超时?
本文已收录到 AndroidFamily,技术和职场问题,请关注公众号 [彭旭锐] 提问. 前言 大家好,我是小彭. 在上一篇文章里,我们聊到了 Square 开源的 I/O 框架 Okio 的三个 ...
- 记录一次前端hack尝试
背景 playcode很好用,但是给的免费时间很短,于是想hack他 hack的步骤全部来源于bilibili视频:https://www.bilibili.com/video/BV1N3411v7C ...
- Linux06-常用命令 日期 日历 查找 过滤
1.date 日期 2.cal 日历 3.find 查找 4.locate 查找 5.grep 过滤 1.时间日期类 date指令-显示当前日期 1)指令: date (功能描述:显示当前时间) ...