求助!!!
查看原帖
求助!!!
984018
_Acheron_楼主2023/9/25 21:01

请问大神们为什么会wa两个点

#include<bits/stdc++.h>
#define int long long
using namespace std;
int n,m,a[105],fax[105][105][15],fin[105][105][15],ansa=1e9,ansb;
signed main(){
	scanf("%lld%lld",&n,&m);
	for(int i=1;i<=n;i++){
		scanf("%lld",&a[i]);
		a[i+n]=a[i];
	}
	for(int i=1;i<=2*n;i++) a[i]+=a[i-1];
	memset(fin,0x3f,sizeof(fin));
	for(int i=1;i<=2*n;i++){
		for(int j=1;j<=2*n;j++){
			fax[i][j][1]=fin[i][j][1]=((a[j]-a[i-1])%10+10)%10;
		}
	}
	for(int i=1;i<=2*n;i++){
		for(int j=i+1;j<=2*n;j++){
			for(int k=2;k<=m;k++){
				for(int l=i;l<j;l++){
					fax[i][j][k]=max(fax[i][j][k],fax[i][l][k-1]*fax[l+1][j][1]);
					fin[i][j][k]=min(fin[i][j][k],fin[i][l][k-1]*fin[l+1][j][1]);
				}
			}
		}
	}
	for(int i=1;i<=n;i++){
		ansa=min(ansa,fin[i][i+n-1][m]);
		ansb=max(ansb,fax[i][i+n-1][m]);
	}
	printf("%lld\n%lld",ansa,ansb);
	return 0;
}
2023/9/25 21:01
加载中...