wa,0pts!
查看原帖
wa,0pts!
601214
mlgjzst楼主2024/7/8 17:31
#include<bits/stdc++.h>
using namespace std;
long long k[262144][2],q[262144][2],m,n,s;
long long binary_search(long long n,long long m,long long s)
{
    long long W = 500000;
    long long step = 250000;
    long long na = 0;
    while(step > 1)
    {
        long long pre[262144][2] = {0};
        for(int i = 1;i <= n;i++)
        {
            if(k[i][0]>=W)
            {
                pre[i][0]=pre[i-1][0]+k[i][0];
                pre[i][1]=pre[i-1][1]+k[i][1];
            }else
            {
                pre[i][0]=pre[i-1][0];
                pre[i][1]=pre[i-1][1];
            }
        }
        na = 0;
        for(int i = 1;i <= m;i++)
        {
            na += (pre[q[i][1]][0]-pre[q[i][0]][0])*(pre[q[i][1]][1]-pre[q[i][0]][1]);
        }
        if(na < s)
        {
            W=W-step;
        }else if(na > s)
        {
            W=W+step;
        }else
        {
            return 0;
        }
        step/=2;
    }
    return abs(na-s);
}
int main()
{
    cin >> n >> m >> s;
    for(int i = 1;i <= n;i++)
    {
        cin >> k[i][0] >> k[i][1];
    }
    for(int i = 1;i <= m;i++)
    {
        cin >> q[i][0] >> q[i][1];
    }
    cout <<binary_search(n,m,s);
    
}

查不出,实在不知道有啥问题。

2024/7/8 17:31
加载中...