神题......

还是大神讲得比较清晰~orz

http://dffxtz.logdown.com/posts/197950-noi2013-vector-inner-product

启发题:poj3318

  1. #include<cstdio>
  2. #include<cstdlib>
  3. #include<iostream>
  4. #include<fstream>
  5. #include<algorithm>
  6. #include<cstring>
  7. #include<string>
  8. #include<cmath>
  9. #include<queue>
  10. #include<stack>
  11. #include<map>
  12. #include<utility>
  13. #include<set>
  14. #include<bitset>
  15. #include<vector>
  16. #include<functional>
  17. #include<deque>
  18. #include<cctype>
  19. #include<climits>
  20. #include<complex>
  21. //#include<bits/stdc++.h>适用于CF,UOJ,但不适用于poj
  22. #include<ctime>
  23.  
  24. using namespace std;
  25.  
  26. typedef long long LL;
  27. typedef double DB;
  28. typedef pair<int,int> PII;
  29. typedef complex<DB> CP;
  30.  
  31. #define mmst(a,v) memset(a,v,sizeof(a))
  32. #define mmcy(a,b) memcpy(a,b,sizeof(a))
  33. #define re(i,a,b) for(i=a;i<=b;i++)
  34. #define red(i,a,b) for(i=a;i>=b;i--)
  35. #define fi first
  36. #define se second
  37. #define m_p(a,b) make_pair(a,b)
  38. #define SF scanf
  39. #define PF printf
  40. #define two(k) (1<<(k))
  41.  
  42. template<class T>inline T sqr(T x){return x*x;}
  43. template<class T>inline void upmin(T &t,T tmp){if(t>tmp)t=tmp;}
  44. template<class T>inline void upmax(T &t,T tmp){if(t<tmp)t=tmp;}
  45.  
  46. const DB EPS=1e-;
  47. inline int sgn(DB x){if(abs(x)<EPS)return ;return(x>)?:-;}
  48. const DB Pi=acos(-1.0);
  49.  
  50. inline int gint()
  51. {
  52. int res=;bool neg=;char z;
  53. for(z=getchar();z!=EOF && z!='-' && !isdigit(z);z=getchar());
  54. if(z==EOF)return ;
  55. if(z=='-'){neg=;z=getchar();}
  56. for(;z!=EOF && isdigit(z);res=res*+z-'',z=getchar());
  57. return (neg)?-res:res;
  58. }
  59. inline LL gll()
  60. {
  61. LL res=;bool neg=;char z;
  62. for(z=getchar();z!=EOF && z!='-' && !isdigit(z);z=getchar());
  63. if(z==EOF)return ;
  64. if(z=='-'){neg=;z=getchar();}
  65. for(;z!=EOF && isdigit(z);res=res*+z-'',z=getchar());
  66. return (neg)?-res:res;
  67. }
  68.  
  69. const int maxN=;
  70. const int maxDD=;
  71.  
  72. int N,DD,D,K;
  73. int v[maxN+][maxDD+];
  74.  
  75. inline int A1(int i,int j)
  76. {
  77. if(K==)
  78. {
  79. int t1=(j+DD-)/DD,t2=j-(t1-)*DD;
  80. return v[i][t1]*v[i][t2];
  81. }
  82. return v[i][j];
  83. }
  84. inline int A2(int i,int j){return A1(j,i);}
  85.  
  86. int F[maxN+],X[maxN+],GX[maxN+],FX[maxN+],A2X[maxN+],A1A2X[maxN+],TX[maxN+];
  87. inline int work()
  88. {
  89. int i,j,k,Case;
  90. if(1LL*N*D<10000000LL) Case=; else Case=;
  91. while(Case--)
  92. {
  93. re(i,,N)X[i]=rand()%;
  94.  
  95. mmst(GX,);
  96. re(i,,N)GX[]+=X[i];
  97. GX[]%=K;
  98. re(i,,N)GX[i]=GX[];
  99.  
  100. re(i,,N)FX[i]=F[i]*X[i];
  101.  
  102. mmst(A2X,);
  103. re(i,,D)re(j,,N)A2X[i]+=A2(i,j)*X[j];
  104.  
  105. mmst(A1A2X,);
  106. re(i,,N)re(j,,D)A1A2X[i]+=A1(i,j)*A2X[j];
  107. re(i,,N)A1A2X[i]%=K;
  108.  
  109. re(i,,N)
  110. {
  111. TX[i]=GX[i]-FX[i]-A1A2X[i];
  112. TX[i]=(TX[i]%K+K)%K;
  113. if(TX[i]!=)
  114. {
  115. re(j,,N)if(j!=i)
  116. {
  117. int res=;
  118. re(k,,DD)res+=v[i][k]*v[j][k];
  119. if(res%K==){PF("%d %d\n",min(i,j),max(i,j));return ;}
  120. }
  121. }
  122. }
  123. }
  124. return ;
  125. }
  126.  
  127. int main()
  128. {
  129. freopen("meow.in","r",stdin);
  130. freopen("meow.out","w",stdout);
  131. srand(time());
  132. int i,j;
  133. N=gint();D=gint();K=gint();
  134. re(i,,N)re(j,,D)v[i][j]=gint()%K;
  135. DD=D;if(K==)D=D*D;
  136. re(i,,N)
  137. {
  138. F[i]=;
  139. re(j,,D) F[i]+=A1(i,j)*A2(j,i);
  140. F[i]%=K;F[i]^=;
  141. }
  142. if(!work())PF("-1 -1\n");
  143. return ;
  144. }

