社区讨论
0pts求条,马蜂优良
P4653[CEOI 2017] Sure Bet参与者 2已保存回复 4
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 4 条
- 当前快照
- 1 份
- 快照标识符
- @mlhco1je
- 此快照首次捕获于
- 2026/02/11 09:27 上周
- 此快照最后确认于
- 2026/02/12 19:55 7 天前
我很菜喵,思路是没有的喵
CPP#include<bits/stdc++.h>
#define ll long long
#define db double
#define endl '\n'
#define int register int
#define AKIOI ios::sync_with_stdio(false);cin.tie(0),cout.tie(0)
#define AKNOI return 0;
#define db double
using namespace std;
ll n;
db a[100005],b[100005],suma[100005],sumb[100005],l,r,mid,ans;
bool check(db x){
ll sa,sb;
for(int i=n;i>=1;i--){
bool f=0;
if(sa<x){
if(a[i]>1){
sa+=a[i]-1;
sb-=1;
}
else return false;
f=1;
}
if(sb<x){
if(b[i]>1){
sa-=1;
sb+=b[i]-1;
}
else return false;
f=1;
}
if(!f){
return true;
}
}
}
signed main(){
AKIOI;
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i]>>b[i];
}
sort(a+1,a+n+1);
sort(b+1,b+n+1);
for(int i=1;i<=n;i++){
suma[i]=suma[i-1]+a[i];
sumb[i]=sumb[i-1]+b[i];
}
const double EPS=1e-6;
l = 1;
r = n;
while(r-l>EPS){
mid=(l+r)/2;
if(check(mid)){
l=mid+1;
ans=mid;
}
else r=mid-1;
}
cout<<ans;
AKNOI;
}
回复
共 4 条回复,欢迎继续交流。
正在加载回复...