[CSP-S模拟测试]:math(裴蜀定理)
2024-09-03 04:56:09
题目传送门(内部题22)
输入格式
第一行有$2$个整数$n,k$。
第二行有$n$个正整数$a_i$。
输出格式
第一行有一个整数$s$,表示可以生成的非负整数的个数。
第二行有$s$个可以生成的非负整数。
样例
样例输入:
2 8
4 12
样例输出:
2
0 4
数据范围与提示
样例解释:
有无穷种方案可以得到$x=0$,例如:
$b_1=0$、$b_2=0$,$b_1=2$、$b_2=0$,$b_1=1$、$b_2=1$等等。
有无穷种方案可以得到$x=4$,例如:
$b_1=1$、$b_2=0$,$b_1=1$、$b_2=2$,$b_1=3$、$b_2=4$等等。
更多输入输出样例请见选手下发文件夹。
数据范围:
对于所有数据,$1\leqslant n\leqslant 5\times {10}^5,1\leqslant k\leqslant {10}^6,1\leqslant a_i\leqslant {10}^9$。
题解
利用裴蜀定理(找规律)可以发现所有能生成的数都是$k$和所有$a_i$的$gcd$且比$k$小,于是我们就$A$掉这道题了。
时间复杂度:$\Theta(n)$。
期望得分:$100$分。
实际得分:$100$分。
代码时刻
#include<bits/stdc++.h>
using namespace std;
int k,x,g,i;
main()
{
cin>>x>>k;
g=k;
while(cin>>x)g=__gcd(g,x);
cout<<k/g<<endl;
while(i<k)cout<<i<<' ',i+=g;
}
rp++
最新文章
- maven学习(下)利用Profile构建不同环境的部署包
- 谈谈UI架构设计的演化
- excel 转换日期
- javascript的switch的使用注意
- [PHP知识点乱炖]四、全局变量——小偷从良记
- C++ 之旅:前言
- sudo密码错误的解决办法
- linux设置环境变量
- hdu--1258--Sum It Up(Map水过)
- ios初体验<; 运用属性传值,登录>;
- js函数的作用域与this指向
- Spring Cloud:多环境配置、eureka 安全认证、容器宿主机IP注册
- Shell脚本之grep
- nginx反向代理-解决前端跨域问题
- 前端自动化构建工具 gulp 学习笔记 一、
- Javascript - ExtJs - Itemselector
- Chapter5 生长因子、受体和癌症
- Ubuntu 14.04 安装 Xilinx ISE 14.7 全过程(转)
- 【062有新题】OCP 12c 062出现大量之前没有的新考题-16
- SocketServer源码学习补充