神兽草泥马「建议收藏」

神兽草泥马

大家好,又见面了,我是全栈君。

描写叙述

念情发现了一些宝藏。 而且这些宝藏还是无穷无尽的!。念情正准备冲上去洗劫宝藏的时候。出来了一仅仅护宝神兽。名叫草泥马!

神兽草泥马「建议收藏」

守护宝藏的神兽说:这里有N堆宝藏。他们都是无穷无尽的,你拿走之后,又会出现原来那么多的宝藏,只是你仅仅能取连续的x堆宝藏。而且不能反复取连续的x堆宝藏。假设你这样做,全部的宝藏将消失。
念情非常聪明。这点小问题不在话下,他全然能带走最多的宝藏,于是他大叫着:“我的!我的!都是我的!

”。冲上去洗劫了一番。

如今告诉你每堆宝藏的宝藏数,你能知道念情这次得到了多少宝藏么?
Hint:
如果如今有三堆宝藏,每堆宝藏的宝藏数分别为 1  2  1
那么念情先取连续一堆: 1 + 2 + 1 = 4
再去连续两堆: ( 1 + 2 ) + ( 2 + 1 )= 6
最后取连续三堆:( 1 + 2 + 1 )= 4
所以念情拿走的宝藏为 14
 

 

输入

開始有一个整数T,表示T组測试数据
接下来每组開始一个N,表示有N堆宝藏
接下来一行有N个数,表示每堆宝藏的宝藏数
N<50000每堆宝藏的宝藏数<10000

输出

输出念情带走的宝藏数

例子输入

1
3
1 2 1

例子输出

14

#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int n;
__int64 a[10010],b[10010],sum;
int main()
{
    int t;
    scanf("%d",&t);
    while(t--)
    {
        scanf("%d",&n);
        sum=0;
        memset(b,0,sizeof(b));
        memset(a,0,sizeof(a));
        for(int i=1;i<=n;i++)
        {
            scanf("%d",&a[i]);
        }
        for(int i=1;i<=n;i++)
        {
            b[i]=(a[i]*(n-i+1))*i;
        }
        for(int i=1;i<=n;i++)
            sum+=b[i];
        printf("%I64d\n",sum);
    }
    return 0;
}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/115816.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号