zoukankan      html  css  js  c++  java
  • 4.21 每日一题题解

    勘测

    涉及知识点:

    • 找规律/斐波那契数列

    solution:

    • (先注意审题,这是一颗二叉树,而且模数是1e10+7)
    • (先推出来前5项,分别为1,3,6,11,19)
    • (没错,结束了,a[n] = a[n-1] + a[n-2] + 2)
    • (当然,如果想通过正确的姿势通过这道题,接着看:)
    • (只需要记录两个变量:有一个孩子的节点个数x,以及没有孩子的节点个数y)
    • (n = 2的时候,x = 1,y = 1)
    • (此时x和y都可以产生一个孩子节点,新产生节点个数 = (x + y))
    • (有一个孩子的节点就变成了有两个孩子的节点,并且无法再产生孩子)
    • (没有孩子的节点就变成了有一个孩子的节点 ,转移一下,式子就出来了:)
    • (x = y, y = (x+y))

    暴力std:

    #include <bits/stdc++.h>
    using namespace std;
    #define ll long long 
    const ll mod = 1e10 + 7;
    ll a[5000005];
    int main()
    {
        ll n;
        cin>>n;
        a[1] = 1,a[2] = 3;
        for(int i=3;i<=n;i++){
            a[i] = (a[i-1] + a[i-2] + 2);
            a[i] %= mod;
        }
        cout<<a[n]<<endl;
        return 0;
    }
    

    规范std:

    #include <bits/stdc++.h>
    using namespace std;
    #define ll long long 
    const ll mod = 1e10 + 7;
    ll a[5000005];
    int main()
    {
        ll n,ans = 1;
        cin>>n;
        a[0] = 1,a[1] = 1;
        for(int i=2;i<=n;i++){
            a[i] = (a[i-1] + a[i-2])%mod;
            ans = (ans + a[i])%mod;
        }
        cout<<ans<<endl;
        return 0;
    }
    
  • 相关阅读:
    动态内存
    数组
    localstorage基础
    xampp 虚拟机配置
    浏览器兼容性问题积累
    做动画的一大接口 requestAnimationFrame
    canvas 基础
    svn--confilct了怎么办?
    【javascript设计模式】构造器模式、模块模式、单例模式
    关于优雅降级和渐进增强
  • 原文地址:https://www.cnblogs.com/QFNU-ACM/p/12742209.html
Copyright © 2011-2022 走看看