C - Nuske vs Phantom Thnook

题意:n*m矩阵,n,m<=2e3,矩阵中的1能走到相邻4个1上,0代表障碍,若两个1联通 则只有一条路径 
q个询问,q<=2e5,每次询问一个子矩阵中有多少个连通分量?

同一个连通分量中任意两点只有一条路径,于是对相邻的每个1连接一条边,每一个连通分量显然都为一颗树
若子矩形有k个联通分量,因为每个联通分量都为树,则子矩形中点数-边数等于k 利用二维前缀和求出子矩形1的个数(点)和相邻1(边)个数即可 复杂度O(mn+q)

时间: 2024-11-05 22:05:11

C - Nuske vs Phantom Thnook的相关文章

Nuske vs Phantom Thnook

Nuske vs Phantom Thnook Time limit : 4sec / Memory limit : 256MB Score : 700 points Problem Statement Nuske has a grid with N rows and M columns of squares. The rows are numbered 1 through N from top to bottom, and the columns are numbered 1 through 

AtCoder Nuske vs Phantom Thnook AtCoder

题解 树有什么性质? 如果每个蓝色连通块都是树,那么连通块个数=总点数?总 边数. 二维前缀和维护点数和边数. \(O(nm + q)\) 代码 #include <cstdio> #include <iostream> #include <algorithm> #define N 2010 using namespace std; int n,m,q; int a[N][N]; int b[N][N],c[N][N]; char s[7007]; inline int

前缀和,二维前缀和!

前缀和 定义 用空间换取效率,做一个预处理,然后可以\(O(1)\)的查询某个区间的值的和. 实现 设\(s_i\)为第\(i\)个数\(a_i\)的前缀和,则\(s_i=s_i-1+a_i\) 当要查找区间的和时只要把对应的起点终点的元素相减即可. 例题 Educational Codeforces Round 30B Balanced Substring 翻译 给你一个长度至多为\(100000\)的\(01\)串,其中含有相同\(0\),\(1\)个数的子串被称为"平衡串",问你

AtCoder Grand Contest 015 题解

A - A+...+B Problem 可以取到的值一定是一段区间.所以答案即为max-min+1 1 //waz 2 #include <bits/stdc++.h> 3 4 using namespace std; 5 6 #define mp make_pair 7 #define pb push_back 8 #define fi first 9 #define se second 10 #define ALL(x) (x).begin(), (x).end() 11 #define

nodejs phantom add click event

page.evaluate( function() { // find element to send click to var element = document.querySelector( 'span.control.critical.closer' ); // create a mouse click event var event = document.createEvent( 'MouseEvents' ); event.initMouseEvent( 'click', true,

强(strong)、软(soft)、弱(weak)、虚(phantom)引用

https://github.com/Androooid/treasure/blob/master/source/lightsky/posts/mat_usage.md 1.1 GC Root JAVA虚拟机通过可达性(Reachability)来判断对象是否存活,基本思想:以"GC Roots"的对象作为起始点向下搜索,搜索形成的路径称为引用链,当一个对象到GC Roots没有任何引用链相连(即不可达的),则该对象被判定为可以被回收的对象,反之不能被回收. GC Roots可以是以下

暑假NOIP期末考试【1】—— Phantom

Phantom ?题目名称: phantom ?时间限制:1 秒 ?空间限制:256 MiB 题目描述 在一个无限大的棋盘上,排列着 n * n 枚棋子,形成一个 n 行 n 列的方阵.棋子可以横向或者纵向移动,移动方式是越过一个相邻的棋子,落入同一方向上的下一个空闲的格子里,同时,移除被越过的棋子.现在,我们想知道,是否有可能通过若干次操作,使得棋盘上仅剩一枚棋子. 例如,当 n = 2 时,有如下操作方法: -. -. -. -. .OO. => -O => -O => -. .OO

Phantom omini设备开发流程

最近在忙着做毕业设计,我的毕业设计是做力觉临场感的,所以在力反馈设备Phantom Omini,由于整个设备是国外的国内的资料很少,我是14年拿到这个设备的但是真的是在开发是在16年了,中间有很多事没来得及进行,现在我把我的一个开发流程记录一下,也算是给后面需要使用这个设备的开发人员留下一点资料. 力反馈设备Phantom Omini可以称之为六自由度机械臂,他有六个关节,其中三个关节有电机所以可以提供一个力觉的反馈,它的开发SDK提供了很多的例程,基本上都可以使用,在使用SDK时要注意配置好各

DJI IOS开发之三:Step By Step搭建基于DJI Phantom和iOS的计算机视觉及UAV控制开发平台

1 前言 在这之前,世界上有很多研究团队花了大量时间自己造四轴,自己开发硬件,才终于可以研究空中机器人的飞行控制,视觉等方面的问题,了不起在几年前用AR Drone来做.但我们知道AR Drone飞行范围太小,摄像头也很不稳定,因此用AR Drone来做研究有很大的局限性. 现在好了,使用DJI的飞行器,我们轻而易举的拥有了一个非常棒的研究平台,去研究最前沿的问题,或者说最值得去研究的问题,那就是 计算机视觉+机器学习+机器人控制 .把这三个领域结合起来会产生什么令人兴奋的东西呢? 说了一些废话