CodeForces 286E
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相关推荐
- CodeForces 375D Tree and Queries
传送门:https://codeforces.com/problemset/problem/375/D 题意: 给你一颗有根树,树上每个节点都有其对应的颜色,有m次询问,每次问你以点v为父节点的子树内 ...
- 「日常训练」Bad Luck Island(Codeforces Round 301 Div.2 D)
题意与分析(CodeForces 540D) 是一道概率dp题. 不过我没把它当dp做... 我就是凭着概率的直觉写的,还好这题不算难. 这题的重点在于考虑概率:他们喜相逢的概率是多少?考虑超几何分布 ...
- 【codeforces 812C】Sagheer and Nubian Market
[题目链接]:http://codeforces.com/contest/812/problem/C [题意] 给你n个物品; 你可以选购k个物品;则 每个物品有一个基础价值; 然后还有一个附加价值; ...
- CodeForces 获得数据
针对程序的输出可以看见 CodeForces :当输入.输出超过一定字符,会隐藏内容 所以:分若干个程序进行输入数据的获取 1. 1 for (i=1;i<=q;i++) 2 { 3 scanf ...
- codeforces水题100道 第二十七题 Codeforces Round #172 (Div. 2) A. Word Capitalization (strings)...
题目链接:http://www.codeforces.com/problemset/problem/281/A 题意:将一个英文字母的首字母变成大写,然后输出. C++代码: #include < ...
- CodeForces 595A
题目链接: http://codeforces.com/problemset/problem/595/A 题意: 一栋楼,有n层,每层有m户,每户有2个窗户,问这栋楼还有多少户没有睡觉(只要一个窗户灯 ...
- codeforces A. Jeff and Digits 解题报告
题目链接:http://codeforces.com/problemset/problem/352/A 题目意思:给定一个只有0或5组成的序列,你要重新编排这个序列(当然你可以不取尽这些数字),使得这 ...
- Codeforces Round #506 (Div. 3)
Codeforces Round #506 (Div. 3) 实习期间事不多,对div3 面向题解和数据编程了一波 A. Many Equal Substrings 题目链接 A题就是找后缀和前缀重合 ...
- Codeforces Round #417:E. FountainsSagheer and Apple Tree(树上博弈)
Codeforces Round #417:E. FountainsSagheer and Apple Tree(树上博弈) 标签: codeforces 2017-06-02 11:41 29人阅读 ...
最新文章
- SaaS创业型企业如何打破销售瓶颈?
- windows api打开文件对话框
- Qt中使用C++的方式
- docker web程序本地化_Docker教程
- 这安全测试的面试题目也太简单了吧,分分钟入职成功
- 如何安全的在不同工程间安全地迁移asset数据?三种方法
- ruby简单的基本 6
- 设计模式——3.观察者模式
- 智能会议系统(33)---WebRTC学习之四:最简单的语音聊天
- 杭电1287破译密码
- 解决flex打包成exe之后不能升级的问题
- 2015,鬼王Xun和GGL比赛,带给我们无尽的欢乐
- Python中的抽象
- LRUCache和FastLRUCache实现分析
- python 期末考试复习题(带答案)
- 2019年最好的7个人工智能聊天机器人
- JAVANBA论坛系统计算机毕业设计Mybatis+系统+数据库+调试部署
- java邮箱实现忘记修改密码
- Python 报错Process finished with exit code -1073740791 (0xC0000409)解决方法
- 计算机音乐谱子 追光者,岑宁儿《追光者》简谱
热门文章
- [Wndows安全设置]Windows 2000 安全检查清单
- 虚拟机不能上网,ifconfig后只有lo,没有ens33等信息
- Springboot毕业设计毕设作品,微信图书商城小程序系统 开题报告
- 【云原生 | 从零开始学Docker】六、如何写出自己的镜像——Docker file
- 用pm2在本地部署服务器node项目,利用pm2部署多个node.js项目的配置教程
- 深入探索:单元测试之Assertions
- Android O 功能和 API
- Java入门第82课——StringBuilder的append方法
- jquery的append方法无效
- 拉绳位移传感器的抗疲劳测试达到多少?