考虑奇技淫巧. 首先是k=2.对向量维护一个前缀和,每次将当前向量与前缀和点乘.如果点乘结果不等于i-1&1,说明当前向量至少和之前的某个向量的数量积是2的倍数,暴力找就可以了.当然等于i-1&1也不一定就不存在,这本质上还是个随机算法,于是先random_shuffle一下. k=3时,注意到12≡22≡1(mod 3),于是维护一个平方前缀和.具体的化一下式子就可以得出. 调了半天才发现bzoj题面上的数据范围锅了. #include<iostream> #include&…
题目链接 BZOJ3243 题解 模数只有\(2\)或\(3\),可以大力讨论 如果模数为\(2\),乘积结果只有\(1\)或\(0\) 如果一个向量和前面所有向量乘积都为\(1\),那么其和前面向量前缀和的乘积就唯一确定 我们维护向量前缀和,第一个乘积情况不符的向量一定是答案,然后再枚举另一个向量即 \(O(nd)\) 如果模数为\(3\),乘积如果不为\(0\),还可以为\(1\)或\(2\),我们讨论的方法就不适用了 其实还是可以的 \[1^2 = 2^2 = 1 \pmod 3\] 我们…
3243: [Noi2013]向量内积 Time Limit: 10 Sec  Memory Limit: 256 MBSec  Special JudgeSubmit: 1249  Solved: 248[Submit][Status][Discuss] Description 两个d 维向量A=[a1,a2,...,ad]与B=[b1,b2,...,bd]的内积为其相对应维度的权值的乘积和,即: 现有 n 个d 维向量x1,...,xn ,小喵喵想知道是否存在两个向量的内积为k的倍数.请帮助…
[fake题解][NOI2013]向量内积 做法1 大暴力.哪里不会T哪里. 做法2 所有数都%=k不影响结果.(废话 k的取值只有2和3,所以肯定是要分类讨论的.k=2肯定简单些啦. k=2 出现的数只会有0和1 两个0或1相乘,乘积就是与之后的值 所以可以把向量用bitset存起来,这样计算就是\(O(\frac{d}{32})\),结果是3.125 然后上暴力,\(O(\frac{n^2}{2}\times 3.125)\),能卡过(事实并非如此,飞起了) k=3 先讨论前14个点的k=3…
来自FallDream的博客,未经允许,请勿转载,谢谢. 两个d 维向量A=[a1,a2,...,ad]与B=[b1,b2,...,bd]的内积为其相对应维度的权值的乘积和,即: $\sum_{i=1}^{d}ai*bi$ 现有 n 个d 维向量x1,...,xn ,小喵喵想知道是否存在两个向量的内积为k的倍数.请帮助她解决这个问题 k=2时 n<=20000 d<=100  k=3时n<=1000,d<=100 或者n<=100000 d<=30 把两个向量内积看作矩…
传送门 发现这个内积和矩乘有点像,考虑构造一个 $n$ 行 $m$ 列的矩阵 $A$,每一行都是一个题目给定的 $m$ 维向量 设 $B=AA^T$ ,其中 $A^T$ 为 $A$ 的转置矩阵,那么对于 $B_{i,j}$ 的值,它其实就是向量 $i$ 和向量 $j$ 的内积 注意到 $K$ 只有 $2$ 或 $3$,先考虑 $K=2$ 时的情况 此时就是问矩阵 $B$ 在模 $2$ 意义下是否有位置的值为 $0$ ,并且求出位置 首先判断是否有 $0$ ,因为此时 $B$ 的元素不是 $0$…
传送门 挺有意思的一道题 暴力60就是枚举每个向量暴力check,随机选向量就能多骗一些分 然后两个向量内积要模\(k\)为\(0\),那么如果全部不为\(0\)就不合法.先考虑\(k=2\),对于向量\(i\),假如前面所有向量和他的内积为\(1\),那么所有内积之和应该要和\(i-1\)模\(2\)同余,所以如果某个\(i\)不满足这个条件,就可以\(O(nd)\)的找出前面和他内积为\(0\)的向量.而内积之和可以看成当前向量和前面所有向量之和的内积,所以维护好前面向量的和,每次前缀和的当…
本文版权归ljh2000和博客园共有,欢迎转载,但须保留此声明,并给出原文链接,谢谢合作. 本文作者:ljh2000 作者博客:http://www.cnblogs.com/ljh2000-jump/转载请注明出处,侵权必究,保留最终解释权! Description 两个d 维向量A=[a1,a2,...,ad]与B=[b1,b2,...,bd]的内积为其相对应维度的权值的乘积和,即: 现有 n 个d 维向量x1,...,xn ,小喵喵想知道是否存在两个向量的内积为k的倍数.请帮助她解决这个问题…
Description 两个d 维向量A=[a1,a2,...,ad]与B=[b1,b2,...,bd]的内积为其相对应维度的权值的乘积和,即: 现有 n 个d 维向量x1,...,xn ,小喵喵想知道是否存在两个向量的内积为k的倍数.请帮助她解决这个问题Input 第一行包含3个正整数n,d,k,分别表示向量的个数,维数以及待检测的倍数.接下来n行每行有d个非负整数,其中第i行的第j个整数表示向量xi的第j维权值xi,j.Output 包含两个整数,用空格隔开.如果存在两个向量xp,xq的内积…
Description 两个d 维向量A=[a1,a2,...,ad]与B=[b1,b2,...,bd]的内积为其相对应维度的权值的乘积和,即: 现有 n 个d 维向量x1,...,xn ,小喵喵想知道是否存在两个向量的内积为k的倍数.请帮助她解决这个问题 Solution 首先做一个转换:如果把 \(B=A*A^T\) 构造出来,那么 \(B[i][j]\) 就代表向量 \(i\) 和向量 \(j\) 的内积,如果为 \(\mod k=0\) 则满足要求 \(A^T\) 是转置矩阵,也就是把原…
http://uoj.ac/problem/121 (题目链接) 题意 给出${n}$个${d}$维向量,问是否有两个不同的向量的内积是${k}$的倍数. Solution 又卡了一上午常数,我弃了T_T. 右转题解→_→:llg 代码 // uoj121 #include<algorithm> #include<iostream> #include<cstdlib> #include<cstring> #include<cstdio> #inc…
洛谷题面传送门 一道很神的随机化. 首先由于我们要求向量点乘 \(\bmod k\) 的值,因此我们可以将所有 \(x_{i,j}\) 都模上 \(k\),显然该操作不影响结果正确性. 注意到这里的 \(d\) 与 \(n\) 不同阶,这也就暗示我们要找到一个复杂度重心偏向 \(d\) 的算法,首先考虑 \(k=2\) 的情形,我们考虑依次枚举所有向量并维护它们的前缀和 \(\vec{S}\),对于每个向量 \(\vec{x_i}\) 我们求出 \(\vec{S}·\vec{x_i}\bmod…
[BZOJ3243][NOI2013]向量内积(矩阵,数论) 题面 BZOJ 题解 这题好神仙. 首先\(60\)分直接是送的.加点随机之类的可以多得点分. 考虑正解. 我们先考虑一下暴力. 我们把\(n\)个向量拼接在一起,形成一个\(n\times d\)的矩阵. 显然这个矩阵和它的转置矩阵,也就是一个\(d\times n\)的矩阵做乘法, 结果是一个\(n\times n\)的矩阵,第\(i\)行第\(j\)列就是\(i,j\)两个向量的结果. 如果这个矩阵全是\(1\)(除主对角线),…
#2664. 「NOI2013」向量内积 两个 \(d\) 维向量 \(A=[a_1, a_2 ,...,a_d]\) 与 \(B=[b_1 ,b_2 ,...,b_d]\) 的内积为其相对应维度的权值的乘积和,即: \[ (A,B) = \displaystyle \sum_{i=1}^d{a_ib_i} = a_1b_1 + a_2b_2 + \ldots + a_db_d \] 现有 \(n\) 个 \(d\) 维向量 \(x_1, \ldots, x_n\),小喵喵想知道是否存在两个向量…
小C做了之后很有感觉的题目之一,但因为姿势不对调了很久. Description 两个d 维向量A=[a1,a2,...,ad]与B=[b1,b2,...,bd]的内积为其相对应维度的权值的乘积和,即: 现有 n 个d 维向量x1,...,xn ,小喵喵想知道是否存在两个向量的内积为k的倍数.请帮助她解决这个问题. Input 第一行包含3个正整数n,d,k,分别表示向量的个数,维数以及待检测的倍数.接下来n行每行有d个非负整数,其中第i行的第j个整数表示向量xi的第j维权值xi,j. Outp…
在第二章介绍了 R 语言中的基本数据类型,本章会将其组装起来,构成特殊的数据结构,即向量.矩阵与列表.这些数据结构在社交网络分析中极其重要,本质上对图的分析,就是对邻接矩阵的分析,而矩阵又是由若干个向量构成,因此需要熟练掌握这些特殊的数据结构. 向量 向量的创建 向量元素的访问 向量的运算 向量的其他常用操作 矩阵 矩阵的创建 矩阵元素的访问 矩阵的运算 矩阵的特征值与特征向量 列表 列表的创建 列表元素的访问 向量 向量的创建 向量(vector)作为 R 语言中最简单的数据结构,由一串有序的…
线性代数,面向连续数学,非离散数学.<The Matrix Cookbook>,Petersen and Pedersen,2006.Shilov(1977). 标量.向量.矩阵.张量. 标量(scalar).一个标量,一个单独的数.其他大部分对象是多个数的数组.斜体表示标量.小写变量名称.明确标量数类型.实数标量,令s∊ℝ表示一条线斜率.自然数标量,令n∊ℕ表示元素数目. 向量(vector).一个向量,一列数.有序排列.次序索引,确定每个单独的数.粗体小写变量名称.向量元素带脚标斜体表示.…
已有 1849 次阅读 2012-8-2 15:15 |系统分类:科研笔记|关键词:矩阵 480 window border center Matlab.R向量与矩阵操作   描    述 Matlab R 1 建立行向量v=[1 2 3 4] v=[1 2 3 4] v<-c(1,2,3,4)或v<-scan(),然后输入1 2 3 4,并按Enter 2 建立列向量v=[1 2 3 4]’ v=[1;2;3;4] 同上,R中不区分行列 3 建立矩阵A=(142536) A=[1 2 3;4…
MATLAB 的向量,矩阵和阵列命令:…
在R中,基本的数据结构有:向量,矩阵,数组,数据框,列表,因子,函数等. 向量:一系列同类型的有序元素构成. 向量是一维结构. 向量是R最简单的数据结构,在R中没有标量. 标量被看成1个元素的向量. 向量元素必须是同类型的. 由于向量是最简单的数据结构,因此本章中以向量为例子来解释各个概念. 矩阵:二维的同类型元素的集合. 矩阵由函数matrix创建. 矩阵需要输入行数,列数. 矩阵是二维的,引用元素可通过双下标做索引. 矩阵在物理实现时,是向量附加行列数属性来实现的,因此也可以通过向量的方式引…
Introduction to Applied Linear Algebra – Vectors, Matrices, and Least Squares 应用线性代数简介 - 向量,矩阵和最小二乘法 By Stephen Boyd and Lieven Vandenberghe, Cambridge University Press: https://web.stanford.edu/~boyd/vmls/…
Matlab.R向量与矩阵操作   描    述 Matlab R 1 建立行向量v=[1 2  3 4] v=[1 2 3 4] v<-c(1,2,3,4)或v<-scan(),然后输入1 2 3 4,并按Enter 2 建立列向量v=[1 2  3 4]’ v=[1;2;3;4] 同上,R中不区分行列 3 建立矩阵A=(1 4  2 5  3 6  ) A=[1 2 3;4 5 6] A<-matrix(c(1,2,3,4,5,6), nrow=2,byrow=TRUE) 4 访问向…
No.1. Numpy.array相较于Python原生List的性能优势 No.2. 将向量或矩阵中的每个元素 + 1 No.2. 将向量或矩阵中的所有元素 - 1 No.3. 将向量或矩阵中的所有元素 * 2 No.4. 将向量或矩阵中的所有元素 / 2 或 // 2 No.5. 幂运算 No.6. 取余 No.7. 取绝对值 No.8. 三角函数 No.9. 取e的x方 No.10. 取任意数的x方 No.11. 取以e为底x的对数 No.12. 取以任意数为底x的对数 No.13. 矩阵…
一.第二章 科学计算器 要检查两个数字是否一样,要使用 all.equal() ,不要使用 == ,== 符号仅用于比较两个整型数是否存在相同 . > all.equal(sqrt(2)^2,2) [1] TRUE > all.equal(sqrt(2) ^ 2,3) [1] "Mean relative difference: 0.5" > isTRUE(all.equal(sqrt(2) ^ 2,2)) [1] TRUE > isTRUE(all.equal…
函数:UF_MTX3_vec_multiply_t() 或者UF_MTX3_vec_multiply().推荐使用UF_MTX3_vec_multiply_t() 函数说明:将向量按照矩阵进行变换:绝对坐标系下有向量vec,矩阵tagMatrix直接用WCS坐标系的矩阵.vec与tagMatrix乘积得到vec_product.为了更直观我们使用UF_CURVE_create_line创建一条直线来看一下. 结果:红色矢量为vec.绿色矢量为vec_product.红色向量与ABS坐标的相对位置…
原文链接www.cnblogs.com/zhouzhendong/UOJ121.html 前言 完蛋了我越来越菜了贺题都不会了. 题解 $O(n ^ 2 d) $ 暴力送 60 分. Bitset 优化一下说不定更稳.可能有 85 分. 来讲正解. 注意下文中的 "p" 表示原题中的 "k". 首先我们来解决一个问题: 如何在较低的复杂度下判定矩阵 A,B,C 是否满足 \(A\times B = C\) . 做法是:随机 O(1) 个行向量 \(x\),判定 \(…
定义两个$d$维向量${A=[a_1,a_2....a_n]}$,${B=[b_1,b_2....b_n]}$的内积为其相对应维度的权值的乘积和: $${\left \langle A,B \right \rangle= \sum _{i=1}^{d}a_i*b_i}$$ 现在有$n$个$d$维向量,判断是否存在两个向量的内积为$k$的倍数${(2\leq k\leq 3)}$ 我们考虑将$n$个$d$维的向量构成一个$n*d$的矩阵$A$,$A^{T}$为$A$的转置矩阵. 令矩阵${B=A*…
神题...... 还是大神讲得比较清晰~orz http://dffxtz.logdown.com/posts/197950-noi2013-vector-inner-product 启发题:poj3318 #include<cstdio> #include<cstdlib> #include<iostream> #include<fstream> #include<algorithm> #include<cstring> #incl…
Description 两个\(d\)维向量\(A=[a_{1},a_{2},...,a_{d}]\)与\(B=[b_{1},b_{2},...,b_{d}]\)的内积为其相对应维度的权值的乘积和,即: 现有\(n\)个\(d\)维向量\(x_{1},...,x_{n}\),小喵喵想知道是否存在两个向量的内积为\(k\)的倍数.请帮助她解决这个问题 Input 第一行包含\(3\)个正整数\(n,d,k\),分别表示向量的个数,维数以及待检测的倍数. 接下来\(n\)行每行有\(d\)个非负整数…
什么毒瘤...... 题意:给定n个d维向量,定义向量a和b的内积为 求是否存在两个向量使得它们的内积为k的倍数,并给出任一种方案.k <= 3. 解:很容易想到一个暴力是n2d的.显然我们不能n2枚举,所以要一次性把一个向量跟多个向量判断. 先思考k = 2的情况,显然每个位置和内积非0即1,这启发我们使用二进制. 假如把一个内积看成一个B进制数或者一个多项式,变量是B,我们就能发现,如果两个向量的内积为x,那么这个多项式的值也是x. 这种情况只要B取一个奇数就行了.理由是内积每一项非0即1,…