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> ...
随机推荐
- php格式化时间
1.Y 年份的四位数 2.m 月份的数字(01-12) 3.d 一个月中的第几天(01-31) 4.w 星期几的数字表示(0-6) 5.H 24小时制(00-23) 6.i 分(00-59) 7.s ...
- Java并发(1)- 聊聊Java内存模型
引言 在计算机系统的发展过程中,由于CPU的运算速度和计算机存储速度之间巨大的差距.为了解决CPU的运算速度和计算机存储速度之间巨大的差距,设计人员在CPU和计算机存储之间加入了高速缓存来做为他们之间 ...
- Redis特性
Redis特性和应用场景 Redis特性 速度快 Redis使用标准C编写实现,而且将所有数据加载到内存中,所以速度非常快.官方提供的数据表明,在一个普通的Linux机器上,Redis读写速度分别达到 ...
- 放棋游戏(NOIP模拟赛)(DP)
没有原题... 囧.. [问题描述] 游戏规则是这样,有n(1<=n<=100)行格子,第一行由n个格子,第二行有n-1个格子,第三行由n-2个格子,……以此类推,第n行有1个格子.要求再 ...
- 官网cocos2d
http://cocos2d.spritebuilder.com/download 官网 https://github.com/cocos2d/cocos2d-spritebuil ...
- python--math
>>> import math >>> >>> # ceil,取大于等于x的最小的整数值 >>> math.ceil(4) 4 ...
- javascript与mongodb的日期时区问题
默认情况下,js的日期生成是当地时区,但默认显示是按照GMT显示的: > var c = new Date('2017-10-31 06:00:00'); > c 2017-10-30T2 ...
- Appium+python自动化15-在Mac上环境搭建【转载】
前言 mac上搭建appium+python的环境还是有点复杂的,需要准备的软件 1.nodejs 2.npm 3.cnpm 4.appium 5.pip 6.Appium-Python-Client ...
- 使用bottle进行web开发(1):hello world
为什么使用bottle?因为简单,就一个py文件,和其他模块没有依赖,3000多行代码. http://www.bottlepy.org/docs/dev/ 既然开始学习,就安装它吧. pip3 in ...
- 处理eq问题
using System;using System.Diagnostics;using System.Drawing;using System.IO;using System.Windows.Form ...