
awcing
文章平均质量分 57
diviner_s
数据科学与大数据技术专业,大三本科在读
展开
-
Flood Fill算法|图论|连通块
Flood FillFlood Fill算法(中文名字:洪水灌溉算法),主要针对网格图算,求连通块。我们采取两种方法:BFS(宽搜)和DFS(深搜),BFS往往用来求最短路径,DFS更方便解决floodfill问题。acwing 1113. 红与黑有一间长方形的房子,地上铺了红色、黑色两种颜色的正方形瓷砖。你站在其中一块黑色的瓷砖上,只能向相邻(上下左右四个方向)的黑色瓷砖移动。请写一个程序,计算你总共能够到达多少块黑色的瓷砖。输入格式输入包括多个数据集合。每个数据集合的第一行是两个整数原创 2021-01-13 22:00:12 · 813 阅读 · 0 评论 -
运用数学思想解释前缀和的逆运算——差分、差分矩阵
运用数学思想解释差分与前缀和的关系学习差分前先需要回顾下前缀和的概念及其定义: 点这里看前缀和概念我们已知前缀和的代码的实现:s[ i ] = s[ i - 1] + a[ i ];(式子1)即数组S存的是数组a的前 i 项和;这个相信很好理解,但是说到差分的定义则容易混淆;为什么说差分是前缀和的逆运算呢?我们看下差分定义:差分即相邻两个数的差。我们直接按照其定义字面意思能写下:s[ i ] = a[i] - a[i-1];(式子2)即用数组S记录下数组a的每个相邻的数之间的差。我们观察这原创 2020-07-15 00:37:57 · 672 阅读 · 0 评论 -
一维前缀和求区间和、二维前缀和求子矩阵之和
一维前缀和前缀和即是将一个数组a前每项 i 的前 i 项和分别对应存放在数组s中,即:s[i] = s[i - 1] + a[ i ];根据定义我们能够更容易地求出区间和 ,例求数组a的[ l , r ]之间的和,若按正常情况下我们需要一次遍历for(int i = l; i <= r; i++)sum += a[i] 这种时间复杂度为O(n),若题中的给出的区间范围很大,时间效率较低。若用前缀和去求区间和,sum[l , r] = s[r] - s[l - 1] 能够达到 预处理为O(n),询问原创 2020-07-14 22:51:15 · 965 阅读 · 0 评论 -
归并排序解决逆序对数问题
给定一个长度为n的整数数列,请你计算数列中的逆序对的数量。逆序对的定义如下:对于数列的第 i 个和第 j 个元素,如果满足 i < j 且 a[i] > a[j],则其为一个逆序对;否则不是。输入格式第一行包含整数n,表示数列的长度。第二行包含 n 个整数,表示整个数列。输出格式输出一个整数,表示逆序对的个数。数据范围1≤n≤100000输入样例:62 3 4 5 6 1输出样例:5C++代码如下:#include<iostream>using n原创 2020-07-13 15:00:45 · 339 阅读 · 0 评论