【HDOJ 1021】 Fibonacci Again (矩阵快速幂(裸))
来源:互联网 发布:拜特软件 编辑:程序博客网 时间:2024/05/19 11:50
【HDOJ 1021】 Fibonacci Again
没错 我又来发水题了。。。感觉做矩快会上瘾。。。这种原本绝壁超时的东西突然秒秒钟出来。。。这感觉。。。
爽 上代码
#include <iostream>#include <cstdio>#include <cstring>using namespace std;typedef struct Matrix Matrix;struct Matrix{ int mx[2][2]; void Out() { for(int i = 0; i < 2; ++i) { for(int j = 0; j < 2; ++j) printf("%d ",mx[i][j]); puts(""); } } void Init() { mx[0][0] = mx[0][1] = mx[1][0] = 1; mx[1][1] = 0; } void Emp() { mx[0][0] = mx[1][1] = 1; mx[0][1] = mx[1][0] = 0; } Matrix operator * (const Matrix a)const { Matrix x; memset(x.mx,0,sizeof(x.mx)); for(int i = 0; i < 2; ++i) for(int j = 0; j < 2; ++j) for(int k = 0; k < 2; ++k) x.mx[i][j] = (x.mx[i][j]+mx[i][k]*a.mx[k][j])%3; return x; }};bool pow(int n){ Matrix a,b; a.Emp(); b.Init(); while(n) { if(n&1) a = a*b; b = b*b; n >>= 1; } return !((a.mx[0][0]*7+a.mx[0][1])%3);}int main(){ int n; while(~scanf("%d",&n)) { printf("%s\n",pow(n)? "yes": "no"); } return 0;}
0 0
- 【HDOJ 1021】 Fibonacci Again (矩阵快速幂(裸))
- HDOJ 1021: Fibonacci Again
- HDOJ 1021 Fibonacci Again
- HDOJ 1021 Fibonacci Again
- HDOJ 1021 Fibonacci Again
- HDOJ 1021 Fibonacci Again
- HDOJ 1021 Fibonacci Again
- hdoj 1021 Fibonacci Again
- hdoj 1021 Fibonacci Again
- HDOJ 1021 Fibonacci Again
- hdoj 1021 Fibonacci Again
- HDOJ 1021 Fibonacci Again
- HDOJ 1021 Fibonacci Again
- 【HDOJ】【1021】Fibonacci Again
- HDOJ 1021 Fibonacci Again
- HDOJ 1021 Fibonacci Again
- HDOJ 1021 Fibonacci Again
- hdoj-【1021 Fibonacci Again】
- MYSQL 字符串函数
- hdu 1695 GCD (欧拉函数+容斥原理+线性筛法)
- DexClassLoader的使用
- 线段树 POJ2777 Count Color
- docker cloudstack issue
- 【HDOJ 1021】 Fibonacci Again (矩阵快速幂(裸))
- Http请求与响应
- 如何实现在遍历集合的过程中删除其中的元素
- 年总结(二):历经一年的蜕变
- java中的匿名内部类总结
- Linux free命令详解(转)
- cocos2dx android 打包环境配置 安装包下载
- HXD3机车的主要参数
- 28+打印并统计字符串的全排列和组合