嵊州D1T3 睡美人航班

嵊州D1T3

睡美人航班

不知不觉中,我对她的爱意已经达到了 n。

是这样子的,第 1 分钟,我对她的爱意值是 (1, 1)。

假如当第 x 分钟时我对她的爱意值是 (a, b),那么第 x + 1 分钟我对她的爱意值就是 (a + b, b) 或者 (a, a + b)。

在关注着她的时候,我已然忘记了时间。

现在我想知道,这时候航班已经至少起飞了多久?

爱意为 n,也就是说 a + b = n。

Input

一行一个整数 n。

Output

一行一个整数表示答案。

Examples

 

sleepingbeauty.insleepingbeauty.out
53

Notes

对于所有数据,满足 2 ≤ n ≤ 106

Task1[30%]

n ≤ 20

Task2[50%]

n ≤ 103

Task3[70%]

n ≤ 104

Task4[100%]

无特殊限制


solve!

这道题题挺简单的(虽然我没做出来)

没事!这不是最后的考试,我也还有机会!

看一眼题,先定义个gcd(a,b)再说

第二,那个灵力值的大小不重要,重要的是:

1、起始值

2、每个梦都要做(才能知道最多的事情嘛)

(好贪心哟(^U^)ノ~YO)

#include<bits/stdc++.h>
using namespace std;
const int inf = 0x3f3f3f;
int n,a=0,b=0,nowtime=1,mintime=inf;
int ay(int a,int b)
{
    if(b) 
        return ay(b,a%b)+a/b;
    else 
        if(a>1) return inf;
        else return -1;
    
}

int main()
{
    //freopen("sleepingbeauty.in","r",stdin);
    //freopen("sleepingbeauty.out","w",stdout);
    scanf("%d",&n);
    for(int i=1;i<=n;i++)
        mintime=min(mintime,ay(n,i));    
    printf("%d",mintime);
    return 0;
}
/*
另一种方法
ay(){
if(a+b>n) return;
nowtime++;
if(a+b==n) mintime=min(mintime,nowtime);
ay(a+b,b);
ay(a,a+b); 
nowtime--;
*/

有一点我好傻:

if(b) 
    return ay(b,a%b)+a/b;
else 
    if(a>1) return inf;
    else return -1;

其实可以很简单的用两个三目运算符的。。。

 return b ? ay(b, a % b) + a / b : a > 1 ? inf : -1;

 有的时候要相信自己嘛!

 运行通过,再看看数据也没有什么特别大的。行吧!

转载于:https://www.cnblogs.com/send-off-a-friend/p/11172870.html

阅读终点,创作起航,您可以撰写心得或摘录文章要点写篇博文。去创作
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 错误代码0x000006d1通常是指在Windows操作系统中,设备驱动程序无法加载或初始化。这个错误通常发生在使用设备的过程中,例如打印机、扫描仪或其他外部设备。 造成这个错误的原因可能有以下几点: 1. 设备驱动程序缺失或损坏:驱动程序是控制设备与操作系统之间通信的关键。如果驱动程序不存在、损坏或不兼容,系统就无法正确识别或与设备通信,导致错误0x000006d1的出现。 2. 设备连接问题:可能是设备接口故障、USB端口损坏、线缆连接不良等原因导致设备无法正确连接到计算机,引发错误。 3. 操作系统或设备管理错误:设备管理器可能存在问题,例如设备驱动程序相关的系统文件损坏、注册表错误等。 解决这个问题的方法有以下几种: 1. 更新或重新安装设备驱动程序:从设备制造商的官方网站下载最新的驱动程序,或通过设备管理器更新驱动。如果驱动程序已经安装,则可以尝试卸载并重新安装驱动。 2. 检查设备连接:确保设备与计算机的连接正常。更换连接线或插槽,确认设备的电源和信号灯是否正常工作。 3. 使用Windows的设备管理器进行故障排除:在Windows操作系统中,可以通过设备管理器来识别和修复设备问题。打开设备管理器,查找相关设备并尝试卸载、重新安装驱动或更新驱动程序。 4. 运行系统文件检查:使用Windows的系统文件检查工具(SFC)来扫描和修复可能损坏的系统文件,以解决任何与设备驱动程序相关的问题。 如果以上方法仍然无法解决错误0x000006d1,建议联系设备制造商的技术支持或寻求专业的计算机技术人员的帮助,以便更全面地诊断和解决问题。 ### 回答2: 错误代码0x000006d1通常与打印机相关的问题有关。错误0x000006d1表示无法连接到打印机或者打印机驱动程序出现了问题。如果您在连接或使用打印机时遇到此错误,以下是解决此问题的一些可能方法: 1. 检查连接:确认打印机是否正常连接到电脑或网络,并确保电源线和数据线连接良好。可以尝试重新连接线缆或更换线缆。 2. 检查驱动程序:可能是由于打印机驱动程序出现了问题。您可以尝试更新或重新安装打印机驱动程序。可以通过访问打印机制造商的官方网站或使用设备管理器来进行驱动程序的更新。 3. 清理打印队列:在某些情况下,打印队列中堆积了太多的打印任务,这可能导致错误0x000006d1。您可以尝试清空打印队列,方法是打开控制面板,转到“设备和打印机”,找到相关打印机并右键单击,然后选择“查看打印队列”,在打印队列窗口中选择所有任务并删除。 4. 重新启动打印机和电脑:有时,重启设备可以解决一些连接问题。请尝试重新启动打印机和电脑,并检查是否能够连接打印机。 如果您尝试了以上方法仍然无法解决问题,您可以尝试联系打印机制造商的技术支持或寻求专业帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值