2018年湘潭大学程序设计竞赛 Fibonacci进制
输入描述:
第一行是一个整数T(1 ≤ T ≤ 10000),表示样例的个数。
以后每行一个样例,为一个十进制正整数x(1 ≤ x ≤ 10
9
)。
输出描述:
每行输出一个样例的结果。
输入
5
1
10
100
1000
1000000000
输出
1
14
367
10966
4083305275263
因为2^0+2^1+2^2<2^3;
所以只要保证最高位尽可能的小
还有所有的数都保证可以转化为斐波那契数之和,因此从小开始累加
#include <iostream>
#include <algorithm>
#include <cstring>
#include <cstdio>
#include <vector>
#include <queue>
#include <stack>
#include <cstdlib>
#include <iomanip>
#include <cmath>
#include <cassert>
#include <ctime>
#include <map>
#include <set>
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 1000000007
#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) ((a,0,sizeof(a)))
typedef long long ll;
ll f[],dp[];
ll t,n,vis[],ans;
void init()
{
f[]=,f[]=;
dp[]=;dp[]=;
for(int i=;i<=;i++)
{
f[i]=f[i-]+f[i-];
dp[i]=dp[i-]*;
}
}
int main()
{
init();
scanf("%lld",&t);
while(t--)
{
scanf("%lld",&n);
ans=;
memset(vis,,sizeof(vis));
int pos;
for(pos=;pos<=;pos++)
{
ans+=f[pos];
vis[pos]=;
if(ans>=n) break;
}
for(int i=pos;i>=;i--)
{
if(ans-f[i]>=n)
{
ans-=f[i];
vis[i]=;
}
}
ans=;
for(int i=pos;i>=;i--)
ans+=vis[i]*dp[i];
printf("%lld\n",ans);
}
return ;
}
2018年湘潭大学程序设计竞赛 Fibonacci进制的更多相关文章
- 2018年湘潭大学程序设计竞赛G又见斐波那契
链接:https://www.nowcoder.com/acm/contest/105/G来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言65536 ...
- 牛客网-2018年湘潭大学程序设计竞赛-F
题目链接:https://www.nowcoder.com/acm/contest/105/F 解题思路:这道题第一眼直接思路就是搜索,但想了半天没想到有什么好办法搜,然后就转成最短路写了, 因为多入 ...
- 2018年湘潭大学程序设计竞赛 H统计颜色
链接:https://www.nowcoder.com/acm/contest/105/H来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言65536 ...
- 2018年湘潭大学程序设计竞赛 F - maze
把点抽出来 跑个最短路就好啦. #include<bits/stdc++.h> #define LL long long #define pii pair<int,int> # ...
- 2018年湘潭大学程序设计竞赛 G- 又见斐波那契
推一推矩阵直接快速幂. #include<bits/stdc++.h> #define LL long long #define pii pair<int,int> #defi ...
- 2018年湘潭大学程序设计竞赛 E 吃货
题目描述 作为一个标准的吃货,mostshy又打算去联建商业街觅食了.混迹于商业街已久,mostshy已经知道了商业街的所有美食与其价格,而且他给每种美食都赋予了一个美味度,美味度越高表示他越喜爱这种 ...
- 2018年湘潭大学程序设计竞赛G又见斐波那契(矩阵快速幂)
题意 题目链接 Sol 直接矩阵快速幂 推出来的矩阵应该长这样 \begin{equation*}\begin{bmatrix}1&1&1&1&1&1\\1 & ...
- 2018年湘潭大学程序设计竞赛 maze(bfs)
链接:https://www.nowcoder.com/acm/contest/105/F来源:牛客网 有q个单向传送阵,每个传送阵各有一个入口和一个出口,入口和出口都在迷宫的格子里,当走到或被传送到 ...
- 2018中国大学生程序设计竞赛 - 网络选拔赛 1001 - Buy and Resell 【优先队列维护最小堆+贪心】
题目传送门:http://acm.hdu.edu.cn/showproblem.php?pid=6438 Buy and Resell Time Limit: 2000/1000 MS (Java/O ...
随机推荐
- bzoj2768: [JLOI2010]冠军调查(双倍经验最小割)
2768: [JLOI2010]冠军调查 题目:传送门 题解: 双倍经验(1934) 代码: #include<cstdio> #include<cstring> #inclu ...
- zzulioj--1780--和尚特烦恼6——炒股(贪心)
1780: 和尚特烦恼6--炒股 Time Limit: 1 Sec Memory Limit: 128 MB Submit: 154 Solved: 87 SubmitStatusWeb Boa ...
- (六)api网关服务 zuul-过滤器
开启上文服务: Zuul给我们的第一印象通常是这样:它包含了对请求的路由和过滤两个功能,其中路由功能负责将外部请求转发到具体的微服务实例上,是实现外部访问统一入口的基础.过滤器功能则负责对请求的处理过 ...
- 简单的beego分页功能代码
一个简单的beego分页小插件(源代码在最下面): 支持条件查询 支持参数保留 支持自定义css样式 支持表/视图 支持参数自定义 默认为pno 支持定义生成链接的个数 使用方式: 1)action中 ...
- hdu 6082 - 完全背包,打表。
2017-08-06 15:02:50 Accepted 1003 187 MS 2168 K G++ redips 对背包有了进一步的认识 ----------------------------- ...
- 3ds Max实例教程-制作卡通蓝色小人
此篇教程分享使用3ds Max制作卡通蓝色小人,是根据作者梦境出现的画面为原型,加以改造,得到的最终效果图. 创作一张图最重要的地方是先用纸和笔画出草稿图.你需要表明所有的细节,研究角色的特点——我发 ...
- [USACO10NOV]奶牛的图片Cow Photographs 树状数组 递推
Code: #include<cstdio> #include<algorithm> #include<string> #include<cstring> ...
- vue循环遍历给div添加id
html部分 <div class="img-preview" v-for="(img,i) of list" :key="img.imageK ...
- 被我忽略许久的set
心塞,set一直是我忽略的一个数据结构 1.生成一个set: 1) set(iterable) 传入一个可以迭代的数据结构: eg:字符串;元组;列表,字典 2) {v1,v2,.......,vn} ...
- BZOJ 2342 [Shoi2011]双倍回文(manacher+堆+set)
题意 N<=500000 题解 维护一个set可以用堆来解决. #include<iostream> #include<cstring> #include<cstd ...