Interesting Fibonacci(hdu 2814)
Interesting Fibonacci
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 1071 Accepted Submission(s): 229
mathematics, the Fibonacci numbers are a sequence of numbers named
after Leonardo of Pisa, known as Fibonacci (a contraction of filius
Bonaccio, "son of Bonaccio"). Fibonacci's 1202 book Liber Abaci
introduced the sequence to Western European mathematics, although the
sequence had been previously described in Indian mathematics.
The
first number of the sequence is 0, the second number is 1, and each
subsequent number is equal to the sum of the previous two numbers of the
sequence itself, yielding the sequence 0, 1, 1, 2, 3, 5, 8, etc. In
mathematical terms, it is defined by the following recurrence relation:

That
is, after two starting values, each number is the sum of the two
preceding numbers. The first Fibonacci numbers (sequence A000045 in
OEIS), also denoted as F[n];
F[n] can be calculate exactly by the following two expressions:


A
Fibonacci spiral created by drawing arcs connecting the opposite
corners of squares in the Fibonacci tiling; this one uses squares of
sizes 1, 1, 2, 3, 5, 8, 13, 21, and 34;
So you can see how interesting the Fibonacci number is.
Now AekdyCoin denote a function G(n)

Now your task is quite easy, just help AekdyCoin to calculate the value of G (n) mod C
input consists of T test cases. The number of test cases (T is given in
the first line of the input. Each test case begins with a line
containing A, B, N, C (10<=A, B<2^64, 2<=N<2^64,
1<=C<=300)
each test case, print a line containing the test case number( beginning
with 1) followed by a integer which is the value of G(N) mod C
17 18446744073709551615 1998 139
1 #include<stdio.h>
2 #include<algorithm>
3 #include<stdlib.h>
4 #include<queue>
5 #include<iostream>
6 #include<string.h>
7 #include<math.h>
8 using namespace std;
9 typedef unsigned long long LL;
10 bool prime[400];
11 int ans[400];
12 int oula[400];
13 int ff[30];
14 typedef struct node
15 {
16 LL m[2][2];
17 node()
18 {
19 memset(m,0,sizeof(m));
20 }
21 } maxtr;
22 int f[10000];
23 int fin(LL n);
24 LL quick(LL n,LL m,LL mod);
25 int main(void)
26 {
27 memset(prime,0,sizeof(prime));
28 int i,j;
29 for(i = 0; i <= 300; i++)
30 {
31 oula[i] = i;
32 }
33 int cn = 0;
34 for(i = 2; i <= 300; i++)
35 {
36 if(!prime[i])
37 {
38 ans[cn++] = i;
39 for(j = i; (i*j) <= 300; j++)
40 {
41 prime[i*j] = true;
42 }
43 }
44 }//printf("%d\n",cn);
45 for(i = 0; i < cn; i++)
46 {
47 for(j = 1; ans[i]*j <= 300; j++)
48 {
49 oula[ans[i]*j]/=ans[i];
50 oula[ans[i]*j]*=(ans[i] - 1);
51 }
52 }
53 ff[0] = 0;
54 ff[1] = 1;
55 for(i = 2; i <= 20; i++)
56 {
57 ff[i] = ff[i-1]+ff[i-2];
58 }
59 //printf("%d\n",ff[20]);
60 LL A,B,N,C;
61 int T;
62 scanf("%d",&T);
63 int __ca = 0;
64 while(T--)
65 {
66 scanf("%llu %llu %llu %llu",&A,&B,&N,&C);
67 {
68 printf("Case %d: ",++__ca);
69 if(C == 1)
70 printf("0\n");
71 else
72 {
73 int k = fin(C);
74 LL ask = quick(A,B,(LL)k);
75 LL c = (LL)f[ask];
76 if(c == 0)
77 printf("0\n");
78 else
79 {
80 LL v = A;
81 LL x = B;
82 int flag = 0;
83 {
84 int u = fin((LL)oula[C]);
85 LL avk = quick(A,B,(LL)u);
86 LL app = (LL)f[avk];
87 LL ni = quick(app,N-1,(LL)oula[C]);
88 ni = ni + (LL)oula[C];
89 printf("%llu\n",quick(c,ni,C));
90 }
91 }
92 }
93 }
94 }
95 return 0;
96 }
97 int fin(LL n)
98 {
99 f[0] = 0;
100 f[1] = 1;
101 int id;
102 int i;
103 for(i = 2; i < 5000; i++)
104 {
105 f[i] = f[i-1]+f[i-2];
106 f[i]%=n;
107 if(f[i] == f[1]&&f[0] == f[i-1])
108 {
109 id = i-2;
110 break;
111 }
112 }//printf("%d\n",id);
113 return id+1;
114 }
115 LL quick(LL n,LL m,LL mod)
116 {
117 LL ak = 1;
118 n%=mod;
119 while(m)
120 {
121 if(m&1)
122 {
123 ak = ak*n%mod;
124 }
125 n = n*n%mod;
126 m/=2;
127 }
128 return ak;
129 }
Interesting Fibonacci(hdu 2814)的更多相关文章
- hdu 2814 Interesting Fibonacci
pid=2814">点击此处就可以传送 hdu 2814 题目大意:就是给你两个函数,一个是F(n) = F(n-1) + F(n-2), F(0) = 0, F(1) = 1; 还有 ...
- hdu Interesting Fibonacci
Interesting Fibonacci Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Ot ...
- HDU 2814 斐波那契循环节 欧拉降幂
一看就是欧拉降幂,问题是怎么求$fib(a^b)$,C给的那么小显然还是要找循环节.数据范围出的很那啥..unsigned long long注意用防爆的乘法 /** @Date : 2017-09- ...
- BestCoder10 1001 Revenge of Fibonacci(hdu 5018) 解题报告
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5018 题目意思:给出在 new Fibonacci 中最先的两个数 A 和 B(也就是f[1] = A ...
- (字典树)Revenge of Fibonacci -- HDU -- 4099
链接: http://acm.hdu.edu.cn/showproblem.php?pid=4099 要用c++交哦, G++ MLE 不是很懂,先粘上慢慢学习 代码: #include<std ...
- Hat's Fibonacci hdu 1250
Problem Description A Fibonacci sequence is calculated by adding the previous two members the sequen ...
- hdu 2814 快速求欧拉函数
/** 大意: 求[a,b] 之间 phi(a) + phi(a+1)...+ phi(b): 思路: 快速求欧拉函数 **/ #include <iostream> #include & ...
- HDU - 2814 Visible Trees
题意: m*n(1<=m,n<=100000)的森林里,起始点在(1,1),某人从(0,0)点开始看,问能看到多少棵树. 题解: 求出1~x中的每个数与1~y的数中互质的数的总和.用素数筛 ...
- 【转载】ACM总结——dp专辑
感谢博主—— http://blog.csdn.net/cc_again?viewmode=list ---------- Accagain 2014年5月15日 动态规划一 ...
随机推荐
- ace
ace An ace is a playing card, die or domino with a single pip. In the standard French deck, an ace h ...
- Shell脚本字符串截取方法总结
Shell脚本8种字符串截取方法总结转自:https://www.cnblogs.com/ralphdc/p/8032335.html Linux 的字符串截取很有用.有八种方法.假设有变量 var= ...
- html5 绘图
SVG 在 SVG 中,每个元素是图型与数据相结合的一个对象. 修改对象属性的值,图型会立即体现出这种变化. 因为是对象,所以支持事件处理. D3使用的是SVG Canvas 不支持事件处理. cha ...
- 【Linux】【Service】【OpenSSL】原理及实现
1. 概念 1.1. SSL(Secure Sockets Layer安全层套接字)/TLS(Transport Layer Security传输层套接字). 最常见的应用是在网站安全方面,用于htt ...
- 在html页面通过绝对地址显示图片
1.编辑tomcat中conf目录下的server.xml文件,在<Host></Host>中添加如下代码段 <Context path="/D" d ...
- [源码解析] PyTorch分布式优化器(3)---- 模型并行
[源码解析] PyTorch分布式优化器(3)---- 模型并行 目录 [源码解析] PyTorch分布式优化器(3)---- 模型并行 0x00 摘要 0x01 前文回顾 0x02 单机模型 2.1 ...
- 3、Spring的DI依赖注入
一.DI介绍 1.DI介绍 依赖注入,应用程序运行依赖的资源由Spring为其提供,资源进入应用程序的方式称为注入. Spring容器管理容器中Bean之间的依赖关系,Spring使用一种被称为&qu ...
- Redis cluster 集群命令合集
目录 一.常用命令 二.操作命令 三.redis-trib.rb脚本 一.常用命令 打印集群的信息 CLUSTER INFO 列出集群当前已知的所有节点(node),以及这些节点的相关信息. CLUS ...
- for循环中的变量泄漏
经典的案例 let arr = [] for(var i =0;i<=5;i++){ arr[i]= function fn(){ console.log(i) } } arr[0]() //6 ...
- 转:KVC 与 KVO 理解
KVC 与 KVO 理解 On 2012 年 6 月 7 日, in iPhone, by donly KVC 与 KVO 是 Objective C 的关键概念,个人认为必须理解的东西,下面是实例讲 ...