NOI2013 UOJ122 向量内积的更多相关文章

  1. LOJ 2664. 「NOI2013」向量内积 解题报告

    #2664. 「NOI2013」向量内积 两个 \(d\) 维向量 \(A=[a_1, a_2 ,...,a_d]\) 与 \(B=[b_1 ,b_2 ,...,b_d]\) 的内积为其相对应维度的权 ...

  2. 【BZOJ3243】【NOI2013】向量内积(矩阵,数论)

    [BZOJ3243][NOI2013]向量内积(矩阵,数论) 题面 BZOJ 题解 这题好神仙. 首先\(60\)分直接是送的.加点随机之类的可以多得点分. 考虑正解. 我们先考虑一下暴力. 我们把\ ...

  3. 【NOI2013】向量内积

    定义两个$d$维向量${A=[a_1,a_2....a_n]}$,${B=[b_1,b_2....b_n]}$的内积为其相对应维度的权值的乘积和: $${\left \langle A,B \righ ...

  4. UOJ#121. 【NOI2013】向量内积 随机化算法,矩阵

    原文链接www.cnblogs.com/zhouzhendong/UOJ121.html 前言 完蛋了我越来越菜了贺题都不会了. 题解 $O(n ^ 2 d) $ 暴力送 60 分. Bitset 优 ...

  5. 【fake题解】[NOI2013]向量内积

    [fake题解][NOI2013]向量内积 做法1 大暴力.哪里不会T哪里. 做法2 所有数都%=k不影响结果.(废话 k的取值只有2和3,所以肯定是要分类讨论的.k=2肯定简单些啦. k=2 出现的 ...

  6. [Noi2013]向量内积

    来自FallDream的博客,未经允许,请勿转载,谢谢. 两个d 维向量A=[a1,a2,...,ad]与B=[b1,b2,...,bd]的内积为其相对应维度的权值的乘积和,即: $\sum_{i=1 ...

  7. [BZOJ]3243 向量内积(Noi2013)

    小C做了之后很有感觉的题目之一,但因为姿势不对调了很久. Description 两个d 维向量A=[a1,a2,...,ad]与B=[b1,b2,...,bd]的内积为其相对应维度的权值的乘积和,即 ...

  8. P1224 [NOI2013]向量内积

    传送门 发现这个内积和矩乘有点像,考虑构造一个 $n$ 行 $m$ 列的矩阵 $A$,每一行都是一个题目给定的 $m$ 维向量 设 $B=AA^T$ ,其中 $A^T$ 为 $A$ 的转置矩阵,那么对 ...

  9. luogu P1224 [NOI2013]向量内积

    传送门 挺有意思的一道题 暴力60就是枚举每个向量暴力check,随机选向量就能多骗一些分 然后两个向量内积要模\(k\)为\(0\),那么如果全部不为\(0\)就不合法.先考虑\(k=2\),对于向 ...

随机推荐

  1. Android中theme.xml与style.xml的区别

    一.相同点 两者的定义相同.继承方式也相同 <?xml version="1.0" encoding="utf-8"?> <resources ...

  2. Shiro-授权

    把 realms 配置给SecurityManager 在认证的时候单个realm是这样配置的: <bean id="securityManager" class=" ...

  3. React Native 初识

    Facebook 在 React.js Conf 2015 大会上推出了基于 JavaScript 的开源框架 React Native,本中文教程翻译自 React Native 官方文档. Rea ...

  4. 50个Android开发技巧(10 为TextView加入样式)

    首先来看一个控件的例子: (原文地址:http://blog.csdn.net/vector_yi/article/details/24428085) 手机上类似这种场景你一定已经见过非常多次了,但有 ...

  5. Java 多字段排序Comparator(兼容Date,Integer,Doubel,Long)

    Java 反射类:ReflexUtil public class ReflexUtil { static Logger logger = LoggerFactory.getLogger(ReflexU ...

  6. 通过layout实现可拖拽自动排序的UICollectionView

    文/CenturyGuo(简书作者)原文链接:http://www.jianshu.com/p/8d1bf1838882著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”. Translat ...

  7. How to get multi-touch working(Linux and Andriod)

    1.在hid-ids.h中加入vid pid           2.在hid-multitouch..c->mt_devices[] 中加入          {                ...

  8. Cortex-mo指令集

    处理器使用的是ARMv6-M Thumb指令集,包括大量的32位的使用Thumb-2技术的指令.表7-22列出了Cortex-M0指令和它们的周期数.周期计数以零等待状态的系统为基准. 表7-22  ...

  9. Css的三大机制(特性):特殊性、继承、层叠详解

    继承(Inheritance)是从一个元素向其后代元素传递属性值所采用的机制.确定应当向一个元素应用那些值时,用户代理(浏览器)不仅要考虑继承,还要考虑声明的特殊性(specificity),另外需要 ...

  10. python自动化执行脚本

    ---恢复内容开始--- 1 (1)首先在你的.py文件上加上一行代码注释: #!/usr/local/bin/python2.7 (2)终端下执行: crontab -e 进入后,输入i 进入可编辑 ...