博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【CodeForces】901 B. GCD of Polynomials
阅读量:6088 次
发布时间:2019-06-20

本文共 753 字,大约阅读时间需要 2 分钟。

【题目】

【题意】给定n,要求两个最高次项不超过n的多项式(第一个>第二个),使得到它们GCD的辗转次数为n。n<=150。

【算法】构造

【题解】辗转n次是最坏情况——每次辗转至少会使被模数的最高次项变到模数的最高次项-1,也就是必须构造两个多项式满足这种最坏情况。

eg.n=5,(5,4),(4,3),(3,2),(2,1),(1,0),(0,0)。

为了构造最坏情况,考虑模仿斐波那契数列进行构造:

p(0)=1,p(1)=x,p(n)=x*p(n-1)±p(n-2)。

这个数列的特点是,p(n)%p(n-1)=p(n-2),那么只要使用这个数列的pn和pn-1就能达到最坏情况。

其中±的意思是使系数满足要求,观察可知等价于%2。

#include
#define rep(i,j,k) for(int i=j;i<=k;i++)int f[200][200],x=1,n;int main(){ scanf("%d",&n); f[0][0]=f[1][1]=1; rep(i,2,n){ x=1-x; rep(j,1,i)f[x][j]=(f[x][j]+f[1-x][j-1])%2; } printf("%d\n",n); rep(i,0,n)printf("%d ",f[x][i]);puts(""); printf("%d\n",n-1); rep(i,0,n-1)printf("%d ",f[1-x][i]); return 0;}
View Code

 

转载于:https://www.cnblogs.com/onioncyc/p/8125286.html

你可能感兴趣的文章
短网址助力下的短信营销要做到的三点
查看>>
事务机制和锁机制
查看>>
酷派8705救砖
查看>>
视频会议系统有哪些部分组成?
查看>>
第四周 学习记录
查看>>
C# 完美实现×××控制
查看>>
Issue和PR标签(Kubernetes社区Issue和PR标签解释)
查看>>
老子道德经之利他主义
查看>>
You don't have permission to access /index.php on this server.
查看>>
xtrabackup 使用方法
查看>>
python 实现线程池
查看>>
监控 SQL Server 的运行状况
查看>>
C# Socket编程
查看>>
提取一个新方法
查看>>
分享squid缓存服务器配置-之conf配置文件的详细介绍
查看>>
FDISK(8)
查看>>
基于jQuery很牛X的批量上传插件
查看>>
text简单使用
查看>>
scala基础库分析
查看>>
面向对象2
查看>>