2021牛客暑期多校训练营1 H-Hash Function(数学+FFT)
H-Hash Function
Shining_xzl大佬题解
本题答案符合题意的充分必要条件是:不能是任意两个数的差以及他们的因数,因此只需用用FFT求出这些数的差,记为差的集合。
从小到大考虑一个答案,以及答案的倍数是不是上述差的集合,不是则符合。
#include<bits/stdc++.h>using namespace std;
using ll=long long;const int maxn=(1<<20)+5;
const double PI=acos(-1);
struct Complex
{double x,y;Complex operator+(const Complex &o) const{return{x+o.x,y+o.y};} Complex operator-(const Complex &o) const{return{x-o.x,y-o.y};} Complex operator*(const Complex &o) const{return{x*o.x-y*o.y,x*o.y+y*o.x};}
}A[maxn],B[maxn];
int rev[maxn];
void FFT(Complex *a,int N,int inv)
{for(int i=0;i<N;i++) if(i<rev[i]) swap(a[i],a[rev[i]]);for(int mid=1;mid<N;mid<<=1){Complex Wn=Complex({cos(PI/mid),inv*sin(PI/mid)});for(int i=0;i<N;i+=mid*2){Complex w=Complex({1,0});for(int j=0;j<mid;j++,w=w*Wn){Complex x=a[i+j],y=w*a[i+j+mid];a[i+j]=x+y,a[i+j+mid]=x-y;}}}if(inv==-1) for(int i=0;i<N;i++) A[i].x/=N;
}
// --------FFTint n;
const int Bs=500000;int vis[maxn];int main()
{ios::sync_with_stdio(false);cin.tie(nullptr);cout.tie(nullptr);cin>>n;for(int i=1;i<=n;i++){int a;cin>>a;A[a].x=1;B[Bs-a].x=1;}int num=1<<20,bit=20;for(int i=1;i<num;i++) rev[i]=rev[i>>1]>>1|(i&1)<<(bit-1); FFT(A,num,1),FFT(B,num,1);for(int i=0;i<num;i++) A[i]=A[i]*B[i];FFT(A,num,-1);for(int i=0;i<=Bs;i++) vis[i]=int(A[i+Bs].x+0.5);for(int i=n;;i++){bool ok=1;for(int j=i;j<=Bs;j+=i)if(vis[j]) {ok=0;break;}if(ok) return cout<<i<<'\n',0;}return 0;
}
暴力_链表维护差值
链表维护差值,如果差值不存在,则O(1)删除,非常快,但是后续被出题人卡了~~
#include<bits/stdc++.h>using namespace std;
using ll=long long;const int N=(1<<20)+5;int fr[N],to[N];void del(int x){to[fr[x]]=to[x];fr[to[x]]=fr[x];}int n,a[N];
int no[N],vis[N],mx;
int main()
{ios::sync_with_stdio(false);cin.tie(nullptr);cout.tie(nullptr);to[0]=1,fr[500001]=-1;for(int i=1;i<=500000;i++) fr[i]=i-1,to[i]=i+1;cin>>n;for(int i=1;i<=n;i++) {cin>>a[i];vis[a[i]]=1;mx=max(mx,a[i]);}for(int i=1;i<=n;i++)for(int j=to[0];j!=-1&&a[i]+j<=mx;j=to[j])if(vis[a[i]+j]) {del(j);no[j]=1;}for(int i=n;;i++){bool ok=1;for(int j=i;j<=mx;j+=i) if(no[j]){ok=0;break;}if(ok) return cout<<i<<'\n',0;}return 0;
}
2021牛客暑期多校训练营1 H-Hash Function(数学+FFT)相关推荐
- 2021牛客暑期多校训练营1 H Hash Function FFT\NTT
传送门 文章目录 题意: 思路: 题意: 给你一个数组aaa,你需要找一个最小的模数xxx,使得aaa中每个数都模上xxx之后互不相同. n≤5e5,ai≤5e5,ai!=ajn\le5e5,a_i\ ...
- 2021牛客暑期多校训练营9
2021牛客暑期多校训练营9 题号 题目 知识点 A A Math Challenge B Best Subgraph C Cells D Divide-and-conquer on Tree E E ...
- 2021牛客暑期多校训练营5
2021牛客暑期多校训练营5 题号 题目 知识点 A Away from College B Boxes 概率 C Cheating and Stealing D Double Strings 线性d ...
- 2021牛客暑期多校训练营4
2021牛客暑期多校训练营4 题号 题目 知识点 A Course B Sample Game C LCS D Rebuild Tree E Tree Xor 思维+线段树 F Just a joke ...
- 2021牛客暑期多校训练营3
2021牛客暑期多校训练营3 题号 题目 知识点 A Guess and lies B Black and white C Minimum grid 二分图匹配 D Count E Math 数论+打 ...
- 2021牛客暑期多校训练营2
2021牛客暑期多校训练营2 题号 题目 知识点 A Arithmetic Progression B Cannon C Draw Grids D Er Ba Game E Gas Station F ...
- 2021牛客暑期多校训练营1
2021牛客暑期多校训练营1 题号 题目 知识点 难度 A Alice and Bob 博弈论 B Ball Dropping 计算几何 签到 C Cut the Tree D Determine t ...
- 2021牛客暑期多校训练营2,签到题CDFKI
2021牛客暑期多校训练营2 题号 标题 已通过代码 通过率 团队的状态 A Arithmetic Progression 点击查看 6/72 未通过 B Cannon 点击查看 34/104 未通过 ...
- 2021牛客暑期多校训练营1, 签到题DFBG
2021牛客暑期多校训练营1 题号 标题 已通过代码 通过率 团队的状态 A Alice and Bob 点击查看 1365/5586 通过(博弈论-打表) B Ball Dropping 点击查看 ...
- 【训练题66:状压暴力 | 子集dp】Greater Integer, Better LCM | 2021牛客暑期多校训练营5
题意 Greater Integer, Better LCM | 2021牛客暑期多校训练营5 给你 a,b,ca,b,ca,b,c ,你需要找到一对 x,yx,yx,y ,满足: lcm(a+x,b ...
最新文章
- 一个程序员眼中的好UI
- JavaWeb:HttpServletResponse和HttpServletRequest
- php动态网页设计教材,PHP动态网页设计(第2版)
- pandas拉长dataframe
- SQLite入门笔记
- android手机连接PC后怎样切换为U 盘模式
- 配置kafka Server
- spring 读取配置文件
- 安卓编解码的分辨率问题
- Flask留言板Demo
- 土方回填施工方案范本_土方回填施工方案范本
- vbox虚拟机添加硬盘
- 鸡小德手机小常识 如何鉴定手机是否为行货
- 【毕业设计】基于机器学习的餐厅销量预测 -大数据 python
- 想要搭建建基于Nodejs的网站怎么做
- 想考数据库工程师?你需要了解这些
- OpenAI CEO Sam Altman:巨型 AI 模型时代即将终结!
- DTAS-电机机壳与端盖止口垂直度对电机气隙影响
- 09internet 协议安全问题
- 计算机跟广告设计那个学容易,学广告设计与制作用什么笔记本电脑好?
热门文章
- 爱卡创誓记java刷钱_【178创誓记】快速升级:40到50级只需要两天的黄金刷
- java collator_Java Collator compare(String, String)用法及代码示例
- c语言三目运算符_C语言中的三目运算符是啥?有何用处?
- Hadoop 中zoo_0基础如何入门HADOOP
- php绘制饼图,php怎么绘制饼图?
- python——学习笔记2
- msf payload php,Metasploit(四)--Msfpayload命令
- Java当中 文件得输入流 输出流
- 2019年第十届蓝桥杯国赛B组试题E-路径计数-dfs(坑题)
- AcWing 1234. 倍数问题