题意

传送门

有一个 \(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 题解的更多相关文章

  1. 2016 华南师大ACM校赛 SCNUCPC 非官方题解

    我要举报本次校赛出题人的消极出题!!! 官方题解请戳:http://3.scnuacm2015.sinaapp.com/?p=89(其实就是一堆代码没有题解) A. 树链剖分数据结构板题 题目大意:我 ...

  2. noip2016十连测题解

    以下代码为了阅读方便,省去以下头文件: #include <iostream> #include <stdio.h> #include <math.h> #incl ...

  3. BZOJ-2561-最小生成树 题解(最小割)

    2561: 最小生成树(题解) Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 1628  Solved: 786 传送门:http://www.lyd ...

  4. Codeforces Round #353 (Div. 2) ABCDE 题解 python

    Problems     # Name     A Infinite Sequence standard input/output 1 s, 256 MB    x3509 B Restoring P ...

  5. 哈尔滨理工大学ACM全国邀请赛(网络同步赛)题解

    题目链接 提交连接:http://acm-software.hrbust.edu.cn/problemset.php?page=5 1470-1482 只做出来四道比较水的题目,还需要加强中等题的训练 ...

  6. 2016ACM青岛区域赛题解

    A.Relic Discovery_hdu5982 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Jav ...

  7. poj1399 hoj1037 Direct Visibility 题解 (宽搜)

    http://poj.org/problem?id=1399 http://acm.hit.edu.cn/hoj/problem/view?id=1037 题意: 在一个最多200*200的minec ...

  8. 网络流n题 题解

    学会了网络流,就经常闲的没事儿刷网络流--于是乎来一发题解. 1. COGS2093 花园的守护之神 题意:给定一个带权无向图,问至少删除多少条边才能使得s-t最短路的长度变长. 用Dijkstra或 ...

  9. CF100965C题解..

    求方程 \[ \begin{array}\\ \sum_{i=1}^n x_i & \equiv & a_1 \pmod{p} \\ \sum_{i=1}^n x_i^2 & ...

  10. JSOI2016R3 瞎BB题解

    题意请看absi大爷的blog http://absi2011.is-programmer.com/posts/200920.html http://absi2011.is-programmer.co ...

随机推荐

  1. Android录屏实现

    使用方案: mediacodec + mediaprojection + mediamuxer MediaProjectionManager主要作用是获得录屏权限 startActivityForRe ...

  2. 使用插件式开发称重仪表驱动,RS232串口对接各类地磅秤数据实现ERP管理

    在ERP系统中,采集一线的生产数据是重要工作之一,而称重计量是企业的核心资产数据,人工计重费时费力,还容易出错,重量数据是否正确,直接影响企业的采购或销售额.基于此,由系统对接电子秤实现自动抓取数据是 ...

  3. css、js 缓存清除

    此种方式完美达到了清除缓存的效果 css引入标签可在一个引号内完成,js引入标签由于解析原因需要将两个标签拆开再组 使用:按照此格式,放在原 <link /> 或 <script&g ...

  4. Redux与前端表格施展“组合拳”,实现大屏展示应用的交互增强

    Redux 是 JavaScript 状态容器,提供可预测化的状态管理.它可以用在 react.angular.vue 等项目中, 但与 react 配合使用更加方便一些. Redux 原理图如下,可 ...

  5. 一个关于sum over的疑问

    参考: http://www.cnblogs.com/lanzi/archive/2010/10/26/1861338.html select * from bitest.tmp_0222_zym ; ...

  6. prettier+ts+eslint+vscode配置代码保存自动格式化,自动remove unsed declaration,delete no-unused-imports

    每天都要开心(▽)哇: 以这个项目为案例 下面是项目的基本情况 What would you like to build? › App with Quasar CLI, let's go! Proje ...

  7. vue中 beforeRouteLeave 生命周期函数

    beforeRouteLeave需求描述在使用 element-UI的table 的时候,有这么一个需求.从一个页面切换到另一个页面,再切回来的时候,滚动条的位置不变. 需求:滚动浏览列表页,出现滚动 ...

  8. k210 cpu、asm、rust、smpboot、ipi

    介绍 k210的datasheet主要讲了与外设相关的内容,k210并不支持最新的完整的riscv指令集,而是实现了一部分.本文想要通过汇编来一点点摸索k210的寄存器,布局,mmu,缓存等结构 相关 ...

  9. vue3 ts遇到的问题

    main.ts中的 createApp(App),只作用于一个,如果,有两个,则并不是一个对象,另一个会不生效

  10. javaEE(多线程、线程通信、线程安全、线程池、线程池工具)

    多线程 多线程的创建 Thread类的方法 线程安全.线程同步 线程通信.线程池 定时器.线程状态.. Thread类 java是通过java.lang.Thread类来代表线程的 按照面向对象的思想 ...