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的更多相关文章

  1. [校内训练20_01_22]ABC

    1.给出序列A,求序列B,使得bi|ai,lcm(b1,b2,...,bn)=lcm(a1,a2,...,an)且字典序最小. 可以发现,对于某个质数p,它有一个最大的次数k,将pk放在尽可能靠后且能 ...

  2. [校内训练20_01_20]ABC

    1.问有多少个大小为N的无标号无根树,直径恰好为L.$N,L \leq 200$ 2.问一个竞赛图中有多少个长度为3.4.5的环.$N \leq 2000$ 3.给出一些直线和单个点A,问这些直线的交 ...

  3. [校内训练20_01_17]ABC

    1.平面上每次加入直角边平行于坐标轴的等腰直角三角形,每次询问某个点被覆盖了多少次. 大常数算法:O(nlog^2) #include<bits/stdc++.h> using names ...

  4. [4.14校内训练赛by hzwer]

    来自FallDream的博客,未经允许,请勿转载,谢谢. hzwer又出丧题虐人 4道noi....        很奇怪 每次黄学长出题总有一题我做过了. 嗯题目你们自己看看呗 好难解释 ----- ...

  5. [2017.4.7校内训练赛by hzwer]

    来自FallDream的博客,未经允许,请勿转载,谢谢. 报警啦.......hzwer又出丧题虐人啦..... 4道ctsc...有一道前几天做过了,一道傻逼哈希还wa了十几次,勉强过了3题..我好 ...

  6. [3.24校内训练赛by hzwer]

    来自FallDream的博客,未经允许,请勿转载,谢谢. ----------------------------------------------------------------------- ...

  7. 19_04_19校内训练[Game]

    题意 给出n,等概率地生成一个1~n的数列.现在有n个人从左到右站成一排,每个人拿有当前数列位置上的数字,并且一开始都不知道数字是多少(但知道n是多少).从左到右让每个人进行如下选择: 1.选择保留自 ...

  8. 19_04_02校内训练[deadline]

    题意 给出一个二分图,左边为A集合,右边为B集合,要求把A集合中每一个点染为黑白两色中的一种,B集合中的颜色已定.染色后对于原本相邻且颜色相同的点,建立新的二分图,即得到了两个新的二分图,它们是独立的 ...

  9. 平面图转对偶图&19_03_21校内训练 [Everfeel]

    对于每个平面图,都有唯一一个对偶图与之对应.若G‘是平面图G的对偶图,则满足: G'中每一条边的两个节点对应着G中有公共边的面,包括最外部无限大的面. 直观地讲,红色标出来的图就是蓝色标出的图的对偶图 ...

随机推荐

  1. Arcgis api for javascript学习笔记(3.2版本) - 匀速行驶轨迹动画效果

    一.前言 有这样一个需求:已知某条线上的n个点的经纬度数组 ,实现物体运行轨迹. 如果这些点中两个距离很近,那么我们可以用一个定时器在地图上每次重新画一个点,这样肉眼看到这个点上的运动效果,如下图代码 ...

  2. goasp-onvif实现nvr server问题点滴

    参考了:https://blog.csdn.net/saloon_yuan/article/details/24901597,本文以原贴为基础做了一些修改,非常感谢原作者.   1:开发框架搭建    ...

  3. JMeter分布式负载测试(吞吐量控制器)

    在本节中,我们将学习如何使用吞吐量控制器在JMeter中创建分布式负载测试计划. 出于测试目的,我们将在我们网站 www.yiibai.com 的URL下的某些网页上创建分布式负载.这些网页包括: 主 ...

  4. docker 挂载目录挂载不上**

    最近做项目做一个shared Dynamodb, 使用docker挂载一个image,发现怎么都挂载不上, 使用 $ pwd E:\Work\Aws\git\schema\dynamodb\local ...

  5. Java8 Date API

    一 .Clock 时钟 Clock类提供了访问当前日期和时间的方法,Clock是时区敏感的,可以用来取代 System.currentTimeMillis() 来获取当前的微秒数.某一个特定的时间点也 ...

  6. Visual Studio 2019使用docker开发(vsdbg的问题)

    前言 vsdbg在国内下载的速度真的很慢,借助迅雷也没办法起飞. 这里还是来探讨下如何用迅雷进行下载以后安装操作. 遇到的状况 在使用Visual Studio 2019进行开发调试(https:// ...

  7. Z字形变换 leetcode 6

    一.按行存储 1.解题思路 1.通过当前行的不断上下循环移动 2.将字符按序存放入vector中 3.最后再按行取出 2.代码及注释 class Solution { public: string c ...

  8. MementoPattern(备忘录模式)-----Java/.Net

    备忘录模式(Memento Pattern)保存一个对象的某个状态,以便在适当的时候恢复对象.备忘录模式属于行为型模式.

  9. 程序员初学者参考 ---懂得基础语法后如何做一个自己的case?

    对于很多人来说,我懂java语法,甚至面向对象的特性啦这些都是有了解的,但我就是不会做项目,其实项目真有那么难吗? 对于基础不牢固的人来说,我还不会这个基础点,那个还没学呢,你让我做个项目,我保证做不 ...

  10. 人生苦短,我用Python(6)

    1.分隔.合并字符串 分隔字符串是把字符串分隔为列表,而合并字符串是把列表合并为字符串,分割字符串和合并字符串可以看作是互逆操作. (1)分隔字符串 字符串对象得split()方法可以实现字符串分隔, ...