求助
查看原帖
求助
1573756
weihaisunyingjie楼主2024/12/22 07:41
#include<bits/stdc++.h>
using namespace std;
long long n,m,f1[110][110][110],f2[110][110][110],a[110],sum[110];
int mod(int x){
    return (x%10+10)%10;
}
int main(){
    cin>>n>>m;
    for(long long i=1;i<=n;i++){cin>>a[i];sum[i]=sum[i-1]+a[i];}
    for(long long i=1;i<=n;i++){a[i+n]=a[i],sum[i+n]=sum[i]+sum[n];}
    memset(f2,127,sizeof(f2));
    for(long long i=1;i<=2*n;i++){
        for(long long j=i;j<=2*n;j++){
            f1[i][j][1]=f2[i][j][1]=mod(sum[j]-sum[i-1]);
        }
    }
    for(long long l=1;l<=n;l++){
        for(long long i=1,j=i+l-1;j<=2*n;i++,j++){
            for(long long h=2;h<=m;h++){
                for(long long k=i+h-1;k<j;k++){
                    f1[i][j][h]=max(f1[i][j][h],f1[i][k][h-1]*mod(sum[j]-sum[k]));
                    f2[i][j][h]=min(f2[i][j][h],f2[i][k][h-1]*mod(sum[j]-sum[k]));
                }
            }
        }
    }
    long long maxn=0,minn=0x7fffffff;
    for(long long i=1;i<=n;i++){
        maxn=max(maxn,f1[i][i+n-1][m]);
        minn=min(minn,f2[i][i+n-1][m]);
    }
    cout<<minn<<endl<<maxn;
}
2024/12/22 07:41
加载中...