样例不过,求助
查看原帖
样例不过,求助
542633
ma_yu_chen_楼主2024/8/4 17:52
#include<bits/stdc++.h>
using namespace std;
int n,k;
int a[105][105];
struct node{
    int x,y,z;
}l[105];
node lm[105];
int mx=-1;
bool cmp(node x,node y){
    return x.z>y.z;
}
void dfs(int x,int y){
    if(y>x) return ;
    if(x==n+1){
        sort(l+1,l+n+1,cmp);
        int sum=0;
        int m=k;
        for(int i=1;i<=n;i++){
            if(m){
                sum+=l[i].z*3;
                m--;
            }else sum+=l[i].z;
        }
        if(sum>mx){
            mx=sum;
            //for(int i=1;i<=n;i++) lm[i]=l[i];
        }
        return ;
    }
    l[x].x=x;
    l[x].y=y;
    l[x].z=a[x][y];
    dfs(x+1,y);
    dfs(x+1,y+1);
}
int main(){
    cin>>n>>k;
    for(int i=1;i<=n;i++)
        for(int j=1;j<=i;j++)
            cin>>a[i][j];
    dfs(1,1);
    //for(int i=1;i<=n;i++) cout<<lm[i].x<<' '<<lm[i].y<<' '<<lm[i].z<<endl;
    cout<<mx;
	return 0;
}
2024/8/4 17:52
加载中...