#211. 数列
来源:互联网 发布:淘宝店铺首页全屏轮播 编辑:程序博客网 时间:2024/06/13 04:41
首先假设m是质数,则由于每个数都有自己的逆元,每种前缀积都可以两两互相转化(b=a*(inv[a]*b%m)%m)。
然后考虑m不为质数的情况,发现数列中相邻的两个前缀积a,b满足gcd(a.m)|gcd(b,m)。因此我们把gcd(a,m)==gcd(b,m)的数都堆成一坨,当m为质数处理,gcd(a,m)<gcd(b,m)的情况只要在原来的基础上乘以gcd(b,m)/gcd(a,m)就行了。
接下来要让数列最长,我们把每坨数都看成一个权值为数的个数的点,建一个DAG跑一跑,就直接A掉了。
0 0
- #211. 数列
- 数列
- 数列
- 数列
- 数列!!!
- 数列
- 数列
- 数列
- 数列
- 数列
- 数列
- 数列
- 数列
- 数列
- 数列
- 数列
- 数列
- 数列
- iOS 视图控制器转场详解
- lintcode 97 二叉树的最大深度
- 【poj1741】Tree
- ThreadLocal源码解析(一)
- 教程|没有博士学位,照样玩转TensorFlow深度学习
- #211. 数列
- 初探设计模式之单例模式
- 一个经典的java传递问题
- 递归算法
- 变量提升
- 【多线程】--线程同步
- 2017Google Codejam round1b Problem C. Pony Express
- 电商数据分析基础指标体系
- Configuring LabVIEW, LabVIEW DSC, NI Variable Engine, and Lookout to Work with the Windows Firewall