AGC027 D - Modulo Matrix 构造】的更多相关文章

目录 题目链接 题解 代码 题目链接 AGC027 D - Modulo Matrix 题解 从第左上角第一个点开始染色,相邻不同色,染法唯一 那么一个点的四周与他不同色,我们另这个点比四周都大,那么这个点权值可以使lcm(四周的点权值)+1 于是我们就得到了一种构造方案,染色后对一种颜色的点进行赋值,然后另一种颜色的点取lcm 可是....直接这样瞎构造会爆掉1e15 对于一种染色点,可以按照i + j和i - j分为两类,每一类乘上一个相同的质数 对于当前格子的价值就是从左上角到右下角,和从…
原文链接https://www.cnblogs.com/zhouzhendong/p/AGC027C.html 题解 首先我们假装 max mod min = 1 然后对着这个构造. 将各自黑白染色,将所有黑色格子都放不同的质数,白色格子的数为他周围的黑格子的LCM + 1,这样显然是合法的. 但是数字太大了. 稍稍升级一下构造方法. 先假设所有黑格子都是 1. 对于每一个 ' \ ' 形斜列,我们让同一列的乘上一个相同的质数. 对于每一个 ' / ' 形的类似. 这样我们白格子的值就是四个小质…
题目链接 \(Description\) 给定\(n\),要求构造一个\(n\times n\)的矩阵,矩阵内的元素两两不同,且任意相邻的两个元素\(x,y\),满足\(\max(x,y)\ \mathbb{mod}\ \min(x,y)\)等于一个非零常数. \(n\leq500,\ 1\leq 矩阵中的元素\leq10^{15}\). \(Solution\) https://blog.csdn.net/Tiw_Air_Op1721/article/details/82719507 orz!…
题意 题目链接 构造一个\(n * n\)的矩阵,要求任意相邻的两个数\(a,b\),使得\(max(a,b) \% min(a,b) \not = 0\) Sol 我的思路: 假设\(mod = 1\),那么可以在第一行放2 3 4 5 \(\dots\),第一列同理也这样放 对于任意位置\(i\),一定满足要求的一个数是a[i - 1][j] * a[i][j - 1] / __gcd(a[i - 1][j], a[i][j - 1]) + 1 然而最后的数大到上天啊... 标算挺巧妙的,首…
「AGC027D」Modulo Matrix 传送门 神仙构造题. 首先考虑一个非常自然的思路,我们把棋盘黑白染色后会变成一个二分图,黑色棋子只会与白色棋子相邻. 也就是说,我们可以将二分图的一部随便填数,另一部分填上黑色数的乘积加上某个余数即可. 需要注意随便填数的一部的所有数必须大于这个选择的余数. 然后你发现过不了,这样的数的大小期望最大值大概是 \((\frac{n^2}{2})^4\). 然后我们可以考虑给每一个对角线(每一行.每一列应该也行?)设一个权值 \(x\),然后随便填数的部…
http://acm.hdu.edu.cn/showproblem.php?pid=5015 由于是个二维的递推式,当时没有想到能够这样构造矩阵.从列上看,当前这一列都是由前一列递推得到.依据这一点来构造矩阵.令b[i]代表第i列,是一个(n+2)*1的矩阵,即b[1] = [1,233......],之所以在加了两行,是要从前一个矩阵b[i-1]得到b[i]中的第二个数2333...,再构造一个转换矩阵a,它是一个(n+2)*(n+2)的矩阵,那么a^(m-1) * b就是第m列. /* a矩…
D. Vasya And The Matrix time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output Now Vasya is taking an exam in mathematics. In order to get a good mark, Vasya needs to guess the matrix that the te…
题目大意:意思就是让求A(A是矩阵)+A2+A3+A4+A5+A6+······+AK,其中矩阵范围n<=40,k<=1000000. 解题思路:由于k的取值范围很大,所以很自然地想到了二分法,用递归逐步将k二分(公式:A+A2+A3+A4+A5+A6 = A+A2+A3 + A3(A+A2+A3)), 这种方法只需要注意k是奇数的情况就可以了. 最坑的是第二种方法,根据矩阵的性质可以构造出来一个子矩阵,假如有矩阵B=|A  E| ,那么BK =|AK   E+ A+A2+A3+A4+A5+A…
CF486B 一道有趣的思维题 由于or的性质可知只要a[i][j]为1那么b中第i行,第j列将都变成1 相反的,如果b[i][j]是0那么a中第i行,第j列都必须是0 根据第二个性质我们可以构造出a矩阵 但b能否由a反向得到呢? 由于or的唯一性,模拟匹配即可,注意代码效率 #include <bits/stdc++.h> using namespace std; int n,m,a[105][105],b[105][105],h[105],z[105],ah[105],az[105]; s…
对网格图黑白染色,在黑色格中填不同的质数,白色格中填相邻黑色格的lcm+1,但这样会超过1e15的上限将网格图划分为两类对角线,每一条对角线选一个质数,然后每一个点就是两条对角线的质数相乘,而白格的值就仅为四个较小质数的乘积+1(注意不能让两个大质数配到一起) 1 #include<bits/stdc++.h> 2 using namespace std; 3 #define ll long long 4 map<int,int>mat; 5 int n,p[10005],vis[…
A - Candy Distribution Again 大意:有x个糖给n个小朋友,必须分完,小朋友得到糖数为一个确切值的时候小朋友会开心,求最多的开心数 题解 直接排序然后贪心分,如果分到最后一个有剩余那么开心数-1即可 代码 #include <bits/stdc++.h> #define fi first #define se second #define pii pair<int,int> #define mp make_pair #define pb push_back…
目录 The Tom and Jerry Game! Operations on a Tuple The Delicious Cake Convenient Airports Guessing Game Danya and Different Values Perfect Partitions Even Matrix The Tom and Jerry Game! 模拟. code Operations on a Tuple 特判. code The Delicious Cake 凸包模板. c…
Description Given a n × n matrix A and a positive integer k, find the sum S = A + A2 + A3 + … + Ak. Input The input contains exactly one test case. The first line of input contains three positive integers n (n ≤ 30), k (k ≤ 109) and m (m < 104). Then…
矩阵的又一个新使用方法,构造矩阵进行高速幂. 比方拿 nyoj299 Matrix Power Series 来说 给出这样一个递推式: S = A + A2 + A3 + - + Ak. 让你求s.A是一个矩阵,而k很大. 怎么办呢? 推理发现:Fn = A + A*F(n-1) 然后我们能够构造矩阵: (Fn .1 ) =  (Fn-1 ,1) * (A.0. A,1) = (F1 , 1) * (A,0. A,1)^K-1 那么我们就能够用一个矩阵高速幂了. 以下是模板题目的代码: #in…
题意:求A + A^2 + A^3 + ... + A^m. 析:主要是两种方式,第一种是倍增法,把A + A^2 + A^3 + ... + A^m,拆成两部分,一部分是(E + A^(m/2))(A + A^2 + A^3 + ... + A^(m/2)),然后依次计算下去,就可以分解,logn的复杂度分解,注意要分奇偶. 另一种是直接构造矩阵,,然后就可以用辞阵快速幂计算了,注意要用分块矩阵的乘法. 代码如下: 倍增法: #pragma comment(linker, "/STACK:10…
D. Vasya And The Matrix time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output Now Vasya is taking an exam in mathematics. In order to get a good mark, Vasya needs to guess the matrix that the te…
Parentheses Matrix Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others)Total Submission(s): 0    Accepted Submission(s): 0Special Judge Problem Description A parentheses matrix is a matrix where every element is eithe…
Now Vasya is taking an exam in mathematics. In order to get a good mark, Vasya needs to guess the matrix that the teacher has constructed! Vasya knows that the matrix consists of n rows and m columns. For each row, he knows the xor (bitwise excluding…
D. Nash Matrix time limit per test2 seconds memory limit per test256 megabytes inputstandard input outputstandard output Nash designed an interesting yet simple board game where a player is simply required to follow instructions written on the cell w…
怎么构造呢? \(首先我们不可能去构造一个2000*2000的矩阵,那太复杂了\) \(也许我们可以看看2*2的矩阵??\) \[\left[ \begin{matrix} x&y\\ z&q\\ \end{matrix} \right] \] \(但是在这个矩阵中,小明的算法不可能出错.因为到达y和z的值固定,取个最大值一定是对的.\) \(那就2*3的矩阵\) \[\left[ \begin{matrix} x&y&z\\ q&w&e \end{matr…
LINK:I hate Matrix Construction 心情如题目名称. 主要说明一下构造的正确性. 准确来说这道题困扰我很久. 容易发现可以拆位构造. 这样题目中的条件也比较容易使用. 最后等价于每一行每一列有一个 当前行/列有一个1或者0的限制. 考虑直接进行构造. 容易发现这类似于最大匹配 尝试利用最大匹配来做 不过这样的话时间复杂度会爆掉且不好写. 可以观察到一个性质 一个点只会为一行或者一列提供贡献 如果行列的需求一样那么这个点直接放即最优. 最后问题变成了 有一些没有放值得位…
There is a set of matrixes that are constructed subject to the following constraints: 1. The matrix is a S(n)×S(n) matrix; 2. S(n) is the sum of the first n Fibonacci numbers modulus m, that is S(n) = (F1 + F2 + … + Fn) % m; 3. The matrix contains on…
题目大意:给定A,k,m(取模),求解S = A + A2 + A3 + … + Ak. 思路:此题为求解幂的和,一开始直接一个个乘,TLE.时间消耗在累加上.此处巧妙构造新矩阵 p=    A 0 1 1 ,1 代表单位矩阵.那么p*p=A 0 A+1,1 p*p*p=A*A 0 A*A+A+1 1 那么最后求得的结果就是左下角的矩阵减去一个单位矩阵.最后需要注意的是若在简单为矩阵的时候结果为负数,那么为m-1; #include <iostream> #include <cstrin…
题意: 思路:构造方式见代码…… #include<cstdio> #include<cstring> #include<iostream> #include<algorithm> typedef long long ll; using namespace std; #define N 110 #define oo 10000000 #define MOD 1000000007 int a[N],b[N]; int main() { int n,m; sca…
http://codeforces.com/gym/101341/problem/I 题意:给三个N*N的矩阵,问a*b是否等于c. 思路:之前遇到过差不多的题目,当时是随机行(点),然后验证,不满足就退出.还有暴力弄的(当时的数据是500).也提到过这样的解法,当时没用这种做法做一遍. 就是构造多一个矩阵d. 由于矩阵乘法满足结合律:a * (b * d) = c * d. d是一个n*1的矩阵,b * d之后会得到一个n * 1的矩阵,因此只需要O(n^2)就可以验证是否正确. #inclu…
http://codeforces.com/contest/1004/problem/D 题意:网格图给定到中心点的曼哈顿距离数组, 求该图n,m及中心点位置 首先可以观察到距离最大值mx一定在某个角上, 可将它调整到位置(n,m) 设中心点(x, y) 则可以得到 n-x+m-y=mx 再注意到假若图无限大, 则对每个距离d的取值一定有4*d个 即第一个取值数<4*d的d可以调整为中心点的x坐标 然后就可以暴力枚举因子判断了 #include <iostream>#include &l…
如上图中的predicted ratings矩阵可以分解成X与ΘT的乘积,这个叫做低秩矩阵分解. 我们先学习出product的特征参数向量,在实际应用中这些学习出来的参数向量可能比较难以理解,也很难可视化出来,但是它们是做为区分不同电影的特征 怎么来区分电影i与电影j是否相似呢?就是判断X(i)与X(j)之间的距离是否小来判断.这样在一个用户看了或者买了一部电影后,我们可以给他推荐相似的电影. 总结: 1>用向量化的计算来对所有的用户所有的电影进行评分计算 2>通过学习特征参数,如何找到相关的…
Matrix Power Series Time Limit: 3000MS Memory Limit: 131072K Total Submissions: 19338 Accepted: 8161 Description Given a n × n matrix A and a positive integer k, find the sum S = A + A2 + A3 + - + Ak. Input The input contains exactly one test case. T…
题目链接:http://poj.org/problem?id=3233 Description Given a n × n matrix A and a positive integer k, find the sum S = A + A2 + A3 + … + Ak. Input The input contains exactly one test case. The first line of input contains three positive integers n (n ≤ 30…
Matrix Power Series Time Limit: 3000MS Memory Limit: 131072K Description Given a n × n matrix A and a positive integer k, find the sum S = A + A2 + A3 + - + Ak. Input The input contains exactly one test case. The first line of input contains three po…