博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
NEU OJ 1651 Great number
阅读量:6462 次
发布时间:2019-06-23

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

循环节是2000000016

字符串读入,用一下高精度对2000000016取个模,用一下快速幂就可以算出答案了。

#include 
#include
#include
using namespace std;const long long MOD = 1e9+7;long long mod1(char *a1,int b){ long long a[5000] = {
0}; long long c[5000] = {
0}; long long i, k, d; k = strlen(a1); for(i = 0; i < k; i++) a[i] = a1[k - i - 1] - '0'; d = 0; for(i = k - 1; i >= 0 ; i--) { d = d * 10 + a[i]; c[i] = d / b; d = d % b; } while(c[k - 1] == 0 && k > 1) k--; return d;}struct matrix{ long long m[2][2];}ans, base; matrix multi(matrix a, matrix b){ matrix tmp; for(int i = 0; i < 2; ++i) { for(int j = 0; j < 2; ++j) { tmp.m[i][j] = 0; for(int k = 0; k < 2; ++k) tmp.m[i][j] = (tmp.m[i][j] + a.m[i][k] * b.m[k][j]% MOD) % MOD; } } return tmp;}int fast_mod(int n) // 求矩阵 base 的 n 次幂{ base.m[0][0] = base.m[0][1] = base.m[1][0] = 1; base.m[1][1] = 0; ans.m[0][0] = ans.m[1][1] = 1; // ans 初始化为单位矩阵 ans.m[0][1] = ans.m[1][0] = 0; while(n) { if(n & 1) { ans = multi(ans, base); } base = multi(base, base); n >>= 1; } return ans.m[0][1];}char SS[1000];int main(){ int T; scanf("%d",&T); while(T--) { scanf("%s",SS); //printf("%d\n",mod1(SS,2000000016)); printf("%lld\n", fast_mod(mod1(SS,2000000016))%MOD); } return 0;}

 

转载于:https://www.cnblogs.com/zufezzt/p/4725351.html

你可能感兴趣的文章
java 猫 游戏,crazycat 围住神经猫-小游戏-Java源码 联合开发网 - pudn.com
查看>>
php等差数列,【教案】高中数学-《等差数列》详案展示
查看>>
php脚手架,thinkphp集成前端脚手架Vue-cli的教程图解
查看>>
php多维数组算法,PHP多维数组算法?
查看>>
flash as3与后台php交互用户注册例子,Flash AS3与后台通讯 PHP版
查看>>
php对大小写敏感,PHP大小写敏感规则
查看>>
java pkcs10,话说 类加载过程 第一篇
查看>>
matlab中如何使用help,MATLAB中如何使用help?怎样看matlab的help
查看>>
matlab的函数的代码,10 Matlab 函数与代码风格
查看>>
php日期语言,Php多语言日期:howto?
查看>>
php前台ajax商品遍历,jquery ajax加载数据前台渲染方式 不用for遍历的方法
查看>>
php openapi设计,OpenApi开放平台架构实践
查看>>
java 基本程序,基础 JAVA程序
查看>>
matlab中求解不等式的解,大神们,求个解多元一次不等式的代码,要所有整数解...
查看>>
php的算法是什么,算法是什么?
查看>>
discuz login.php,Discuz!登录,注册,退出接口.
查看>>
matlab 荷兰颜色,insar_matlab 荷兰Delft大学开发的insar(干涉合成孔径雷达)图像处理部分源代码 - 下载 - 搜珍网...
查看>>
Unix php平滑安装扩展,Linux下安装php的扩展scws
查看>>
PHP与java的servant,servant_英文阅读网
查看>>
android 编译java,Android 源码的编译
查看>>