zoukankan      html  css  js  c++  java
  • A. Greg and Array 夜

    http://codeforces.com/contest/295/problem/A

    对于一个数组 如果是对某一连续的区间进行加上某个数 或者以等差数列的形式进行加数

    都可以对此区间进行一定的标记 最后遍历一边就可以出结果

    代码:

    #include<iostream>
    #include<cstdio>
    #include<cstring>
    #include<string>
    #include<set>
    #include<map>
    #include<vector>
    #include<queue>
    #include<stack>
    
    #define LL long long
    
    using namespace std;
    const int N=110000;
    const LL MOD = 1000000007;
    LL a[N],b[N];
    int l[N],r[N];
    LL value[N],num[N];
    
    int main()
    {
        //freopen("data.in","r",stdin);
        int n,m,k;
        while(cin>>n>>m>>k)
        {
            for(int i=1;i<=n;++i)
            cin>>a[i];
            for(int i=1;i<=m;++i)
            cin>>l[i]>>r[i]>>value[i];
            memset(num,0,sizeof(num));
            while(k--)
            {
                int L,R;
                cin>>L>>R;
                ++num[L];
                --num[R+1];
            }
            memset(b,0,sizeof(b));
            for(int i=1;i<=m;++i)
            {
                num[i]+=num[i-1];
                b[l[i]]+=(value[i]*num[i]);
                b[r[i]+1]-=(value[i]*num[i]);
            }
            //for(int i=1;i<=m;++i)
            //cout<<b[i]<<" ";cout<<endl;
            for(int i=1;i<=n;++i)
            {
                b[i]+=b[i-1];
                cout<<(a[i]+b[i])<<" ";
            }
            cout<<endl;
    
        }
        return 0;
    }
    
  • 相关阅读:
    kubernetes概述与入门
    kubernetes入门到放弃-docker基础篇
    Git远程仓库☞GitLab的使用
    Git远程仓库☞GitHub的使用
    Git版本控制系统
    持续集成-DevOps概念篇
    持续集成扫盲篇
    Centos7系统介绍
    LNMP架构说明
    dynamic_cast c++
  • 原文地址:https://www.cnblogs.com/liulangye/p/3026846.html
Copyright © 2011-2022 走看看