算法全对,但全都MLE,求优化
查看原帖
算法全对,但全都MLE,求优化
540822
HotDogSeller楼主2022/7/15 13:41

RT,自个捏了几个数据全是对的,但全MLE,求大神帮忙优化

#include<iostream>
#include<algorithm>
#include<queue>
#include<set>
#include<cmath>
#include<memory.h>
#include<map>
#include<stack>

#define INF 0x3f

using namespace std;

int n,u,v;
int ga[21][21];
int dp[21][1<<21];

signed main(){
	
	cin>>n;
	
	for(int i=1;i<=n;i++){
		for(int j=1;j<=n;j++){
			cin>>ga[i][j];
		}
	}
	
	memset(dp,INF,sizeof(dp));
	dp[1][1]=0;
	
	for(int k=1;k<=(1<<n)-1;k++){//所有格局 
		for(int i=1;i<=n;i++){
			if(k>>(i-1)&1==false){
				continue;
			}
			for(int j=1;j<=n;j++){
				if(i==j){
					continue;
				}
				if(k>>(j-1)&1){
					continue;
				}
				dp[j][k|(1<<(j-1))]=min(dp[j][k|(1<<(j-1))],dp[i][k]+ga[i][j]);
			
			}
		}
	}
	
	int ans=INF;
	for(int i=2;i<=n;i++){
		ans=min(ans,dp[i][(1<<n)-1]+ga[i][1]);
	}
	
	cout<<ans<<endl;
	
	return 0;
}
2022/7/15 13:41
加载中...