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日 动态规划一 ...
随机推荐
- kubernetes部署 kube-apiserver服务
kubernetes部署 kube-apiserver 组件 本文档讲解使用 keepalived 和 haproxy 部署一个 3 节点高可用 master 集群的步骤. kube-apiserve ...
- 🏆【Alibaba中间件技术系列】「Sentinel技术专题」分布式系统的流量防卫兵的基本介绍(入门源码介绍)
推荐资料 官方文档 官方demo Sentinel 是什么? 随着微服务的流行,服务和服务之间的稳定性变得越来越重要.Sentinel 以流量为切入点,从流量控制.熔断降级.系统负载保护等多个维度保护 ...
- day15 内置函数和模块
day15 内置函数和模块 1.三元表达式 代码如下: x = 1 y = 2 res = 'ok' if x > y else 'no' print(res) 输出结果:no 2.内置函数:重 ...
- Hive相关知识点
---恢复内容开始--- 转载:Hive 性能优化 介绍 首先,我们来看看Hadoop的计算框架特性,在此特性下会衍生哪些问题? 数据量大不是问题,数据倾斜是个问题. jobs数比较多的作业运行效率相 ...
- 顺序栈(C++)
栈的定义为只允许在表的末端进行插入和删除的线性表.简而言之就是先进后出的线性表. 插入和删除的一端被称呼为栈顶(top),而不允许插入删除的一端被称为栈底(bottom).无元素时的栈即为空栈. 使用 ...
- Linux学习 - 帮助命令
一.获取帮助信息man(manual) 1 功能 获得命令或配置文件的帮助信息 2 语法 man [1.5] [命令或配置文件] 1 命令的帮助 (可用 whatis 代替) 5 配置文件的帮助 ...
- 2.ElasticSearch集群的搭建
1.创建elasticsearch-cluster文件夹,在内部复制三个elasticsearch服务 2.修改elasticsearch-cluster\node*\config\elasticse ...
- 2.使用Lucene开发自己的搜索引擎–indexer索引程序中基本类介绍
(1)Directory:Directory类描述了Lucene索引的存放位置,它是一个抽象,其子类负责具体制定索引的存储路径.FSDirectory.open方法来获取真实文件在文件系统中的存储路径 ...
- 超!超!超简单,Linux安装Docker
1.安装依赖yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的 sudo yum install -y yum-utils device-ma ...
- 【二进制】CTF-Wiki PWN里面的一些练习题(Basic-ROP篇)
sniperoj-pwn100-shellcode-x86-64 23 字节 shellcode "\x31\xf6\x48\xbb\x2f\x62\x69\x6e\x2f\x2f\x73\ ...