本地测试是对的,提交就全WA
查看原帖
本地测试是对的,提交就全WA
1248152
cdAGcwhml楼主2024/9/1 15:24
#include<bits/stdc++.h>
using namespace std;
int n;int k,memo[35],ma[35],ml,m3,k2,ml2,ma2[35];
struct node{
    int p[35];
    int l;
    int len;
}a[35];
int dfs(int deep){
    if(deep==n){
        return memo[deep-1];
    }
    if(memo[deep]!=0){
        return memo[deep];
    }
    int b,c,ma2;
    memo[deep]=a[deep].l;
    for(int i=0;i<a[deep].len;i++){
        b=a[deep].l+dfs(a[deep].p[i]);
		c=memo[deep];
		if(b>c){
			ma2=a[deep].p[i];
			memo[deep]=b;
		}
		else{
			memo[deep]=c;
		}
    }
    if(ma2!=0){
        ma[ml]=ma2;
  		ml++;	
	}

    return memo[deep];
}
int main(){
    cin>>n;
    for(int i=0;i<n;i++){
        cin>>a[i].l;
    }
    for(int i=0;i<n;i++){
        a[i].len=0;
        for(int j=i+1;j<n;j++){
            cin>>k;
            if(k==1){
                a[i].p[a[i].len]=j;a[i].len+=1;
            }
        }
    }
    k=-1;
    for(int i=0;i<n;i++){
    	ml=0;
    	k2=dfs(i);
    	if(k2>k){
    		m3=i+1;
    		k=k2;
    		ml2=ml;
    		for(int j=0;j<ml2;j++){
    			ma2[j]=ma[j]; 
			}
    		
		}
	}
	cout<<m3;
    for(int i=ml2-1;i>=0;i--){
    	cout<<" "<<ma2[i]+1;
	}
	cout<<endl<<k;
    return 0;
}
2024/9/1 15:24
加载中...