6 solutions

  • 1
    @ 2026-2-3 10:39:28

    https://lizikid.top/p/A1574

    题目传送门

    思路:

    E=mc2E=mc²

    AC CODE:

    #include<bits/stdc++.h>
    using namespace std;
    const int N=1e6+10;
    long long r[N],d[N],s[N],t[N];
    int n,m;
    long long b[N];
    bool check(int k)
    {
        for(int i=1;i<=n;i++)
        {
            b[i]=r[i]-r[i-1];
        }
        for(int i=1;i<=k;i++)
        {
            b[s[i]]-=d[i];
            b[t[i]+1]+=d[i];
        }
        long long res=0;
        for(int i=1;i<=n;i++)
        {
            res+=b[i];
            if(res<0)
            {
                return 1;
            }
        }
        return 0;
    }
    int main()
    {
        cin>>n>>m;
        for(int i=1;i<=n;i++)
        {
            cin>>r[i];
        }
        for(int i=1;i<=m;i++)
        {
            cin>>d[i]>>s[i]>>t[i];
        }
        int l=1,r=m;
        while(l<r)
        {
            int mid=l+r>>1;
            if(check(mid))
            {
                r=mid;
            }
            else
            {
                l=mid+1;
            }
        }
        if(check(r))
        {
            cout<<-1<<endl<<r;
        }
        else
        {
            cout<<0;
        }
        return 0;
    }
    

    肯定得全分

    Information

    ID
    198
    Time
    1000ms
    Memory
    256MiB
    Difficulty
    5
    Tags
    # Submissions
    40
    Accepted
    12
    Uploaded By