• 2019中山大学程序设计竞赛(重现赛)斐波那契/


    2019中山大学程序设计竞赛(重现赛)

    1002 三角形(斐波那契)

    题意:给你n个木棒,判断其能否组成三角形。
    这道题当时没做出来,后来看了题解,感觉acm的水还是很深的。

    思路:判断能否组成三角形的情况比较多,故判断不能组成三角形的,那就是a[i]+a[i+1]=a[i+2],仔细一看这不是斐波那契数列吗?
    因为这个数据量很大5*e6,而且众所周知,斐波那契数列上升速度(指数)还是十分快的。
    F(100)=35422484179261915075>2的68次方,远远大于最长的棍子长度。
    所以我们可以得出当n>100(50也行)时必能组成三角形。
    1.n<100 先排序再进行比较,判断 ai+ai+1>ai+2;
    2.n>=100,直接判断"YES";
    在这里插入图片描述
    代码待补完:

    #include<cstdio>
    #include<cstring>
    #include<cstdlib>
    #include<cmath>
    #include<iostream>
    #include<algorithm>
    #include<vector>
    #include<map>
    #include<set>
    #include<queue>
    #include<string>
    #include<bitset>
    #include<utility>
    #include<functional>
    #include<iomanip>
    #include<sstream>
    #include<ctime>
    #define ll long long
    using namespace std;
    
    int k[5000005];
    
    int main()
    {
        //ios::sync_with_stdio(false);
        int n;
        while (scanf("%d", &n) != EOF)
        {
            if (n < 50)
            {
                for (int i = 0; i < n; i++)
                    scanf("%d", &k[i]);
                sort(k, k + n);
                int flag = 0;
                for (int i = 0; i < n - 2; i++)
                {
                    if (k[i] + k[i + 1] > k[i + 2])
                    {
                        flag = 1;
                        break;
                    }
                }
                if (flag)
                    printf("YES\n");
                else printf("NO\n");
            }
            else
                cout << "YES" << endl;
        }
        return 0;
    }
  • 相关阅读:
    conda更换为清华镜像源
    NVDIA的GPU驱动升级
    Windows使用nvidia-smi查看GPU信息
    查询GPU是否支持CUDA
    PyTorch教程【一】Pytorch环境的配置及安装
    JAVA基础篇—继承
    SQL
    随机数
    hdu 4751 Divide Groups 二分图
    hdu 4126 Genghis Khan the Conqueror hdu 4756 Install Air Conditioning 最小生成树
  • 原文地址:https://www.cnblogs.com/gidear/p/11773650.html
Copyright © 2020-2023  润新知