数论,对于我只一个初中生来说,确实比较需要智商。。。最近老师布置数论题,我就在努力奋斗(虽然决定要马上写替罪羊树),替罪羊树是什么?我也不知道,只知道是一个平衡树,怎么写?看这篇博客吧(写这道poj3070时还木有写:http://blog.csdn.net/cnyali_ljf/article/details/52613724)
大概就这样吧,然后就木有然后了,怪我喽!!!
题目是这样子的:题意很明确,求第m个斐波那契数MOD10000的结果
easy到了极点,我居然都没有写矩阵快速幂。。。直接水过(wea!!!)
代码如下:一看就可以看懂滴,wea!!!
#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<algorithm>
#include<cmath>
#include<cstring>
#include<queue>
#include<set>
#include<map>
#include<vector>
#include<ctime>
using namespace std;
#define REP(i, a, b) for(int i = (a), _end_ = (b);i <= _end_; ++i)
typedef long long LL;
int m[3][3];
int a[100050];
void f() {
a[0] = 0;
a[1] = 1;
REP(i, 2, 100050)
a[i] = (a[i - 1] + a[i - 2]) % 10000;
}
int main() {
int n;
while (scanf("%d", &n) != EOF) {
if(n == -1)
break;
f();
printf("%d\n", a[n % 15000]);
}
return 0;
}