fft

#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
using namespace std;
#define ld double
ld pi=acos(-1.0);   //注意π的精度
typedef __int64 ll;const int N=1e6+100;
struct Complex
{double r,i;Complex(double rr=0,double ii=0){r=rr;i=ii;}Complex operator +(const Complex &x)const{return Complex(r+x.r,i+x.i);}Complex operator -(const Complex &x)const{return Complex(r-x.r,i-x.i);}Complex operator *(const Complex &x)const{return Complex(r*x.r-i*x.i,i*x.r+r*x.i);}
};void Rader(Complex y[], int len) {for (int i = 1, j = len >> 1, k; i < len; j += k, i++) {if (i < j) swap(y[i], y[j]);for(k = len >> 1; j & k; k >>= 1) j ^= k;}
}
void FFT(Complex y[],int len,int on)
{Rader(y,len);for(int h=2;h<=len;h<<=1)//分治后计算长度为h的DFT{Complex wn(cos(on*2*pi/h),sin(on*2*pi/h));//单位复根e^(2*PI/m)用欧拉公式展开for(int j=0;j<len;j+=h){Complex w(1,0);//旋转因子for(int k=j;k<(j+h/2);k++){Complex u=y[k];Complex t=w*y[k+h/2];y[k]=u+t; y[k+h/2]=u-t;//蝴蝶合并操作w=w*wn;//更新旋转因子}}}if(on==-1)for(int i=0;i<len;i++) y[i].r/=len;
}
Complex a1[N*4];int sta[N],top;
int ans[N],cnt;
int n,m;
int vis[N];void getvis(){memset(vis,0,sizeof(vis));vis[0]=1;for(int i=0;i<top;i++)if(!vis[sta[i]]){int u=sta[i];for(int j=u;j<=m;j+=u){vis[j]=1;}}
}void getfft(){int len=1;while(len<=2*m)len<<=1;memset(a1,0,sizeof(a1));for(int i=0;i<=m;i++)if(vis[i]){a1[i].r=1;}FFT(a1,len,1);for(int i=0;i<len;i++)a1[i]=a1[i]*a1[i];FFT(a1,len,-1);for(int i=0;i<=m;i++)vis[i]=(ll)(a1[i].r+0.5);
}void pri(int ans[N],int n){for(int i=0;i<n;i++){printf("%d%c",ans[i],i==n-1?'\n':' ');}
}int main(){#ifdef DouBifreopen("in.cpp","r",stdin);#endif // DouBiwhile(scanf("%d%d",&n,&m)!=EOF){top=0;for(int i=0;i<n;i++){int a;scanf("%d",&a);sta[top++]=a;}getvis();//pri(vis,m+1);getfft();//pri(vis,m+1);for(int i=1;i<=m;i++)if(vis[i]){top--;}if(top==0){printf("YES\n");cnt=0;for(int i=1;i<=m;i++)if(vis[i]==2){ans[cnt++]=i;}printf("%d\n",cnt);pri(ans,cnt);}else {printf("NO\n");}}return 0;
}

CodeForces 286E相关推荐

  1. CodeForces 375D Tree and Queries

    传送门:https://codeforces.com/problemset/problem/375/D 题意: 给你一颗有根树,树上每个节点都有其对应的颜色,有m次询问,每次问你以点v为父节点的子树内 ...

  2. 「日常训练」Bad Luck Island(Codeforces Round 301 Div.2 D)

    题意与分析(CodeForces 540D) 是一道概率dp题. 不过我没把它当dp做... 我就是凭着概率的直觉写的,还好这题不算难. 这题的重点在于考虑概率:他们喜相逢的概率是多少?考虑超几何分布 ...

  3. 【codeforces 812C】Sagheer and Nubian Market

    [题目链接]:http://codeforces.com/contest/812/problem/C [题意] 给你n个物品; 你可以选购k个物品;则 每个物品有一个基础价值; 然后还有一个附加价值; ...

  4. CodeForces 获得数据

    针对程序的输出可以看见 CodeForces :当输入.输出超过一定字符,会隐藏内容 所以:分若干个程序进行输入数据的获取 1. 1 for (i=1;i<=q;i++) 2 { 3 scanf ...

  5. codeforces水题100道 第二十七题 Codeforces Round #172 (Div. 2) A. Word Capitalization (strings)...

    题目链接:http://www.codeforces.com/problemset/problem/281/A 题意:将一个英文字母的首字母变成大写,然后输出. C++代码: #include < ...

  6. CodeForces 595A

    题目链接: http://codeforces.com/problemset/problem/595/A 题意: 一栋楼,有n层,每层有m户,每户有2个窗户,问这栋楼还有多少户没有睡觉(只要一个窗户灯 ...

  7. codeforces A. Jeff and Digits 解题报告

    题目链接:http://codeforces.com/problemset/problem/352/A 题目意思:给定一个只有0或5组成的序列,你要重新编排这个序列(当然你可以不取尽这些数字),使得这 ...

  8. Codeforces Round #506 (Div. 3)

    Codeforces Round #506 (Div. 3) 实习期间事不多,对div3 面向题解和数据编程了一波 A. Many Equal Substrings 题目链接 A题就是找后缀和前缀重合 ...

  9. Codeforces Round #417:E. FountainsSagheer and Apple Tree(树上博弈)

    Codeforces Round #417:E. FountainsSagheer and Apple Tree(树上博弈) 标签: codeforces 2017-06-02 11:41 29人阅读 ...

最新文章

  1. SaaS创业型企业如何打破销售瓶颈?
  2. windows api打开文件对话框
  3. Qt中使用C++的方式
  4. docker web程序本地化_Docker教程
  5. 这安全测试的面试题目也太简单了吧,分分钟入职成功
  6. 如何安全的在不同工程间安全地迁移asset数据?三种方法
  7. ruby简单的基本 6
  8. 设计模式——3.观察者模式
  9. 智能会议系统(33)---WebRTC学习之四:最简单的语音聊天
  10. 杭电1287破译密码
  11. 解决flex打包成exe之后不能升级的问题
  12. 2015,鬼王Xun和GGL比赛,带给我们无尽的欢乐
  13. Python中的抽象
  14. LRUCache和FastLRUCache实现分析
  15. python 期末考试复习题(带答案)
  16. 2019年最好的7个人工智能聊天机器人
  17. JAVANBA论坛系统计算机毕业设计Mybatis+系统+数据库+调试部署
  18. java邮箱实现忘记修改密码
  19. Python 报错Process finished with exit code -1073740791 (0xC0000409)解决方法
  20. 计算机音乐谱子 追光者,岑宁儿《追光者》简谱

热门文章

  1. [Wndows安全设置]Windows 2000 安全检查清单
  2. 虚拟机不能上网,ifconfig后只有lo,没有ens33等信息
  3. Springboot毕业设计毕设作品,微信图书商城小程序系统 开题报告
  4. 【云原生 | 从零开始学Docker】六、如何写出自己的镜像——Docker file
  5. 用pm2在本地部署服务器node项目,利用pm2部署多个node.js项目的配置教程
  6. 深入探索:单元测试之Assertions
  7. Android O 功能和 API
  8. Java入门第82课——StringBuilder的append方法
  9. jquery的append方法无效
  10. 拉绳位移传感器的抗疲劳测试达到多少?