Sicily 2501.算算式
来源:互联网 发布:sql 升序排列 编辑:程序博客网 时间:2024/04/26 04:24
几道比赛题都是数论题,不会做,只好上网搜,然后自己整理一下。一些解题方法非本人原创。
不用试,朴素法肯定超时。
做这种题还是先学点儿数论吧。。。
(1)要计算只包含加法、减法和乘法的整数表达式除以正整数n的余数,可以在每步计算之后对n取余,结果不变。
(2)费马小定理:假如p是质数,且gcd(a,p)=1(即a,p互质),那么
注意到9901是质数(肯定要是了,不然1s完成怎么破?)所以有
所以9900为一个周期。
原式变为
设F(i)为n的前i次方和模除9901的结果。则有
F(1)=n%9901;
F(i)=[n*F(n-1)+F(1)]%9901
分析到此,代码已经呼之欲出了吧:
#include <iostream>using namespace std;int main(){ int n,k,F[9902]; cin >> n >> k; F[1] = n % 9901; for ( int i = 2; i < 9901 && i <= k; i++ ) F[i] = ( n * F[i-1] + F[1] ) % 9901; cout << ( F[9900]*(k/9900)+F[k%9900] )%9901<< endl; return 0;}
- Sicily 2501. 算算式
- Sicily 2501.算算式
- Sicily 2501. 算算式
- sicily 2501. 算算式
- Sicily 2501 算算式
- 2501. 算算式
- 2501. 算算式
- Sicily2501 算算式(费马小定理)
- 算算时间
- 算算退休后能拿多少钱?
- 算算你的IQ
- 算算收入排名
- 算算男女生比例
- 算算你的时间差
- [vijos1052] 贾老二算算术
- 咱也来算算英文单词的“分数”
- 算算你能活多久?
- 算算你啥时死掉
- MFC消息大全
- 优化JVM参数提高eclipse运行速度
- java获得项目绝对路径
- java并发库之Executors常用的创建ExecutorService的几个方法说明
- POJ 1195 Mobile phones
- Sicily 2501.算算式
- 距离
- 下载检测私有API软件
- 7_5复数模板类
- poj1005---I Think I Need a Houseboat
- drop 掉没用户下的表、索引
- QSplitter handles(分隔条)
- 国内主流比价网站测试分析报告
- 今天subclipse升级了下,然后每次ci,up时都要输入密码解决