社区讨论

wa,0pts!

P1314[NOIP 2011 提高组] 聪明的质监员参与者 1已保存回复 0

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
0 条
当前快照
1 份
快照标识符
@lycs9rfd
此快照首次捕获于
2024/07/08 17:32
2 年前
此快照最后确认于
2024/07/08 19:20
2 年前
查看原帖
CPP
#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);
    
}
查不出,实在不知道有啥问题。

回复

0 条回复,欢迎继续交流。

正在加载回复...