社区讨论

40分求助

P1880[NOI1995] 石子合并参与者 5已保存回复 4

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
4 条
当前快照
1 份
快照标识符
@lo7k80fi
此快照首次捕获于
2023/10/27 03:10
2 年前
此快照最后确认于
2023/10/27 03:10
2 年前
查看原帖
CPP
#include<bits/stdc++.h>
using namespace std;
int n,a[1001],f[1001],he[1001],maxx,minn=949992,hebing[1001];
int main(){
	cin>>n;
	for(int i=1;i<=n;i++) {
		cin>>a[i];
		a[i+n]=a[i];
	}

	for(int st=1;st<=n;st++){
	f[st]=0;
	f[st+1]=a[st]+a[st+1];
	for(int t=st;t<=n+st;t++){
		he[t]=he[t-1]+a[t];
		he[t+n]=he[t];
	}
	he[st]=0;
	for(int i=st+2;i<=n+st+2;i++){
	//	hebing[i]=min(he[i-1]+he[i],he[i-2]+)
		f[i]=min(f[i-1]+he[i],f[i-2]+he[i]+a[i]+a[i-1]);
	}
	minn=min(minn,f[n+st-1]);
	memset(he,0,sizeof(he));
}
	for(int st=1;st<=n;st++){
	f[st]=0;
	f[st+1]=a[st]+a[st+1];
	for(int t=st;t<=n+st;t++){
		he[t]=he[t-1]+a[t];
		he[t+n]=he[t];
	}
 	he[st]=0;
	for(int i=st+2;i<=n+st;i++){
		f[i]=max(f[i-1]+he[i],f[i-2]+he[i]+a[i]+a[i-1]);
	}
	maxx=max(maxx,f[n+st-1]);
	memset(he,0,sizeof(he));
}
	cout<<minn<<endl<<maxx;
	return 0;
}

回复

4 条回复,欢迎继续交流。

正在加载回复...