原文链接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\),判定 \(…
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\)的向量.而内积之和可以看成当前向量和前面所有向量之和的内积,所以维护好前面向量的和,每次前缀和的当…
洛谷题面传送门 一道很神的随机化. 首先由于我们要求向量点乘 \(\bmod k\) 的值,因此我们可以将所有 \(x_{i,j}\) 都模上 \(k\),显然该操作不影响结果正确性. 注意到这里的 \(d\) 与 \(n\) 不同阶,这也就暗示我们要找到一个复杂度重心偏向 \(d\) 的算法,首先考虑 \(k=2\) 的情形,我们考虑依次枚举所有向量并维护它们的前缀和 \(\vec{S}\),对于每个向量 \(\vec{x_i}\) 我们求出 \(\vec{S}·\vec{x_i}\bmod…
考虑奇技淫巧. 首先是k=2.对向量维护一个前缀和,每次将当前向量与前缀和点乘.如果点乘结果不等于i-1&1,说明当前向量至少和之前的某个向量的数量积是2的倍数,暴力找就可以了.当然等于i-1&1也不一定就不存在,这本质上还是个随机算法,于是先random_shuffle一下. k=3时,注意到12≡22≡1(mod 3),于是维护一个平方前缀和.具体的化一下式子就可以得出. 调了半天才发现bzoj题面上的数据范围锅了. #include<iostream> #include&…
原文链接www.cnblogs.com/zhouzhendong/p/UOJ75.html 前言 根本没想到. 题解 首先我们可以考虑一种做法: 找一些图,使得他们各自的生成树个数乘起来等于 k. 那么只要将他们用一条链连起来就得到答案了. 接下来考虑如何得到这些图. 考虑随机生成一个 n 个点的图,它的生成树个数最大是 $n^{n-2}$ . 我们假装一个 n 个点的图的生成树个数是 $[0,n^{n-2}]$ 中的随机数. 假设我们随机生成了 S 个这样的图,如果我们在这 S 个图中随机选择…
http://uoj.ac/problem/121 (题目链接) 题意 给出${n}$个${d}$维向量,问是否有两个不同的向量的内积是${k}$的倍数. Solution 又卡了一上午常数,我弃了T_T. 右转题解→_→:llg 代码 // uoj121 #include<algorithm> #include<iostream> #include<cstdlib> #include<cstring> #include<cstdio> #inc…