首页 > 解决方案 > C ++ - 计算每边长度小于N的所有可能的不等边三角形

问题描述

使用 3 <= N <= 100000,我尝试了以下 O(n^2) 算法,但我希望它高效,O(n) 请帮助完成作业:D

typedef long long ll;
int n;
int solve(int n)
{
    int ans=0;
    for(int i = n; i >= 3; i--)
    {
        int j = 1, k = i -1;
        while(j < k)
        {
            if(j + k > i)
            {
                ans += k - j;
                k--;
            }

            else
                j++;
        }
    }
    return ans;
}

标签: c++c++14

解决方案


推荐阅读