求优化
  • 板块灌水区
  • 楼主封禁用户
  • 当前回复1
  • 已保存回复1
  • 发布时间2024/1/29 10:03
  • 上次更新2024/1/29 11:34:26
查看原帖
求优化
1246532
封禁用户楼主2024/1/29 10:03

题目

本傻逼的代码求优化

#include<bits/stdc++.h>
using namespace std;
long long a[100000];//十年OI一场空,不开longlong见祖宗  10e15 吓死个人 
int main(){
	
	long long n,ans=0;
	scanf("%lld",&n);
	int z,f;
	for(int i=1;i<=n;i++){
		scanf("%lld",&a[i]);
	}
	//要想完成最后一步需变成差值
	// 两种 1 2 3 4 5
	// -1 -2 -3 -4 -5 
	// 开头特判一次对齐 
	int standard=1;
	if(a[1]<standard&&a[1]!=0){//跟标准比大小 
		int cha = standard-a[1];
		ans++;
		int o=1;
		for(int i=2;i<=n;i++){
			//cout<<"+ cha "<<cha<<endl;
			a[i]+=(cha+o);
			//cout<<
			o++;
		}
	}else if(a[1]>standard&&a[1]!=0){
		int cha = a[1]-standard;
		ans++;
		int o=1;
		for(int i=2;i<=n;i++){
			a[i]-=(cha+o); 
			o++;
		}
		 
	}
	a[1]=1;
	standard=2;
	for(int i=2;i<=n;i++){
		int cz=0;//差值 
		/*for(int j=1;j<=n;j++){
			cout<<a[j]<<" ";
		}*/ 
		if(a[i]<standard&&a[i]!=0){//跟标准比大小 
		
			int cha = standard-a[i];
			ans+=cha;
			a[i]=standard; 
			//cout<<"+ cha "<<cha<<endl;
			int o=2;
			for(int j=i+1;j<=n;j++){
				a[j]+=o*cha;
				o++;
			}
		}else if(a[i]>standard&&a[i]!=0){
			
			int cha = a[i]-standard;
			//cout<<"- cha "<<cha<<endl;
			ans+=cha;
			a[i]=standard; 
			int o=2;
			for(int j=i+1;j<=n;j++){
				a[j]-=o*cha; 
				o++;
			//	cout<<
			}
		}
		cout<<ans<<endl;
		standard++;
		
		//cout<<endl;
	}
	cout<<ans+1<<endl;
	return 0;
}
2024/1/29 10:03
加载中...