题意

分析

考场做法

打表发现,最后的循环节一定是\(\gcd(a_1,a_2),\gcd(a_1,a_2),0\)这种形式,而稍微思考一下便知道这显然是一般情况。

然后都有gcd了,发现操作的实质都差不多是将\(a_1\)减去几个\(a_2\)后交换再相减,类似gcd递归版的取模操作,同时ans加上\(\left \lfloor \frac{a_1}{a_2} \right \rfloor\)。

最后算出来的数与实际答案差1,大概是0的问题,所以ans加1。

然后试了很多组小数据发现是对的。

最后就AC了。

#include<cstdlib>
#include<cstdio>
#include<cmath>
#include<cstring>
#include<iostream>
#include<string>
#include<vector>
#include<list>
#include<deque>
#include<stack>
#include<queue>
#include<map>
#include<set>
#include<bitset>
#include<algorithm>
#include<complex>
#include<cassert>
#define rg register
#define il inline
#define co const
#pragma GCC optimize ("O0")
using namespace std;
template<class T> il T read()
{
    T data=0;
    int w=1;
    char ch=getchar();
    while(!isdigit(ch))
    {
        if(ch=='-')
            w=-1;
        ch=getchar();
    }
    while(isdigit(ch))
        data=10*data+ch-'0',ch=getchar();
    return data*w;
}
template<class T> il T read(T&x)
{
    return x=read<T>();
}
typedef long long ll;
const int INF=0x7fffffff;

ll ans;

void gcd(ll a,ll b)
{
    if(b==0)
        return;
    ans+=a/b;
    gcd(b,a%b);
}

int main()
{
  freopen("seq.in","r",stdin);
  freopen("seq.out","w",stdout);
    gcd(read<ll>(),read<ll>());
    printf("%lld\n",ans+1);
//  fclose(stdin);
//  fclose(stdout);
    return 0;
}

标解

有个归纳证明的过程。

#include <bits/stdc++.h>

using namespace std;

typedef long long ll;

ll a,b,c,ans;
int main(){
freopen("seq.in","r",stdin);
freopen("seq.out","w",stdout);
    scanf("%lld%lld",&a,&b);
    if (a<b) swap(a,b);
    c = a%b;
    while (c){
        ans += a/b;
        a = b;b = c;c = a%b;
    }
    ans += a/b;
    ans++;
    printf("%lld\n",ans);
    return 0;
}

最新文章

  1. Android之解析XML
  2. 【转】Cookie和Session区别和联系详解
  3. BLE教程 - 官方tutorial翻译
  4. string相关总结
  5. 转: python如何安装pip和easy_installer工具
  6. paip.java c# .net php python调用c++ c dll so windows api 总结
  7. OC基础--OC内存管理原则和简单实例
  8. OOA/OOD/OOP(了解)
  9. thinkphp开发技巧经验分享
  10. Js获取当前日期时间
  11. 《OD学Hive》第六周20160730
  12. EasyUI_Datagrid学习总结
  13. sudo
  14. ruby Mixin用法
  15. phpcms:五、网站首页(index.html)
  16. IO中手机旋转事件的传递
  17. div+css树形菜单
  18. R语言实现关联规则与推荐算法(学习笔记)
  19. jsp进阶
  20. JavaScript形而上的策略模式

热门文章

  1. appscan 9.0.3.10 版本下载
  2. 2017-2018 ACM-ICPC, Asia Daejeon Regional Contest Solution
  3. this指向 - Node环境
  4. 【运维技术】从零开始搭建开发使用的Kafka环境
  5. 转载:使用 OpenCV 识别 QRCode
  6. 20135320赵瀚青LINUX第八周学习笔记
  7. python之urllib2简单解析HTML页面之篇一
  8. SQL语句主要的分类
  9. Android res目录结构
  10. angular常用的服务