讨论/题目交流/学校oj上的题,求最优解?/
学校oj上的题,求最优解?

某天TanXi在写如下的程序

int solve(int n)
{
    int res = 1;
    for(int i = 0; i <= n; i++)
    {
        int pow = 1 << i;
        int tmp = 1;
        for(int j = 0; j < pow; j++)
        {
            tmp *= 2;
        }
        res *= 1 + tmp;
    }
    return res;
}

“太辣鸡了”,ChenHC看到之后说,然后写了一个同样功能但是更快并且可用范围更广的函数。“我也会啊”,TanXi心虚的回答。

作为TanXi最好的朋友,你能帮助他解决这个问题以免被ChenHC嘲笑吗?

展开讨论
___zm发起于 2019-10-09
最近编辑于 2019-10-20
共 1 个讨论
long long solve(long long n)
{
    long long res = 3;
    long long pre_res=2;
    for(long long i = 1; i <= n; i++)
    {
        long long temp=pre_res*pre_res%1000000007;
        pre_res=temp;
        res *= 1 + temp;
        res%=1000000007;
    }
    return res;
}

这样TLE了,不知道还能怎样优化,求大家帮助!比心心