BZOJ 2813: 奇妙的Fibonacci】的更多相关文章

2813: 奇妙的Fibonacci Time Limit: 20 Sec  Memory Limit: 512 MBSubmit: 497  Solved: 134[Submit][Status][Discuss] Description Fibonacci数列是这样一个数列: F1 = 1, F2 = 1, F3 = 2 . . . Fi = Fi-1 + Fi-2 (当 i >= 3) pty忽然对这个古老的数列产生了浓厚的兴趣,他想知道:对于某一个Fibonacci数Fi, 有多少个Fj…
奇妙的 Fibonacci,多次模拟赛中出现 同时也是 BZOJ 2813 一 Fibonacci 的 GCD 如果 \(F\) 是 Fibonacci 数列,那么众所周知的有 \(\gcd(F_i,F_j)=F_{\gcd(i,j)}\) . 为什么呢?其实是平凡的 . 首先证明两个引理: Lemma 1 \[F_n=F_{n−m}F_{m−1}+F_{n−m+1}F_m \] 考虑归纳 . 当 \(m=1\) 时结论显然成立,假设 \(m=k\) 时结论成立,下证 \(m=k+1\) 时结论…
http://www.lydsy.com/JudgeOnline/problem.php?id=2813 若j能整除i,则f[j]能整除f[i] 题目就变成了求约数个数和.约数的平方和 http://www.cnblogs.com/TheRoadToTheGold/p/8228969.html 因为f[2]=1,所以奇数还要加上2的贡献 #include<cstdio> #include<iostream> using namespace std; #define N 100000…
题意 给出一个序列\(A\),求一个最长的满足fib性质的子序列,输出其长度及其元素(如果多种方案,输出位置最靠前的).(\(n \le 3000\)) 题解 容易想到dp,即\(d(i, j)\)表示\(i\)作为fib序列的倒数第二项且\(j\)作为fib序列的最后一项的最大长度. 那么很容易通过\(a[i]-a[j]\)得到转移. 然后发现倒推很好求出位置序列字典序最小的方案. 方案的话..有了长度有了前两项,你还不会求? 坑点: bzoj上题意不对,应该是输出位置最靠前的方案,即位置序列…
Description ​ Fibonacci数列是这样一个数列: F1 = 1, F2 = 1, F3 = 2 . . . Fi = Fi-1 + Fi-2 (当 i >= 3) ​ pty忽然对这个古老的数列产生了浓厚的兴趣,他想知道:对于某一个Fibonacci数Fi, 有多少个Fj能够整除Fi (i可以等于j),他还想知道所有j的平方之和是多少. Input ​ 第一行一个整数Q,表示Q个询问. 第二行四个整数:Q1, A, B, C ​ 第i个询问Qi = (Qi-1 * A + B)…
Description Fibonacci数列是这样一个数列: F1 = 1, F2 = 1, F3 = 2 . . . Fi = Fi-1 + Fi-2 (当 i >= 3) pty忽然对这个古老的数列产生了浓厚的兴趣,他想知道:对于某一个Fibonacci数Fi, 有多少个Fj能够整除Fi (i可以等于j),他还想知道所有j的平方之和是多少. Input 第一行一个整数Q,表示Q个询问. 第二行四个整数:Q1, A, B, C 第i个询问Qi = (Qi-1 * A + B) mod C +…
Search GO 说明:输入题号直接进入相应题目,如需搜索含数字的题目,请在关键词前加单引号 Problem ID Title Source AC Submit Y 1000 A+B Problem 10983 18765 Y 1036 [ZJOI2008]树的统计Count 5293 13132 Y 1588 [HNOI2002]营业额统计 5056 13607 1001 [BeiJing2006]狼抓兔子 4526 18386 Y 2002 [Hnoi2010]Bounce 弹飞绵羊 43…
老妈送来了防寒补给就很棒,再也不用晚上盖两层毛巾被了,再也不用担心晚上自动把毛巾被$split$了 还有一些好吃的耶叶 T1 小L的疑惑 考场上疑惑的切掉了 直接把$a$排序然后处理前缀和的过程中判断和下一个的数的差就行 1 #include<bits/stdc++.h> 2 #define int long long 3 using namespace std; 4 namespace AE86{ 5 inline int read(){ 6 int x=0,f=1;char ch=getc…
Description 斐波那契01字符串的定义如下 F(n) = { 0  if n = 0 1  if n = 1 F(n-1)+F(n-2) if n >= 2 } 这里+的定义是字符串的连接.F(n)的前几个元素如下: F(0)=0 F(1)=1 F(2)=10 F(3)=101 F(4)=10110 F(5)=10110101 F(6)=1011010110110 F(7)=101101011011010110101 F(8)=10110101101101011010110110101…
找最近的数 记忆化 (我也不知道为什么对的) #include<cstdio> #include<algorithm> #include<map> using namespace std; int q,lim=85,id; long long F[105]; map<long long,int> M; int dfs(long long x){ if (M[x]) return M[x]; int id1=lower_bound(F+1,F+lim+1,x)…