求此做法的正确性2
查看原帖
求此做法的正确性2
416975
sbno333楼主2023/12/17 00:42

这是这道题我的代码,经过各种调试卡过了数据。

#include<bits/stdc++.h>
using namespace std;
#define int long long
int n;
int a[1000009];
int s;
int ga2(int zj){
	int a2;
	a2=0;
	int gc;
	gc=1e16+7;
	for(int i=s+1;i<=n;i++){
		gc=min(gc,(a[s]+zj-a[i])/(i-s));
	}
	if(s==n){
		gc=0;
	}
	for(int i=1;i<=n;i++){
		a2+=(s-i)*gc+a[s]+zj-a[i];
	}
	return a2;
}
void _main(){
	cin>>n;
	for(int i=1;i<=n;i++){
		cin>>a[i];
	}

	s=0;
	for(int i=1;i<=n;i++){
		if(a[i]>a[s]){
			s=i;
		}
	}
	int a1;
	a1=0;
	for(int i=1;i<=n;i++){
		a1+=a[s]-a[i];
	}	
	int a2;
	a2=1e16;
	for(int i=0;i<=2000;i++){
		a2=min(a2,ga2(i));
	}
	cout<<min(a1,a2)<<endl;
}
signed main(){
	int t;
	cin>>t;
	while(t--){
		_main();
	}
	return 0;
}

求hack。

2023/12/17 00:42
加载中...