【zzuli-2259】matrix】的更多相关文章

题目背景 SOURCE:NOIP2016-RZZ-1 题目描述 给出两个 N×N 的矩阵 A.B,矩阵每行每列标号 0-N-1 .定义这两个矩阵的乘积 AB 为…
[题目链接] 点击打开链接 [算法] 要求 A^1 + A^2 + A^3 + ... + A^k 考虑通过二分来计算这个式子 : 令f(k) = A^1 + A^2 + A ^ 3 + ... + A^k 那么,当k为奇数时,f(k) = f(k-1) + A ^ k 当k为偶数时,f(k) = f(n/2) + A ^ (n/2) * f(n/2) 因此,可以通过二分 + 矩阵乘法快速幂的方式,在O(n^3log(n)^2)的时间内解决此题 [代码] #include <algorithm>…
[题目链接] http://poj.org/problem?id=2259 [算法] 由题,一个人入队时,若这个人所在的组已经有人在队列中,则加入队列,否则排到队末 因此我们发现,这个队列一定是由连续的一组人的若干段组成,不妨用一个队列记录每组人的顺序,再分别将每组建一个队列 维护这(n+1)个队列即可,具体细节,笔者不再赘述 [代码] #include <algorithm> #include <bitset> #include <cctype> #include &…
[题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=2351 [算法] 哈希 [代码] #include<bits/stdc++.h> using namespace std; #define MAXN 1010 typedef unsigned long long ull; ; ; ; int i,j,m,n,a,b,q; ull sum[MAXN][MAXN]; ull power1[MAXN],power2[MAXN]; ull…
[链接] 我是链接,点我呀:) [题意] 让你求出b[i][j]=s[i]*s[j]规则构成的矩阵 的所有子矩阵中子矩阵的和为a的子矩阵的个数 [题解] (x,y,z,t) 会发现它的和就是sum(x,y)sum(z,t) sum(x,y)=a[x]+a[x+1]+...+a[y] 因为这个子矩阵的和就是 a[x][z]+a[x][z+1]+...+a[x][t] + a[x+1][z] + a[x+1][z+1]....+a[x+1][t] .... 而a[i][j] = a[i]a[j] 下…
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 找个规律会发现 M[i][j] = M[i-2*L][j] = M[i][j-2*L] 先预处理出来(1,1)-(2L,2L)这个矩阵以及他的二维前缀和 那么对于要求的(x0,y0)-(x1,y1)这个矩阵. 可以用若干个(1,1)-(x,y)这样的前缀矩阵通过加加减减算出来. 对于(1,1)-(x,y)这样的矩阵. 显然是由若干个(1,1)-(2L,2L)矩阵合并而成的(x/L)*(y/L)个. 多余的部分(下边,右下角以及右…
题目链接 二维\(Hash\)类似二维前缀和,每一行看成一个\(h\)进制数,每一个以(1,1)为左上角的矩阵看成一个由每一行的\(Hash\)值组成的\(l\)进制数. 然后自己推推柿子就行. #include <cstdio> #include <cstring> #include <map> using namespace std; #define Open(s) freopen(s".in","r",stdin); fre…
Matrix Descriptions 有一个N阶方阵 第i行,j列的值Aij =i2 + 100000 × i + j2 - 100000 × j + i × j,需要找出这个方阵的第M小值. Input 第一行输入T代表测试组数.每个测试用例包含2个数字N,M表示在N阶方阵找出第M大值, N(1 ≤ N ≤ 50,000) and M(1 ≤ M≤ N × N). 每两个测试用例之间可能有空行 Output 输出方阵的第M小值 Sample Input 12 1 1 2 1 2 2 2 3…
-->Matrix Descriptions: 输入一个n×n的矩阵,可以对矩阵的每行进行任意次的循环右移操作,行的每一次右移后,计算矩阵中每一列的和的最大值,输出这些最大值中的最小值. Sample Input 2 4 6 3 7 3 1 2 3 4 5 6 7 8 9 -1 Sample Output 11 15 题目链接 https://vjudge.net/problem/POJ-2078 使用dfs解决,对于n×n的矩阵来说,行循环右移后,矩阵最多有n^n中可能的状态,在这题中最多有7…
题意:有一个N行M列的正整数矩阵,输入N个前1~N行所有元素之和,以及M个前1~M列所有元素之和.要求找一个满足这些条件,并且矩阵中的元素都是1~20之间的正整数的矩阵.输入保证有解,而且1≤N,M≤20. 解法:这题的图转换得极妙!(*^▽^*)   我们可以发现找到的矩阵需要满足3个条件:1.N行M列:2.各行各列的和:3.各元素的大小.再仔细阅读一次题目,发现题目中提到的2个数字相同--"20",再想想这是不是有什么玄机.     首先可以找到第3个条件的转化,可以用容量来限制,…