NOI2013 UOJ122 向量内积
神题......
还是大神讲得比较清晰~orz
http://dffxtz.logdown.com/posts/197950-noi2013-vector-inner-product
启发题:poj3318
- #include<cstdio>
- #include<cstdlib>
- #include<iostream>
- #include<fstream>
- #include<algorithm>
- #include<cstring>
- #include<string>
- #include<cmath>
- #include<queue>
- #include<stack>
- #include<map>
- #include<utility>
- #include<set>
- #include<bitset>
- #include<vector>
- #include<functional>
- #include<deque>
- #include<cctype>
- #include<climits>
- #include<complex>
- //#include<bits/stdc++.h>适用于CF,UOJ,但不适用于poj
- #include<ctime>
- using namespace std;
- typedef long long LL;
- typedef double DB;
- typedef pair<int,int> PII;
- typedef complex<DB> CP;
- #define mmst(a,v) memset(a,v,sizeof(a))
- #define mmcy(a,b) memcpy(a,b,sizeof(a))
- #define re(i,a,b) for(i=a;i<=b;i++)
- #define red(i,a,b) for(i=a;i>=b;i--)
- #define fi first
- #define se second
- #define m_p(a,b) make_pair(a,b)
- #define SF scanf
- #define PF printf
- #define two(k) (1<<(k))
- template<class T>inline T sqr(T x){return x*x;}
- template<class T>inline void upmin(T &t,T tmp){if(t>tmp)t=tmp;}
- template<class T>inline void upmax(T &t,T tmp){if(t<tmp)t=tmp;}
- const DB EPS=1e-;
- inline int sgn(DB x){if(abs(x)<EPS)return ;return(x>)?:-;}
- const DB Pi=acos(-1.0);
- inline int gint()
- {
- int res=;bool neg=;char z;
- for(z=getchar();z!=EOF && z!='-' && !isdigit(z);z=getchar());
- if(z==EOF)return ;
- if(z=='-'){neg=;z=getchar();}
- for(;z!=EOF && isdigit(z);res=res*+z-'',z=getchar());
- return (neg)?-res:res;
- }
- inline LL gll()
- {
- LL res=;bool neg=;char z;
- for(z=getchar();z!=EOF && z!='-' && !isdigit(z);z=getchar());
- if(z==EOF)return ;
- if(z=='-'){neg=;z=getchar();}
- for(;z!=EOF && isdigit(z);res=res*+z-'',z=getchar());
- return (neg)?-res:res;
- }
- const int maxN=;
- const int maxDD=;
- int N,DD,D,K;
- int v[maxN+][maxDD+];
- inline int A1(int i,int j)
- {
- if(K==)
- {
- int t1=(j+DD-)/DD,t2=j-(t1-)*DD;
- return v[i][t1]*v[i][t2];
- }
- return v[i][j];
- }
- inline int A2(int i,int j){return A1(j,i);}
- int F[maxN+],X[maxN+],GX[maxN+],FX[maxN+],A2X[maxN+],A1A2X[maxN+],TX[maxN+];
- inline int work()
- {
- int i,j,k,Case;
- if(1LL*N*D<10000000LL) Case=; else Case=;
- while(Case--)
- {
- re(i,,N)X[i]=rand()%;
- mmst(GX,);
- re(i,,N)GX[]+=X[i];
- GX[]%=K;
- re(i,,N)GX[i]=GX[];
- re(i,,N)FX[i]=F[i]*X[i];
- mmst(A2X,);
- re(i,,D)re(j,,N)A2X[i]+=A2(i,j)*X[j];
- mmst(A1A2X,);
- re(i,,N)re(j,,D)A1A2X[i]+=A1(i,j)*A2X[j];
- re(i,,N)A1A2X[i]%=K;
- re(i,,N)
- {
- TX[i]=GX[i]-FX[i]-A1A2X[i];
- TX[i]=(TX[i]%K+K)%K;
- if(TX[i]!=)
- {
- re(j,,N)if(j!=i)
- {
- int res=;
- re(k,,DD)res+=v[i][k]*v[j][k];
- if(res%K==){PF("%d %d\n",min(i,j),max(i,j));return ;}
- }
- }
- }
- }
- return ;
- }
- int main()
- {
- freopen("meow.in","r",stdin);
- freopen("meow.out","w",stdout);
- srand(time());
- int i,j;
- N=gint();D=gint();K=gint();
- re(i,,N)re(j,,D)v[i][j]=gint()%K;
- DD=D;if(K==)D=D*D;
- re(i,,N)
- {
- F[i]=;
- re(j,,D) F[i]+=A1(i,j)*A2(j,i);
- F[i]%=K;F[i]^=;
- }
- if(!work())PF("-1 -1\n");
- return ;
- }
NOI2013 UOJ122 向量内积的更多相关文章
- LOJ 2664. 「NOI2013」向量内积 解题报告
#2664. 「NOI2013」向量内积 两个 \(d\) 维向量 \(A=[a_1, a_2 ,...,a_d]\) 与 \(B=[b_1 ,b_2 ,...,b_d]\) 的内积为其相对应维度的权 ...
- 【BZOJ3243】【NOI2013】向量内积(矩阵,数论)
[BZOJ3243][NOI2013]向量内积(矩阵,数论) 题面 BZOJ 题解 这题好神仙. 首先\(60\)分直接是送的.加点随机之类的可以多得点分. 考虑正解. 我们先考虑一下暴力. 我们把\ ...
- 【NOI2013】向量内积
定义两个$d$维向量${A=[a_1,a_2....a_n]}$,${B=[b_1,b_2....b_n]}$的内积为其相对应维度的权值的乘积和: $${\left \langle A,B \righ ...
- UOJ#121. 【NOI2013】向量内积 随机化算法,矩阵
原文链接www.cnblogs.com/zhouzhendong/UOJ121.html 前言 完蛋了我越来越菜了贺题都不会了. 题解 $O(n ^ 2 d) $ 暴力送 60 分. Bitset 优 ...
- 【fake题解】[NOI2013]向量内积
[fake题解][NOI2013]向量内积 做法1 大暴力.哪里不会T哪里. 做法2 所有数都%=k不影响结果.(废话 k的取值只有2和3,所以肯定是要分类讨论的.k=2肯定简单些啦. k=2 出现的 ...
- [Noi2013]向量内积
来自FallDream的博客,未经允许,请勿转载,谢谢. 两个d 维向量A=[a1,a2,...,ad]与B=[b1,b2,...,bd]的内积为其相对应维度的权值的乘积和,即: $\sum_{i=1 ...
- [BZOJ]3243 向量内积(Noi2013)
小C做了之后很有感觉的题目之一,但因为姿势不对调了很久. Description 两个d 维向量A=[a1,a2,...,ad]与B=[b1,b2,...,bd]的内积为其相对应维度的权值的乘积和,即 ...
- P1224 [NOI2013]向量内积
传送门 发现这个内积和矩乘有点像,考虑构造一个 $n$ 行 $m$ 列的矩阵 $A$,每一行都是一个题目给定的 $m$ 维向量 设 $B=AA^T$ ,其中 $A^T$ 为 $A$ 的转置矩阵,那么对 ...
- luogu P1224 [NOI2013]向量内积
传送门 挺有意思的一道题 暴力60就是枚举每个向量暴力check,随机选向量就能多骗一些分 然后两个向量内积要模\(k\)为\(0\),那么如果全部不为\(0\)就不合法.先考虑\(k=2\),对于向 ...
随机推荐
- Android中theme.xml与style.xml的区别
一.相同点 两者的定义相同.继承方式也相同 <?xml version="1.0" encoding="utf-8"?> <resources ...
- Shiro-授权
把 realms 配置给SecurityManager 在认证的时候单个realm是这样配置的: <bean id="securityManager" class=" ...
- React Native 初识
Facebook 在 React.js Conf 2015 大会上推出了基于 JavaScript 的开源框架 React Native,本中文教程翻译自 React Native 官方文档. Rea ...
- 50个Android开发技巧(10 为TextView加入样式)
首先来看一个控件的例子: (原文地址:http://blog.csdn.net/vector_yi/article/details/24428085) 手机上类似这种场景你一定已经见过非常多次了,但有 ...
- Java 多字段排序Comparator(兼容Date,Integer,Doubel,Long)
Java 反射类:ReflexUtil public class ReflexUtil { static Logger logger = LoggerFactory.getLogger(ReflexU ...
- 通过layout实现可拖拽自动排序的UICollectionView
文/CenturyGuo(简书作者)原文链接:http://www.jianshu.com/p/8d1bf1838882著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”. Translat ...
- How to get multi-touch working(Linux and Andriod)
1.在hid-ids.h中加入vid pid 2.在hid-multitouch..c->mt_devices[] 中加入 { ...
- Cortex-mo指令集
处理器使用的是ARMv6-M Thumb指令集,包括大量的32位的使用Thumb-2技术的指令.表7-22列出了Cortex-M0指令和它们的周期数.周期计数以零等待状态的系统为基准. 表7-22 ...
- Css的三大机制(特性):特殊性、继承、层叠详解
继承(Inheritance)是从一个元素向其后代元素传递属性值所采用的机制.确定应当向一个元素应用那些值时,用户代理(浏览器)不仅要考虑继承,还要考虑声明的特殊性(specificity),另外需要 ...
- python自动化执行脚本
---恢复内容开始--- 1 (1)首先在你的.py文件上加上一行代码注释: #!/usr/local/bin/python2.7 (2)终端下执行: crontab -e 进入后,输入i 进入可编辑 ...