HUNAN Interesting Integers(爆力枚举)
Undoubtedly you know of the Fibonacci numbers. Starting with
F1 = 1 and F2 = 1, every next number is the sum of the two
previous ones. This results in the sequence 1, 1, 2, 3, 5, 8, 13, . . ..
Now let us consider more generally sequences that obey the
same recursion relation
Gi = Gi−1 + Gi−2 for i > 2
but start with two numbers G1 ≤ G2 of our own choice. We shall
call these Gabonacci sequences. For example, if one uses G1 = 1
and G2 = 3, one gets what are known as the Lucas numbers:
1, 3, 4, 7, 11, 18, 29, . . .. These numbers are – apart from 1 and 3 –
different from the Fibonacci numbers.
By choosing the first two numbers appropriately, you can get
any number you like to appear in the Gabonacci sequence. For
example, the number n appears in the sequence that starts with 1
and n − 1, but that is a bit lame. It would be more fun to start with numbers that are as small
as possible, would you not agree?
Input
On the first line one positive number: the number of test cases, at most 100. After that per test
case:
• one line with a single integer n (2 ≤ n ≤ 109
): the number to appear in the sequence.
Output
Per test case:
• one line with two integers a and b (0 < a ≤ b), such that, for G1 = a and G2 = b,
Gk = n for some k. These numbers should be the smallest possible, i.e., there should be
no numbers a
0 and b
0 with the same property, for which b
0 < b, or for which b
0 = b and
a
0 < a.
Sample in- and output
Input
5
89
123
1000
1573655
842831057
Output
1 1
1 3
2 10
985 1971
2 7
解题:斐波那契第n项:a[n]=f[n-1]*x+f[n]*y; // f[n]:f[1]=0,f[2]=1;的斐波那契数列。枚举n与y看是否能整除f[n-1]。且除数<=y。
x:斐波那契第一项。y:斐波那契第二项。
#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <algorithm>
#define Max(a,b) (a>b?a:b)
using namespace std;
#define ll long long
int main (void)
{
int f[1005] , ans ;
int y ,x;
f[1]=0;
f[2]=1;
int i=3;
for( i=3; i<=46; i++)
{
f[i]=f[i-1]+f[i-2];
}
int T;
scanf("%d",&T);
while(T--)
{
scanf("%d",&ans);
if(ans==1||ans==2)
{
printf("1 1\n");
continue;
}
bool bb=0;
for(int i=45 ; i>2&&!bb; i--)
for(int ty=1; ty<=1000000; ty++)
if(ty*f[i]+f[i-1]>ans)
break;
else if((ans-ty*f[i])%f[i-1]==0&&(ans-ty*f[i])/f[i-1]<=ty)
{
y=ty , x=(ans-ty*f[i])/f[i-1] , bb=1;
break;
}
printf("%d %d\n",x,y);
}
return 0;
}
HUNAN Interesting Integers(爆力枚举)的更多相关文章
- 【扩展欧几里得】BAPC2014 I Interesting Integers (Codeforces GYM 100526)
题目链接: http://codeforces.com/gym/100526 http://acm.hunnu.edu.cn/online/?action=problem&type=show& ...
- interesting Integers(数学暴力||数论扩展欧几里得)
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAwwAAAHwCAIAAACE0n9nAAAgAElEQVR4nOydfUBT1f/Hbw9202m0r8
- GYM100526I Interesting Integers
题目大意 定义一种 \(Gabonacci\) 数列: \[\begin{array}{c} G_1=a\\ G_2=b\\ G_i=G_{i-1}+G_{i-2} \end{array} \] 给定 ...
- 计蒜客 28319.Interesting Integers-类似斐波那契数列-递推思维题 (Benelux Algorithm Programming Contest 2014 Final ACM-ICPC Asia Training League 暑假第一阶段第二场 I)
I. Interesting Integers 传送门 应该是叫思维题吧,反正敲一下脑壳才知道自己哪里写错了.要敢于暴力. 这个题的题意就是给你一个数,让你逆推出递推的最开始的两个数(假设一开始的两个 ...
- Google kickstart 2022 Round A题解
Speed Typing 题意概述 给出两个字符串I和P,问能否通过删除P中若干个字符得到I?如果能的话,需要删除字符的个数是多少? 数据规模 \[1≤|I|,|P|≤10^5 \] 双指针 设置两个 ...
- 解剖SQLSERVER 第十七篇 使用 OrcaMDF Corruptor 故意损坏数据库(译)
解剖SQLSERVER 第十七篇 使用 OrcaMDF Corruptor 故意损坏数据库(译) http://improve.dk/corrupting-databases-purpose-usin ...
- 2018-2019 ACM-ICPC Pacific Northwest Regional Contest (Div. 1) Solution
A:Exam Solved. 温暖的签. #include<bits/stdc++.h> using namespace std; ; int k; char str1[maxn], st ...
- ACM 第十七天
暑期热身赛 BAPC 2014 The 2014 Benelux Algorithm Programming Contest 题目网址:https://odzkskevi.qnssl.com/3655 ...
- Benelux Algorithm Programming Contest 2014 Final
// Button Bashing (bfs) 1 #include <iostream> #include <cstdio> #include <cstring> ...
随机推荐
- 报告撰写,linux使用gimp简单做gif动图
我想把我的系统菜单完整记录下来,方便查看,如果单纯使用文字比较单调,使用屏幕截图,需要依次打开多个图像查看也不是很方便,就想到了使用动画的形式展示.由于本人的系统一直使用Linux系统,为了一张gif ...
- docker入门之:centos6.5 安装docker
centos6.5 : 使用EPEL库安装docker: # sudo yum install -y http://mirrors.yun-idc.com/epel/6/i386/epel-rele ...
- oracle 批量改temp/data/redo file的路径
批量生成修改路径的脚本.select 'alter database rename file ''' || name ||'''' || ' to '''|| substr(name,0,instr( ...
- python笔记-用python解决小学生数学题【转载】
本篇转自博客:上海-悠悠 原文地址:http://www.cnblogs.com/yoyoketang/tag/python/ 前几天有人在群里给小编出了个数学题: 假设你有无限数量的邮票,面值分别为 ...
- hdu 5101(思路题)
Select Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Subm ...
- Delphi 7 在程序中直接执行SQL脚本文件
Delphi 7 在程序中直接执行SQL脚本文件 在处理MSDE一些操作中.需要执行一些SQL脚本.有的是从SQLServer 2000中生成的SQL为后缀的脚本.在MSDE中没有企业管理器,操作都是 ...
- ios控件渐变色的处理
+(CAGradientLayer *)gradientColorWithBounds:(CGRect)bounds startColorHexString:(NSString *)startColo ...
- VS2010/2012Web负载测试
原文地址:http://www.cnblogs.com/aarond/archive/2013/04/18/performance.html VS自带的Web负载测试真的很大程度上能和专业的loadr ...
- HDU 2546 饭卡【贪心+01背包】
饭卡 Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submiss ...
- 2017 ACM-ICPC Asia Xi'an Problem A XOR(异或线性基 )
题目链接 2017西安赛区 Problem A 题意 给定一个数列,和$q$个询问,每个询问中我们可以在区间$[L, R]$中选出一些数. 假设我们选出来的这个数列为$A[i_{1}]$, $A[ ...