40求调
查看原帖
40求调
1174984
wuzhexu楼主2025/6/12 18:59

rt

#include<bits/stdc++.h>

using namespace std;

int n,a[30][30],f[30],w[30],ans;

signed main(){
	
	cin>>n;
	
	ans=n;
	
	for(int i=1;i<=n;i++){
		cin>>w[i];
	}
	
	for(int i=1;i<=n;i++){
		
		for(int j=i+1;j<=n;j++){
			
			cin>>a[i][j];
			
		}
		
	}
	
	for(int i=n;i>=1;i--){
		
		f[i]=w[i];
		
		for(int j=i+1;j<=n;j++){
			
			if(a[i][j]){
				f[i]=max(f[i],f[j]+w[i]);
			}
			
		}
		if(f[ans]<f[i]) ans=i;
	}
	
	cout<<ans<<endl;
	
	for(int i=ans,j=ans+1;j<=n;j++){
		
		if(a[i][j]&& f[i]==f[j]+w[i]){
			
			cout<<"i=j"<<endl;
			
		}
		
	}cout<<f[ans]<<endl;
	
}
2025/6/12 18:59
加载中...