A: 求近似值

时间限制: 1 s      内存限制: 128 MB

提交 我的状态

题目描述

求⌊(5–√+6–√)2n⌋⌊(5+6)2n⌋%9932017。

例如:n=1,(5–√+6–√)2(5+6)2=21.9544....,⌊(5–√+6–√)2⌋⌊(5+6)2⌋%9932017=21。

输入

第一行输入T,表示n的个数。(1<=T<=200000)

下面T行每行一个数,表示n。(0<=n<=10^18)

输出

按照题意输出答案。

样例输入

3
0
1
2

样例输出

1
21
481

题解:就是一个数学题目,将f(n)分解为两个互相关联的函数An和B(n);

通过矩阵求出最终的A(n)和B(n),问题就迎刃而解了;

#include<iostream>
#include<string.h>
#include<algorithm>
#define inf 9932017
#define ll long long
using namespace std;
struct mat{
ll p[2][2];
mat(){
memset(p,0,sizeof(p));
}
};
mat mul(mat A,mat B){
mat C;
for(int i=0;i<2;i++)
for(int j=0;j<2;j++)
for(int k=0;k<2;k++)
C.p[i][j]+=A.p[i][k]*B.p[k][j]%inf;
return C;
}
mat pow(mat A,ll n){
mat B;
B.p[0][0]=11;
B.p[1][0]=2;
while(n){
if(n&1)
B=mul(A,B);
A=mul(A,A);
n>>=1;
}
return B;
}
int main()
{
int T;
ll n;
scanf("%d",&T);
mat A;
A.p[0][0]=11; A.p[0][1]=60;
A.p[1][0]=2; A.p[1][1]=11;
while(T--)
{
scanf("%lld",&n);
if(!n)
printf("1\n");
else
printf("%lld\n",(2*pow(A,n-1).p[0][0]-1)%inf);//2An-1
}
return 0;
}

Just Oj 2017C语言程序设计竞赛高级组A: 求近似值(矩阵快速幂)的更多相关文章

  1. Just Oj 2017C语言程序设计竞赛高级组E: DATE ALIVE(二分匹配)

    E: DATE ALIVE 时间限制: 1 s      内存限制: 128 MB 提交 我的状态 题目描述 五河士道家里的精灵越来越多了,而每一个精灵都想和他有一个约会.然而五河士道却只有一个,无奈 ...

  2. Just Oj 2017C语言程序设计竞赛高级组D: 字符串最大表示(next数组)

    D: 字符串最大表示 时间限制: 1 s      内存限制: 128 MB 题目描述 有如下定义,abcnabcn表示字符串abc重复n次,例如abc2abc2表示abcabc. 给定一个字符串,求 ...

  3. 2014江西理工大学C语言程序设计竞赛高级组题解

    1001 Beautiful Palindrome Number 枚举回文数字前半部分,然后判断该数字是否满足,复杂度为O(sqrt(n))! 1002 Recovery Sequence  本题的核 ...

  4. 2017年江西理工大学C语言程序设计竞赛(高级组)

    问题 A: 求近似值 #include <stdio.h> #include <time.h> #include <stdlib.h> using namespac ...

  5. 2018年江西理工大学C语言程序设计竞赛(高级组) 三角平方数

    题目描述 三角数:形如图a,圆点摆放成等边三角形的数字,则为三角数. (图a) 平方数:形如图b,小方块摆放成正方形的数字,则为平方数. (图b) 那么如果一个数字既是三角形数又是平方数,则称为三角平 ...

  6. 2018年江西理工大学C语言程序设计竞赛高级组部分题解

    B Interesting paths 考察范围:组合数学 此题是机器人走方格的变种,n*m的网格,从(1,1)走到(n,m),首先可以明确,水平要走m-1格,竖直要走n-1格,则走到目的地的任意一条 ...

  7. 2018年江西理工大学C语言程序设计竞赛(初级组)一

     C语言竞赛初级组第一.二场答案:https://www.cnblogs.com/xingkongyihao/p/10046918.html  A: 逆序对 时间限制: 1 s      内存限制:  ...

  8. 2014江西理工大学C语言程序竞赛高级组

    Beautiful Palindrome Number 题意:求N里面有多少个符合要求的数字(数字要求:回文数,且前一半部分是不严格递增) 解法:打表 #include<bits/stdc++. ...

  9. 2017年江西理工大学C语言程序设计竞赛(初级组)

    问题 A: Petr的盒子(初) #include <iostream> #include <stdio.h> #include <algorithm> using ...

随机推荐

  1. 老师博客copy

    新闻 管理   Py西游攻关之基础数据类型   数据类型 计算机顾名思义就是可以做数学计算的机器,因此,计算机程序理所当然地可以处理各种数值.但是,计算机能处理的远不止数值,还可以处理文本.图形.音频 ...

  2. 深入理解JVM - 1 - Java内存区域划分

    作者:梦工厂链接:https://www.jianshu.com/p/7ebbe102c1ae来源:简书简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处. Java与C++之间有一堵 ...

  3. AD7729_双通道Sigma-Delta ADC

    sigma-delta adc的原理,就是通过一种结构把量化噪声调制到频谱的高端,也即对量化噪声而言,sdm是一个高通滤波器,而对基带信号则等价为一个全通滤波器,这样等价的基带信号的量化噪声就很小了, ...

  4. pycharm安装numpy和scipy(window)

    win 10,64位,python3.6 用的pycharm,依次点file-settings-project-project interpreter,出现下图,(一般按正常安装流程,Package里 ...

  5. Web QQ 协议 登录加密算法 —— VC++实现

    BOOL ToHexStr(const CHAR * lpStr, int nSrcLen, CHAR * lpHex, int nDestLen) { const CHAR cHexTable[]  ...

  6. os.date

    代码中有一段如下: local date = os.date("*t", set) if date then           luci.sys.call("date ...

  7. python decorators

    it's a syntatical sugar: @function1 def function2: do something equal to: function2 = function1(func ...

  8. 前端----css 选择器

      css 为了修饰页面作用, 让页面好看 ⑴ css的引入方式1,行内样式body里面2,内接样式在html里面的 style 里面3,外接样式两种:①链接式: <link rel=" ...

  9. Apache 和 Tomcat联系和区别

    作者:郭无心链接:https://www.zhihu.com/question/37155807/answer/72706896来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明 ...

  10. Laravel 5.2错误-----Base table or view not found: 1146 Table

    报出这个问题,我想就是数据库表名不对导致的. 为什么呢?感觉laravel太强大了,很专业的感觉. 因为它对单词命名的单复数区分的很清楚吧.laravel会自动的将模型名自动替换成名称的复数形式,然后 ...