[CSP-S模拟测试]:math(裴蜀定理)
题目传送门(内部题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++
[CSP-S模拟测试]:math(裴蜀定理)的更多相关文章
- HDU 6444 Neko's loop ( 2018 CCPC 网络赛 && 裴蜀定理 && 线段树 )
题目链接 题意 : 给出一个 n 个元素的环.可以任意选择起点.选完起点后.可以行走 m 步.每次前进 k 个单位.所走到的点将产生正或负贡献.问你一开始得准备多少才能使得初始资金加上在环上获取最大利 ...
- [洛谷P4549] [模板] 裴蜀定理
18.10.03模拟赛T1. 出题人xcj(Mr.Handsome)十分良心,给了一道送分题...... 互测题好久没有出现送分题了.xcj真棒. 题目传送门 幸亏之前看过,否则真的是送分题都拿不到. ...
- 【BZOJ-2299】向量 裴蜀定理 + 最大公约数
2299: [HAOI2011]向量 Time Limit: 10 Sec Memory Limit: 256 MBSubmit: 1118 Solved: 488[Submit][Status] ...
- 【BZOJ-1441】Min 裴蜀定理 + 最大公约数
1441: Min Time Limit: 5 Sec Memory Limit: 64 MBSubmit: 471 Solved: 314[Submit][Status][Discuss] De ...
- BZOJ-2257 瓶子和燃料 分解因数+数论方面乱搞(裴蜀定理)
一开始真没想出解法...后来发现那么水.... 2257: [Jsoi2009]瓶子和燃料 Time Limit: 10 Sec Memory Limit: 128 MB Submit: 970 So ...
- 【BZOJ】1441: Min(裴蜀定理)
http://www.lydsy.com/JudgeOnline/problem.php?id=1441 这东西竟然还有个名词叫裴蜀定理................ 裸题不说....<初等数 ...
- BZOJ 2257: [Jsoi2009]瓶子和燃料 裴蜀定理
2257: [Jsoi2009]瓶子和燃料 Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://www.lydsy.com/JudgeOnline/p ...
- BZOJ 2257: [Jsoi2009]瓶子和燃料【数论:裴蜀定理】
2257: [Jsoi2009]瓶子和燃料 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 1326 Solved: 815[Submit][Stat ...
- 【Wannafly挑战赛22A计数器】【裴蜀定理】
https://www.nowcoder.com/acm/contest/160/A 题目描述 有一个计数器,计数器的初始值为0,每次操作你可以把计数器的值加上a1,a2,...,an中的任意一个整数 ...
随机推荐
- NaN、null、undefined的那些事
一.NaN , NaN, 'abc', false] let newArray = JSON.parse(JSON.stringify(arr)) // [1, null, 'abc', false] ...
- redis连接报错:MISCONF Redis is configured to save RDB snapshots, but it is currently not able to...
连接redis报错: MISCONF Redis is configured to save RDB snapshots, but it is currently not able to persis ...
- Learning OSG programing---Multi Camera in Multi window 在多窗口中创建多相机
这个例子演示了在多个窗口中创建多个相机,函数的代码如下: void multiWindowMultipleCameras(osgViewer::Viewer& viewer,bool mult ...
- vc code 一个非常不错的插件
https://marketplace.visualstudio.com/items?itemName=CoenraadS.bracket-pair-colorizer 这个是地址,前提下是安装了vc ...
- java调用数据库中的函数和存储过程
1.调用函数 {?= call <procedure-name>[(<arg1>,<arg2>, ...)]} {call <procedure-name&g ...
- python3入门之基础语法
Python 是一个高层次的结合了解释性.编译性.互动性和面向对象的脚本语言.Python 的设计具有很强的可读性,相比其他语言经常使用英文关键字,其他语言的一些标点符号,它具有比其他语言更有特色语法 ...
- #python# 代理过程中遇到的error
做一下总结 urllib.error.HTTPError: HTTP Error 503: Too many open connections TimeoutError: [WinError 1006 ...
- CSS3中resize属性
说明: resize属性是指定一个元素是否可由用户调整大小的. 语法: resize:none | both | horizontal | vertical none:用户不可一调整元素的尺寸(默认值 ...
- ES6新增关键字let与var的区别
最近看了很多文章,偶然间看到ES6中新增了一个关键字 let ,它具有与 var 关键字相似的功能.一开始使用它时,发现它让我对之前一些习以为常的东西产生了怀疑. 下面先让我们看看它和 var 之间用 ...
- Linux下svn回滚
方法1: 用svn merge 1) 先 svn up,保证更新到最新的版本,如20: 2) 然后用 svn log ,查看历史修改,找出要恢复的版本,如10 .如果想要更详细的了解情况,可以使用sv ...