社区讨论
灵异码求条
P1314[NOIP 2011 提高组] 聪明的质监员参与者 3已保存回复 4
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 4 条
- 当前快照
- 1 份
- 快照标识符
- @mhjdtri6
- 此快照首次捕获于
- 2025/11/04 00:56 4 个月前
- 此快照最后确认于
- 2025/11/04 00:56 4 个月前
CPP
#include <bits/stdc++.h>
using namespace std;
const long long N=3e5+7,MOD=10007,N2=1e6+7;
long long n,m,i,j,k,s,a[N][2],b[N][2],qzh[N][2];
long long f(long long mid)
{
long long ans=0;
for(i=0;i<N;i++) qzh[i][0]=qzh[i][1]=0;
for(i=0;i<=n;i++)
{
qzh[i][0]=ans;
ans+=(a[i][0]>=mid?a[i][1]:0);
}
ans=0;
for(i=0;i<N;i++)
{
qzh[i][1]=ans;
ans+=(a[i][0]>=mid?1:0);
}
ans=0;
for(i=0;i<m;i++)
{
ans+=(qzh[b[i][1]][0]-qzh[b[i][0]-1][0])*(qzh[b[i][1]][1]-qzh[b[i][0]-1][1]);
}
return ans;
}
long long rf()
{
long long l=0,r=114514444444,mid,ans;
for(;r-l>=1;)
{
mid=l+(r-l)/2;
if(f(mid)>=s)
{
ans=mid;
l=mid+1;
}
else{
r=mid-1;
}
}
return ans;
}
int main()
{
cin>>n>>m>>s;
for(i=0;i<n;i++)
{
cin>>a[i][0]>>a[i][1];
}
for(i=0;i<m;i++)
{
cin>>b[i][0]>>b[i][1];
}
f(4);
k=rf();
cout<<min(abs(f(k)-s),abs(f(k+1)-s));
}
90pts
改变第30行r的值会随机WA #2,#7,#15,#17中的两个
改变第30行r的值会随机WA #2,#7,#15,#17中的两个
回复
共 4 条回复,欢迎继续交流。
正在加载回复...