是数据水了还是时间复杂度我估错了?
  • 板块学术版
  • 楼主ygwlan
  • 当前回复1
  • 已保存回复1
  • 发布时间2023/9/30 22:32
  • 上次更新2023/11/2 16:52:56
查看原帖
是数据水了还是时间复杂度我估错了?
747917
ygwlan楼主2023/9/30 22:32

P5019

#include <bits/stdc++.h>
#include <cstdio>
using namespace std;
const int Maxn=1e5+9;
int a[Maxn];
int minn=0,maxn=0;
int sum=0;
int main(){
	//freopen("road.in","r",stdin);
//	freopne("road.out","w",stdout);
	int n; 
	cin>>n;
	for(int i=1;i<=n;i++){
		cin>>a[i];
        if(a[i]==0)sum++;
		maxn=max(maxn,a[i]);
	}
	minn=maxn+10;
	int ans=0;
	while(sum!=n){
		int i=0;
		while(i<=n){
            i++;
			minn=maxn+10;
			int left=i;
			for(i;i<=n;i++){
				if(a[i]==0){
					break;
				}
				minn=min(minn,a[i]);
			}
            if(minn==maxn+10)
                continue;
			ans+=minn;
			for(left;left<i;left++){
				a[left]-=minn;
				if(a[left]==0){
					sum++;
				}
			}
			if(sum==n){
				break;
			}
		}		
	}
	cout<<ans;
//	fclose(stdin);
//	fclose(stdout);
	return 0;
}

自估O(n∗n)O(n*n)

2023/9/30 22:32
加载中...