博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
1+2=3?(埃森哲杯第十六届上海大学程序设计联赛春季赛暨上海高校金马五校赛)...
阅读量:5015 次
发布时间:2019-06-12

本文共 1621 字,大约阅读时间需要 5 分钟。

链接:

题目描述

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

(表示按位异或运算)

输入描述:

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

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

输出描述:

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

输入

412310

输出

12418 把数字转化二进制,那么n<<1时,必须保证1的前一位为0,呢么依次类推1 10 101 1000 1001 1010 10000 10001 10010.... 若把满足的数,并且二进制位数相等的保存下来,呢么满足斐波那契数列(可以手推) 因此保存斐波那契前58项的前缀和,每次在区间里比较,不断确定其所具有的最大进制位,然后减去(前缀和加1)(二进制中末尾全0特判) 依次类推,直到n<=0
#include 
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
using namespace std;#pragma comment(linker, "/stck:1024000000,1024000000")#define lowbit(x) (x&(-x))#define max(x,y) (x>=y?x:y)#define min(x,y) (x<=y?x:y)#define MAX 100000000000000000#define MOD 1000#define pi acos(-1.0)#define ei exp(1)#define PI 3.1415926535897932384626433832#define ios() ios::sync_with_stdio(true)#define inf 0x3f3f3f3f#define mem(a) (memset(a,0,sizeof(a)))#define ll long longll fac[65],n,t;void init(){ fac[0]=0; fac[1]=1;fac[2]=1; for(int i=3;i<=58;i++) fac[i]=fac[i-1]+fac[i-2]; fac[2]+=fac[1]; for(int i=3;i<=58;i++) fac[i]+=fac[i-1];}int main(){ init(); scanf("%lld",&t); while(t--) { scanf("%lld",&n); ll ans=0; while(n>0)//最后一定可以得到n<=0; { for(int i=1;i<=58;i++) { if(n>fac[i-1] && n<=fac[i]) { ans+=(ll)1<<(i-1); n-=fac[i-1]+1; break; } } } printf("%lld\n",ans); } return 0;}

 

 

转载于:https://www.cnblogs.com/shinianhuanniyijuhaojiubujian/p/8849588.html

你可能感兴趣的文章
EasyUI datagrid 的多条件查询
查看>>
Mac升级bash到最新版本
查看>>
利用vagrant打包系统--制作自己的box
查看>>
美女与硬币问题
查看>>
计算几何算法概览 (转)
查看>>
Notepad++的ftp远程编辑功能
查看>>
数据库多对多关联表(Python&MySQL)
查看>>
[实变函数]1.2 集合的运算
查看>>
第06天
查看>>
设计模式的征途—5.原型(Prototype)模式
查看>>
iOS10 app连接不上网络的问题
查看>>
结对开发之电梯调度最终稿(徐梦迪&刘博)
查看>>
simple java mail
查看>>
信息建模
查看>>
Mybatis 数据库物理分页插件 PageHelper
查看>>
虚函数、纯虚函数详解
查看>>
z-stack中数据的发送,广播、组播、点对点
查看>>
Practial Vim 学习笔记一
查看>>
.NET中使用js实现百度搜索下拉提示效果[不是局部刷新,呜呜。。]
查看>>
ITCAST视频-Spring学习笔记(使用Spring的注解方式实现AOP入门)
查看>>