第十六届金马五校 二进制找规律F:1 + 2 = 3 ?

14人阅读 评论(0) 收藏 举报
分类:
链接:https://www.nowcoder.com/acm/contest/91/F
来源:牛客网

小Y在研究数字的时候,发现了一个神奇的等式方程,他屈指算了一下有很多正整数x满足这个等式,比如1和2,现在问题来了,他想知道从小到大第N个满足这个等式的正整数,请你用程序帮他计算一下。

(表示按位异或运算)

输入描述:

第一行是一个正整数,表示查询次数。

接着有T行,每行有一个正整数,表示小Y的查询。

输出描述:

对于每一个查询N,输出第N个满足题中等式的正整数,并换行。
示例1

输入

4
1
2
3
10

输出

1
2
4
18


题解:首先发现就是求第N个二进制不相邻的数,首先观察到每种长度的二进制串数目为F[i] = F[i-1] + F[i-2], f[1] = f[2] = 1.

然后就是从高到低判断每位。

#include <bits/stdc++.h>

using namespace std;

typedef long long ll;
ll f[60];
void gao(int i)
{
    if(!i) return;
    gao(i/2);
    printf("%d",i%2);
}
int main()
{
    for(int j=0,i = 1;i <= 100;i ++) {
        if( (i^(2*i)) == 3 * i) {
//            gao(i);
//            printf(" %d\n",++j);
        }
    }
    f[1] = 1;
    f[2] = 2;
    for(int i = 3;i < 60;i ++) f[i] = f[i-1] + f[i-2];
    int T;
    scanf("%d",&T);
    while(T --) {
        ll n;
        ll res = 0;
        scanf("%lld", &n);
        while(n) {
            for(int i = 59;i >= 1;i --) {
                if(n >= f[i]) {
                    n -= f[i];
                    res |= 1LL<<(i-1);
                }
            }
        }
        printf("%lld\n", res);
    }
    return 0;
}

查看评论

第03章-二进制、八进制、十进制、十六进制之间的转换

-
  • 1970年01月01日 08:00

埃森哲杯第十六届上海大学程序设计联赛春季赛暨上海高校金马五校赛 F- 1 + 2 = 3? (好难的找规律题)

斐波那契真的牛掰 题目链接 题目描述: 小Y在研究数字的时候,发现了一个神奇的等式方程 ,他屈指算了一下有很多正整数x满足这个等式,比如1和2,现在问题来了,他想知道从小到大第N个满足这个...
  • henuyh
  • henuyh
  • 2018-04-16 01:01:50
  • 33

牛客网 1+2=3?

链接:https://www.nowcoder.com/acm/contest/91/F来源:牛客网做的时候数据太大,只能过50%的数据……先把题存下来以后再补小Y在研究数字的时候,发现了一个神奇的等...
  • qq_41156122
  • qq_41156122
  • 2018-04-15 20:53:20
  • 34

1 + 2 = 3 ? 上海五校赛F

链接:https://www.nowcoder.com/acm/contest/91/F题目描述 小Y在研究数字的时候,发现了一个神奇的等式方程,他屈指算了一下有很多正整数x满足这个等式,比如1和2...
  • ummmmm
  • ummmmm
  • 2018-04-15 20:23:20
  • 18

埃森哲杯第十六届上海大学程序设计联赛春季赛暨上海高校金马五校赛 F-1+2=3?

链接:https://www.nowcoder.com/acm/contest/91/F来源:牛客网题目描述 小Y在研究数字的时候,发现了一个神奇的等式方程,他屈指算了一下有很多正整数x满足这个等式...
  • albertluf
  • albertluf
  • 2018-04-15 16:46:44
  • 136

上海大学程序设计联赛 F_1+2=3?(位运算+对斐波拉契神奇的发现)

上海大学程序设计联赛 F_1+2=3?(位运算) 最近遇到挺多位运算的题目,感觉有些题还是要做下总结,来记住位运算神奇的特性 题目: 小Y在研究数字的时候,发现了一个神奇的等式方程,他屈指...
  • weixin_40859716
  • weixin_40859716
  • 2018-04-16 07:57:27
  • 36

算法导论第三十一(31)章数论算法

本文简要的总结了 数论算法的一些概念和相关代码以及《算法导论》书上的一些题目的解决方法。...
  • z84616995z
  • z84616995z
  • 2014-03-24 19:40:50
  • 7927

SHU-“盛大游戏杯”第15届上海大学程序设计联赛夏季赛暨上海高校金马五校赛-A~K && M

ACM模版这个比赛早就知道有,但是因为自己要骑行,结果就没有注册,后来骑行计划延期,但是也忘了注册,赛后重现赛尝试做了 12 道,感觉水题比较多,剩下三个 AC 的人好少啊,感觉我这么菜肯定也是做不出...
  • f_zyj
  • f_zyj
  • 2017-07-14 00:55:01
  • 556

android: Handler概念理解与运用

转自:http://blog.csdn.net/csf928437197/article/details/6632930 android.os.Handler是Android SDK中处理定时操...
  • jiayou8809
  • jiayou8809
  • 2012-05-23 21:47:50
  • 287

第十六届上海大学程序设计联赛 L-K序列

https://www.nowcoder.com/acm/contest/91/L题目描述 给一个数组 a,长度为 n,若某个子序列中的和为 K 的倍数,那么这个序列被称为“K 序列”。现在要你 对数...
  • krypton12138
  • krypton12138
  • 2018-04-17 22:42:05
  • 7
    个人资料
    持之以恒
    等级:
    访问量: 5688
    积分: 1522
    排名: 3万+