社区讨论

贪心求条

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 条回复,欢迎继续交流。

正在加载回复...