[校内训练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中有公共边的面,包括最外部无限大的面. 直观地讲,红色标出来的图就是蓝色标出的图的对偶图 ...
随机推荐
- 使用 HttpClient 进行表单提交时,遇到的问题
问题 在开发微信支付的小微商户进件接口时,需要通过表单来上传身份证图片等数据.在微信支付接口文档也说明了,需要使用 multipart/form-data 的方式发送请求..NET 提供了 Multi ...
- Mysql(超级详细)
Mysql(超级详细) (黑小子-余) 一.Mysql介绍 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品.MySQL 是最流行的关系型数据库管理 ...
- Hyperledger Fabric动态配置Raft节点
Hyperledger Fabric动态配置Raft节点 最近看官方文档发现新的共识算法etcdRaft允许动态添加或删除排序节点,所以也花了一天时间操作了以下,写篇文章把整个过程记录一下. 初始网络 ...
- Webpack4不求人系列(1)
Webpack是一个现在Javascript应用程序的模块化打包器,在Webpack中JS/CSS/图片等资源都被视为JS模块,简化了编程.当Webpack构建时,会递归形成一个模块依赖关系图,然后将 ...
- 【题解】LOJ6060 Set(线性基)
[题解]LOJ6060 Set(线性基) orz gql 设所有数的异或和为\(S\),答案是在\(\max (x_1+S\and x_1)\)的前提下\(\min x_1\)输出\(x_1\) 转换 ...
- 洛谷$P2598\ [ZJOI2009]$狼和羊的故事 网络流
正解:网络流 解题报告: 传送门! 昂显然考虑最小割鸭$QwQ$,就考虑说每个土地要么属于羊要么属于狼,然后如果一条边上是栅栏一定是相邻两边所属不同. 所以考虑给所有羊向$S$连$inf$,所有狼向$ ...
- linux tomcat安装
一.下载tomcat包 下载tomcat包并上传至服务器中 解压文件: tar -zxvf apache-tomcat-8.5.47.tar.gz 为了后期程序的便于管理,我们还需要将Tomcat复制 ...
- Jenkins+ant+jmeter环境搭建
下载的工具版本: apache-jmeter-3.0 apache-ant-1.8.4 jenkins-2.46.3 之前用jmeter写了测试接口的脚本,运行及返回结果都正常,所以需要做的就是工具的 ...
- 在Mac/linux上查找(并终止)进程锁定特定端口的几种方法
前言 无论是做网站还是做产品,经常使用到杀死某个进程的方法.制作脚本并熟悉运用是一个非常节省时间的方法. 基本命令 查找: [sudo] lsof -i :3000 杀戮 kill -9 方法一 ...
- 大数据框架开发基础之Zookeeper入门
Zookeeper是Hadoop分布式调度服务,用来构建分布式应用系统.构建一个分布式应用是一个很复杂的事情,主要的原因是我们需要合理有效的处理分布式集群中的部分失败的问题.例如,集群中的节点在相互通 ...