[校内训练20_01_19]ABC
1.SB题
2.有n个点,m条边,每次加入一条边,你要挑出一些边,使得形成的图每个点度数都为奇数,且最长的边最短。
3.给一个N次多项式,问有多少个质数在任意整数处的点值都是p的倍数,输出它们。$N \leq 1000,|a_i| \leq 10^9$
问题等价于这个多项式在mod p意义下存在因数(x-i),i取遍所有整数。
那么p满足要求,等价于这个N次多项式存在因数$x(x-1)(x-2)...(x-p+1)=x^p-x(mod p)$
因此,p要么是系数gcd的质因数,要么在N以内。
#include<bits/stdc++.h>
using namespace std;
const int maxn=1E5+;
typedef long long int ll;
ll n,a[maxn],ans[maxn];
const int limit=;
int size,prime[maxn],tmp[maxn],tmp1[maxn],tmp2[maxn];
bool vis[maxn];
void init()
{
for(int i=;i<=limit;++i)
{
if(!vis[i])
prime[++size]=i;
for(int j=;j<=size&&prime[j]*i<=limit;++j)
{
vis[prime[j]*i]=;
if(i%prime[j]==)
break;
}
}
}
inline int get(ll x,int mod)
{
ll sum=;
for(int i=n;i>=;--i)
sum=(sum*x%mod+a[i]%mod+mod)%mod;
return sum;
}
inline bool check(int x)
{
if(a[]%x!=)
return false;
for(int i=;i<=;++i)
if(get(prime[i],x)!=)
return false;
for(int i=;i<=;++i)
if(get(-i+,x)!=)
return false;
return true;
}
inline int get(ll x)
{
int g=;
for(ll i=;i*i<=x;++i)
while(x%i==)
{
tmp[++g]=i;
x/=i;
}
if(x>=)
tmp[++g]=x;
for(int i=;i<=size;++i)
if(prime[i]<=n)
tmp[++g]=prime[i];
sort(tmp+,tmp+g+);
g=unique(tmp+,tmp+g+)-tmp-;
return g;
}
inline int gcd(int x,int y)
{
if(y==)
return x;
return x%y==?y:gcd(y,x%y);
}
void solve()
{
init();
ll V=a[];
for(int i=;i<=n;++i)
V=gcd(V,a[i]);
int g=get(abs(V));
for(int i=;i<=g;++i)
if(check(tmp[i]))
cout<<tmp[i]<<endl;
}
int main()
{
freopen("poly.in","r",stdin);
freopen("poly.out","w",stdout);
ios::sync_with_stdio(false);
cin>>n;
for(int i=n;i>=;--i)// 反过来
cin>>a[i];
solve();
return ;
}
[校内训练20_01_19]ABC的更多相关文章
- [校内训练20_01_22]ABC
1.给出序列A,求序列B,使得bi|ai,lcm(b1,b2,...,bn)=lcm(a1,a2,...,an)且字典序最小. 可以发现,对于某个质数p,它有一个最大的次数k,将pk放在尽可能靠后且能 ...
- [校内训练20_01_20]ABC
1.问有多少个大小为N的无标号无根树,直径恰好为L.$N,L \leq 200$ 2.问一个竞赛图中有多少个长度为3.4.5的环.$N \leq 2000$ 3.给出一些直线和单个点A,问这些直线的交 ...
- [校内训练20_01_17]ABC
1.平面上每次加入直角边平行于坐标轴的等腰直角三角形,每次询问某个点被覆盖了多少次. 大常数算法:O(nlog^2) #include<bits/stdc++.h> using names ...
- [4.14校内训练赛by hzwer]
来自FallDream的博客,未经允许,请勿转载,谢谢. hzwer又出丧题虐人 4道noi.... 很奇怪 每次黄学长出题总有一题我做过了. 嗯题目你们自己看看呗 好难解释 ----- ...
- [2017.4.7校内训练赛by hzwer]
来自FallDream的博客,未经允许,请勿转载,谢谢. 报警啦.......hzwer又出丧题虐人啦..... 4道ctsc...有一道前几天做过了,一道傻逼哈希还wa了十几次,勉强过了3题..我好 ...
- [3.24校内训练赛by hzwer]
来自FallDream的博客,未经允许,请勿转载,谢谢. ----------------------------------------------------------------------- ...
- 19_04_19校内训练[Game]
题意 给出n,等概率地生成一个1~n的数列.现在有n个人从左到右站成一排,每个人拿有当前数列位置上的数字,并且一开始都不知道数字是多少(但知道n是多少).从左到右让每个人进行如下选择: 1.选择保留自 ...
- 19_04_02校内训练[deadline]
题意 给出一个二分图,左边为A集合,右边为B集合,要求把A集合中每一个点染为黑白两色中的一种,B集合中的颜色已定.染色后对于原本相邻且颜色相同的点,建立新的二分图,即得到了两个新的二分图,它们是独立的 ...
- 平面图转对偶图&19_03_21校内训练 [Everfeel]
对于每个平面图,都有唯一一个对偶图与之对应.若G‘是平面图G的对偶图,则满足: G'中每一条边的两个节点对应着G中有公共边的面,包括最外部无限大的面. 直观地讲,红色标出来的图就是蓝色标出的图的对偶图 ...
随机推荐
- MySQL Server逻辑架构
1.MySQL基础 MySQL是一个开放源代码的关系数据库管理系统.原开发者为瑞典的MySQL AB公司,最早是在2001年MySQL3.23进入到管理员的视野并在之后获得广泛的应用. 2008年My ...
- Excel快速填充
利用单元格右下角填充句柄进行填充 然后选择快速填充 利用数据面板的快速填充功能(ctrl+e) 年月日三列不能同时填充 只能够一列一列的填充 类别取第一列 级别取第二列 但是由于第一个的编号有两个“1 ...
- Angular 利用 marked.js 添加 Markdown + HTML 同时渲染的 Pipe
背景 最近在公司开发的一个项目需要在 Angular 上展示图文,并且需要同时支持 Markdown 和 HTML 对于同时支持 Markdown 和 HTML ,应该要分为编辑和渲染两部分考虑. 对 ...
- java_学生成绩管理系统
//信1805-2 20183670 王云鹏 package student; import java.util.Scanner; public class ScoreManagement { sta ...
- Ssh_key免秘钥登录
一,环境准备 1.1 操作系统 [root@manager ~]# cat /etc/redhat-release CentOS release 6.7 (Final) [root@manager ~ ...
- selenium爬取驾考宝典题目
要求 [x] Python3+ [x] Chrome驱动并已配置环境变量 [x] Selenium ## 研究页面 发现驾考宝典的科目四页面URL都是以 https://www.jiakaobaodi ...
- Kubernetes 会不会“杀死” DevOps?
作者丨孙健波(天元) 阿里巴巴技术专家 导读:DevOps 这个概念最早是在 2007 年提出的,那时云计算基础设施的概念也才刚刚提出没多久,而随着互联网的逐渐普及,应用软件的需求爆发式增长,软件开 ...
- Dockerfile文件记录(用于后端项目部署)
Dockerfile文件记录(用于后端项目部署) 本教程依据个人理解并经过实际验证为正确,特此记录下来,权当笔记. 注:基于linux操作系统(敏感信息都进行了处理) 此文结合另一篇博客共同构成后端服 ...
- list绑定
/** * 首页信息查询的回调函数 * @param 返回值 */ M_Main.ajaxCallBack = function (data){ var dataSource = data.resiC ...
- java小项目之:植物大战僵尸,这个僵尸有点冷!内附素材源码
Java小项目之:植物大战僵尸! <植物大战僵尸>是由PopCap Games开发的一款益智策略类单机游戏,于2009年5月5日发售,这款游戏可谓是无人不知无人不晓. 在我身边,上到40岁 ...