Nowcoder Circulant Matrix ( FWT )】的更多相关文章

题目链接 题意 : 给你一个a数组和b数组,构造出A[i][j]矩阵(A[i][j] = a[i xor j]) 给出等式 A * x = b ( mod p ) n等于4的时候有: A[0][0]*x[0] + A[0][1]*x[1] + A[0][2]*x[2] + A[0][3]*x[3] = b[0] (mod p)A[1][0]*x[0] + A[1][1]*x[1] + A[1][2]*x[2] + A[1][3]*x[3] = b[1] (mod p)A[2][0]*x[0] +…
分析 大佬说看样例就像和卷积有关. 把题目化简成a*x=b,这是个xor的FWT. FWT的讲解请看:https://www.cnblogs.com/cjyyb/p/9065615.html 那么要求的是x,所以我们得逆着来,则对b进行IFWT,对a FWT,然后c=b/a,于是x=FWT(c). #include <iostream> #include <cstdio> #include <cstdlib> #include <cstring> #incl…
之所以专门定义两个新的概念,在于它们特殊的形式,带来的特别的形式. 1. Toeplitz matrix 对角为常数: n×n 的矩阵 A 是 Toepliz 矩阵当且仅当,对于 Ai,j 有: Ai,j=Ai+1,j+1=ai−j ⎡⎣⎢⎢⎢⎢⎢⎢afghibafghcbafgdcbafedcba⎤⎦⎥⎥⎥⎥⎥⎥ . i−j 表示行号减去列号,对于 n×n 的 Toeplize 矩阵共 2n−1 个不同的值,即 a1−n,a2−n,-,a−1,0,a1,-,an−1. ⎡⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢…
题目链接 题意 : 给出 N 个数.然后问你最多取出多少石子使得在 NIM 博弈中.后手必胜 分析 :  Nim 博弈模型,后手必胜当且仅当各个堆的石子的数目的异或和为 0 转化一下.变成最少取多少石子使得异或和为原来所有石子堆的异或和 和背包DP思想很类似.可以考虑 DP dp[i][j] = 到第 i 个石子为止.使得异或和为 j 的最少取石子方案是多少 但是如果这样子去构造 dp 转移显然是 O(n^2) 的 如果你接触过 FWT 优化 DP 的题目的话.可能会想到如下的 DP 方程 dp…
题目链接 题意 : 在一个 n * m 的矩阵中放置 {0, 1, 2} 这三个数字.要求 每个元素 A(i, j) <= A(i+1, j) && A(i, j) <= A(i, j+1) .问你合法的构造方案有多少种 分析 : 分析一下限制条件不难得出.其实就是在矩阵中设置两条分界线 使得分界线总左上角到右下角分别是 0.1.2 例如如下的矩阵就是合法的 0 0 1 2 0 1 2 2 1 2 2 2 那么问题就转化成了在矩阵中找出两条可重叠的路径 把矩阵分成三个部分 有一…
代码: %% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ %% Output Info about this m-file fprintf('\n***********************************************************\n'); fprintf(' <DSP using MATLAB> Problem 5.33 \n\n'); ba…
第3小题: 代码: %% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ %% Output Info about this m-file fprintf('\n***********************************************************\n'); fprintf(' <DSP using MATLAB> Problem 5.31 \n\n…
代码: %% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ %% Output Info about this m-file fprintf('\n***********************************************************\n'); fprintf(' <DSP using MATLAB> Problem 5.29 \n\n'); ba…
昨晚手机在看X信的时候突然黑屏,开机重启都没反应,今天维修师傅说使用时间太长了,还是买个新的吧,心疼银子啊! 这里只放前两个小题的图. 代码: 1. %% +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ %% Output Info about this m-file fprintf('\n******************************************…
代码: function y = circonvt(x1,x2,N) %% N-point Circular convolution between x1 and x2: (time domain) %% ------------------------------------------------------------------ %% [y] = circonvt(x1,x2,N) %% y = output sequence containning the circular convo…