zoukankan      html  css  js  c++  java
  • 【81.82%】【codeforces 740B】Alyona and flowers

    time limit per test2 seconds
    memory limit per test256 megabytes
    inputstandard input
    outputstandard output
    Little Alyona is celebrating Happy Birthday! Her mother has an array of n flowers. Each flower has some mood, the mood of i-th flower is ai. The mood can be positive, zero or negative.

    Let’s define a subarray as a segment of consecutive flowers. The mother suggested some set of subarrays. Alyona wants to choose several of the subarrays suggested by her mother. After that, each of the flowers will add to the girl’s happiness its mood multiplied by the number of chosen subarrays the flower is in.

    For example, consider the case when the mother has 5 flowers, and their moods are equal to 1,  - 2, 1, 3,  - 4. Suppose the mother suggested subarrays (1,  - 2), (3,  - 4), (1, 3), (1,  - 2, 1, 3). Then if the girl chooses the third and the fourth subarrays then:

    the first flower adds 1·1 = 1 to the girl’s happiness, because he is in one of chosen subarrays,
    the second flower adds ( - 2)·1 =  - 2, because he is in one of chosen subarrays,
    the third flower adds 1·2 = 2, because he is in two of chosen subarrays,
    the fourth flower adds 3·2 = 6, because he is in two of chosen subarrays,
    the fifth flower adds ( - 4)·0 = 0, because he is in no chosen subarrays.
    Thus, in total 1 + ( - 2) + 2 + 6 + 0 = 7 is added to the girl’s happiness. Alyona wants to choose such subarrays from those suggested by the mother that the value added to her happiness would be as large as possible. Help her do this!

    Alyona can choose any number of the subarrays, even 0 or all suggested by her mother.

    Input
    The first line contains two integers n and m (1 ≤ n, m ≤ 100) — the number of flowers and the number of subarrays suggested by the mother.

    The second line contains the flowers moods — n integers a1, a2, …, an ( - 100 ≤ ai ≤ 100).

    The next m lines contain the description of the subarrays suggested by the mother. The i-th of these lines contain two integers li and ri (1 ≤ li ≤ ri ≤ n) denoting the subarray a[li], a[li + 1], …, a[ri].

    Each subarray can encounter more than once.

    Output
    Print single integer — the maximum possible value added to the Alyona’s happiness.

    Examples
    input
    5 4
    1 -2 1 3 -4
    1 2
    4 5
    3 4
    1 4
    output
    7
    input
    4 3
    1 2 3 4
    1 3
    2 4
    1 1
    output
    16
    input
    2 2
    -1 -2
    1 1
    1 2
    output
    0
    Note
    The first example is the situation described in the statements.

    In the second example Alyona should choose all subarrays.

    The third example has answer 0 because Alyona can choose none of the subarrays.

    【题目链接】:http://codeforces.com/contest/740/problem/B

    【题解】

    一开始被题目主体的分析搞晕了;
    其实就是把所选择的区间里面的元素全部加在一起;
    显然,如果一个区间里面;所有元素的和为负数。肯定不能选的;
    因为选择以后答案只会减小;
    因为 可能全都不选,所以答案可能为0;

    【完整代码】

    #include <bits/stdc++.h>
    #define LL long long
    using namespace std;
    
    const int MAXN = 200;
    
    LL n,m,a[MAXN],sum[MAXN];
    
    int main()
    {
       // freopen("F:\rush.txt","r",stdin);
        cin >> n >> m;
        for (int i = 1;i <= n;i++)
            cin >> a[i];
        for (int i = 1;i <= n;i++)
            sum[i] = sum[i-1]+a[i];
        LL ans = 0;
        for (int i = 1;i <= m;i++)
        {
            int l,r;
            cin >> l >> r;
            int dd = sum[r]-sum[l-1];
            if (dd >0)
                ans += dd;
        }
        cout << ans << endl;
        return 0;
    }
  • 相关阅读:
    2014-12-13 ~ 2015-11-13
    Burnside引理与polya定理
    HDU 5418 Victor and World (状态压缩dp)
    HDU 5446 Unknown Treasure(lucas + 中国剩余定理 + 模拟乘法)
    HDU 5412 CRB and Queries (整体二分)
    LA 4327 Parade(单调队列优化dp)
    win7远控控制桌面防火墙设置到例外
    win7远控控制桌面
    TCP的三次握手和四次挥手
    ES6 for in与for of 的使用方法及其区别
  • 原文地址:https://www.cnblogs.com/AWCXV/p/7626944.html
Copyright © 2011-2022 走看看