社区讨论
50pts 求调
P14915「QFOI R3」算法竞赛参与者 1已保存回复 0
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @mjppk62m
- 此快照首次捕获于
- 2025/12/28 20:31 2 个月前
- 此快照最后确认于
- 2026/01/01 10:10 2 个月前
rt,二分答案,不知道怎么就炸了。
CPP#include<bits/stdc++.h>
#define ll long long
#define db double
#define vec vector
#define pb push_back
#define pll pair<ll,ll>
#define mkp make_pair
#define il inline
#define endl "\n"
using namespace std;
const ll mod=998244353;
const ll inf=1e18;
ll n,k,d,a[100005];
bool ck(ll x){
ll p=x*k;
if(p<n) return 0;
ll t=p-n,now=1,rt=0;
for(ll i=2;i<=n;i++){
if(now==k||now==0){
now=1;
}else{
if(a[i]-a[i-1]>d){
if((k-now)*d>=(a[i]-a[i-1])){
rt+=k-now-1,now=0;
}else{
rt+=k-now,now=1;
}
}else now++;
}
}
return rt<=t;
}
int main(){
ios::sync_with_stdio(false);
cin.tie(0),cout.tie(0);
cin>>n>>k>>d;
for(ll i=1;i<=n;i++) cin>>a[i];
sort(a+1,a+n+1);
ll l=0,r=1e13,ans=0;
while(l<=r){
ll md=(l+r)>>1;
if(ck(md)) r=md-1,ans=md;
else l=md+1;
}
cout<<k*ans-n<<endl;
return 0;
}
回复
共 0 条回复,欢迎继续交流。
正在加载回复...