zoukankan      html  css  js  c++  java
  • 神兽草泥马

    描写叙述

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

    守护宝藏的神兽说:这里有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
    ",sum);
        }
        return 0;
    }
    


  • 相关阅读:
    LINQ查询表达式(5)
    LINQ查询表达式(4)
    并不对劲的loj2279
    并不对劲的bzoj1563:p1912:[NOI2009]诗人小G
    并不对劲的loj507
    并不对劲的loj2332
    并不对劲的loj6191
    并不对劲的bzoj4552:p2824:[HEOI2016/TJOI2016]排序
    并不对劲的bzoj3924:loj2135:p3345:[ZJOI2015]幻想乡战略游戏
    并不对劲的bzoj3295:[CQOI2011]动态逆序对
  • 原文地址:https://www.cnblogs.com/yxwkf/p/5238086.html
Copyright © 2011-2022 走看看