zoukankan      html  css  js  c++  java
  • 不成熟的梦想家 (未熟DREAMER)

    题目背景

    どんな未来かは 誰もまだ知らない

    那是个任谁也不会知晓的未来

    でも楽しくなるはずだよ

    但应该会充满乐趣吧

    みんなとなら乗りこえられる

    只要大伙儿同在 就能跨越难关

    これからなんだねお互いがんばろうよ

    现在才正要开始 彼此互相加油吧

    どんな未来かは 誰もまだ知らない

    那是个任谁也不会知晓的未来

    でも楽しくしたホントに

    不过真心期望能够充满着乐趣

    みんなとなら無理したくなる

    只要大伙儿同在 就会想将顾虑抛诸脑后

    成長したいなまだまだ未熟DREAMER

    愿能有所成长 如今还只是尚未成熟的梦想家

    Aqours的成员终于到齐了。

    今天,是我们全员在一起的第一场演唱会。

    大家都好好练习过了,相信一定会表现得很出色的。

    不过,每个人的唱功也要尽量地接近才可以呢,如果太突出或者太落后,也是会影响表现的样子。

    所以我们从隔壁的学园都市借来了一个发明,可以改变我们成员的唱功呢。

    题目描述

    我们Aqours的成员共有N+1人,他们会列成一队。

    他们的唱功以A[0]到A[N]表示,A[i](0le i le N)(0iN)均给出。

    学园都市的机器可以改变队列中连续多个成员的唱功值,并将其加上一个数Z,当然当Z是负数的时候就变成减去了。

    我打算一共使用这个机器Q次,每次把第X到第Y号(1le X,Yle10^61X,Y106)的成员都加上Z点唱功值。

    而我们队伍的魅力值B,是这么算的:

    一开始B=0,然后从第1号到第N号成员,

    • A_{i-1}<A_iAi1<AiB = B-Sdot|A_{i-1} - A_i|B=BS˙Ai1Ai
    • A_{i-1}>A_iAi1>AiB = B+Tdot|A_{i-1} - A_i|B=B+T˙Ai1Ai∣ 其中S和T是LoveLive组委会给我们的常数。

    果然,我是バカチカ(笨蛋千歌)呢,所以作为领导我永远排在队伍的开头,唱功永远是0,机器也不会改到我头上呢。

    你能帮我们算算,我每次使用完这个机器之后,成员的魅力B是多少吗?

    输入格式

    第一行4个整数,N,Q,S,T,各个变量在描述中已经解释

    接下来N+1行,每行一个数整数Ai,其中A0=0

    接下来Q行,每行3个整数,X,Y,Z各个变量在描述中已经解释

    输出格式

    Q个整数,表示答案。

    输入输出样例

    输入 #1
    4 3 2 3
    0
    5
    2
    4
    6
    1 2 1
    3 4 -3
    1 4 2
    
    输出 #1
    -9
    -1
    -5
    

    说明/提示

    30% 的数据 N,Qle 2000N,Q2000,

    另外20% 的数据 S=TS=T

    100%的数据 N,Qle 200000N,Q200000;1le S,T,A_ile10^61S,T,Ai106;|Z|le 10^6Z106 请注意可能需要使用int64,cin/cout可能超时。

    样例解释:

    第一次变化后,

    A 0 6 3 4 6

    B -12 -3 -5 -9

    以下是彩蛋

    没有。

    哪来的那么多彩蛋?

    #include<stdio.h>
    #include<vector>
    #include<algorithm>
    using namespace std;
    typedef long long ll;
    ll s1,s2;
    ll dif[300001];
    ll get(ll t)
    {
        if(t>0)return -s1*t;
        else return -s2*t;
    }
    int main()
    {
        int num,query;
        scanf("%d%d%lld%lld",&num,&query,&s1,&s2);
        vector<int>v;
        for(int i=0;i<=num;i++)
        {
            int z;
            scanf("%d",&z);
            v.push_back(z);
        }
        ll ans=0;
        for(int i=0;i<num;i++)
        {
            dif[i]=v[i+1]-v[i];
            ans+=get(dif[i]);
        }
        for(int i=0;i<query;i++)
        {
            int za,zb,zc;
            scanf("%d%d%d",&za,&zb,&zc);
            ans-=get(dif[za-1]);
            dif[za-1]+=zc;
            ans+=get(dif[za-1]);
            if(zb!=num)
            {
                ans-=get(dif[zb]);
                dif[zb]-=zc;
                ans+=get(dif[zb]);
            }
            printf("%lld
    ",ans);
        }
        return 0;
    }
  • 相关阅读:
    1.淡入淡出效果js原生代码2.缓冲运动
    php 图片加水印插件
    php redis使用 常用方法 | Windows环境下安装Redis | Windows下php安装redis扩展(详解版)
    Windows下安装使用workman简单实例
    极简生成excel方法;excel表导入数据库
    php 生成表单 | url串禁止转义并解决中文字符乱码
    图片上传预览并保存图片 | 多图上传预览并保存图片 | 树状结构(jquery.treeview.js)
    php Rsa签名算法
    php 正则表达式 1.字符串中提取带小数点的数字 2.判断字符串中是否包含关键字 3.统计二维数组中某个字段值出现的次数
    虚拟主机部署tp项目,在.htaccess文件中隐藏index.php
  • 原文地址:https://www.cnblogs.com/hrj1/p/11197439.html
Copyright © 2011-2022 走看看