题目描述 一个n*m的方格,初始时每个格子有一个整数权值。接下来每次有2种操作:改变一个格子的权值;求一个子矩阵中某种特定权值出现的个数。 输入 第一行有两个数n,m。接下来n行,每行m个数,第i+1行第j个数表示格子(i,j)的初始权值。接下来输入一个整数q。接下来q行,每行描述一个操作。操作1: ...
分类:
编程语言 时间:
2018-05-27 13:35:51
阅读次数:
178
题意: 给出一个矩阵,有两种操作: 1.翻转给定的子矩阵; 2.查询a[i][j]的值。 思路: 树状数组是从小到大更新的。 这个题用二维树状数组可以解决,假设是一维树状数组, 0 0 0 0 0 0 我们把第三个到第四个翻转,变成 0 0 1 1 -1 0 sum[1] = 0,sum[2] = ...
分类:
其他好文 时间:
2018-05-23 02:02:21
阅读次数:
174
这里有一个n*m的矩阵,请你选出其中k个子矩阵,使得这个k个子矩阵分值之和最大。注意:选出的k个子矩阵不能相互重叠。 题解:m很小分类讨论,m==1时怎么搞都可以,m==2时,dp[i][j][k]表示第一列枚举到i,第二列枚举到j,花了k次操作的最大子矩阵和,然后转移有三种一种是只转移i,一种是只 ...
分类:
其他好文 时间:
2018-05-22 20:42:15
阅读次数:
151
Description 这里有一个n*m的矩阵,请你选出其中k个子矩阵,使得这个k个子矩阵分值之和最大。注意:选出的k个子矩阵不能相互重叠。 这里有一个n*m的矩阵,请你选出其中k个子矩阵,使得这个k个子矩阵分值之和最大。注意:选出的k个子矩阵不能相互重叠。 Input 第一行为n,m,k(1≤n≤ ...
分类:
其他好文 时间:
2018-05-15 14:03:14
阅读次数:
131
https://zybuluo.com/ysner/note/1144701 题面 给出一个$n×m$的矩阵。请在其中选择$3$个互不相交的,大小恰为$k×k$ 的子矩阵,使得子矩阵的权值和最大。 $n\leq1500,m\leq1500$ 解析 这题和[CJOJ2501][1]很像呢。。。 看到题 ...
1 #include <iostream> 2 #include <cstring> 3 using namespace std; 4 int dp[600][600]; 5 long long a[600]; 6 7 int main() 8 { 9 int n,m; 10 cin>>m>>n; ...
分类:
其他好文 时间:
2018-05-12 02:37:15
阅读次数:
147
题目描述 回到家中的猫猫把三桶鱼全部转移到了她那长方形大池子中,然后开始思考:到底要以何种方法吃鱼呢(猫猫就是这么可爱,吃鱼也要想好吃法 ^_*)。她发现,把大池子视为01矩阵(0表示对应位置无鱼,1表示对应位置有鱼)有助于决定吃鱼策略。 在代表池子的01矩阵中,有很多的正方形子矩阵,如果某个正方形 ...
分类:
其他好文 时间:
2018-05-09 22:34:30
阅读次数:
191
题面 传送门:https://www.luogu.org/problemnew/show/P4147 Solution 裸的求极大子矩阵 感谢wzj dalao的教学 首先,有一个很显然但很重要的结论,那就是求极大子矩阵肯定要贴着边或一个障碍点,否则就会浪费 根据这个定理,我们可以考虑一种做法 我们 ...
分类:
其他好文 时间:
2018-05-09 14:34:33
阅读次数:
124
题目大意 给一个初始全0的矩阵,操作1为将(i,j)处的元素加上k 操作2为输出子矩阵(a,b)(c,d)的所有元素和 操作3为结束程序 二维树状数组模板 唯一要注意的是题目中从0开始标号,所以要将所有的坐标都加1再进行操作 ...
分类:
编程语言 时间:
2018-05-06 14:52:25
阅读次数:
113
当矩阵尺寸过大时,数据的大小将超过缓存的大小,这是容易出现满不命中现象。 将矩阵进行分块可以解决这个问题,以下是完整的矩阵乘法代码: 分析思路: 1. 矩阵分块前后的乘法计算总数恒定不变,分块前是n^3 。 2. 现将矩阵按mxm进行分块,整个矩阵被分成n^2/m^2 个子矩阵,乘法计算总是 (n^ ...
分类:
其他好文 时间:
2018-05-06 11:08:43
阅读次数:
238