社区讨论
贪心求条
P14915「QFOI R3」算法竞赛参与者 2已保存回复 2
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 2 条
- 当前快照
- 1 份
- 快照标识符
- @mjr0jvyx
- 此快照首次捕获于
- 2025/12/29 18:26 2 个月前
- 此快照最后确认于
- 2026/01/01 19:35 2 个月前
如代码,我的d=0的部分没有问题,其他部分求一个hack数据
CPP#include<bits/stdc++.h>
#define ll long long
using namespace std;
ll n,k,d;
ll a[100010];
ll cnt;
int main(){
cin>>n>>k>>d;
for(int i=1;i<=n;i++) cin>>a[i];
sort(a+1,a+1+n);
if(d==0){
for(int i=1;i<=n;i++){
int l=i;
while(a[i]==a[i+1]) i++;
cnt+=(k*10000000-(i-l+1))%k;
}
cout<<cnt;
}else{
int e;
for(e=1;e+k-1<=n;e+=k)
for(int j=e;j<=e+k-1;j++)
if(a[j]-a[j-1]>d&&j!=e) cnt+=(a[j]-a[j-1])/d-1;
for(int j=e;j<=n;j++) if(a[j]-a[j-1]>d&&j!=e) cnt+=(a[j]-a[j-1])/d-1;
int i;
for(i=1;i*k<cnt+n;i++);
cout<<i*k-n;
}
return 0;
}
回复
共 2 条回复,欢迎继续交流。
正在加载回复...