MLE 求助
查看原帖
MLE 求助
931707
017_007楼主2023/4/6 16:41

rt

#include<bits/stdc++.h>

#define ll long long

using namespace std;

ll n,dis[20][20],f[1<<20][20],ans;

int main(){
	memset(f,20,sizeof(f));
	ans=f[1][1];
	f[1][0]=0;
	scanf("%lld",&n);
	for (ll i=0;i<n;++i) for (ll j=0;j<n;++j) scanf("%lld",&dis[i][j]);
	for (ll k=1;k<(1<<n);k+=2){
		for (ll i=0;i<n;++i){
			if (!((k>>i)&1)) continue;
			for (ll j=0;j<n;++j){
				if (j==i) continue;
				if (!((k>>j)&1)) continue;
				f[k][i]=min(f[k][i],f[k^(1<<i)][j]+dis[j][i]);
			}
		}
	}
	for (ll i=0;i<n;++i) ans=min(ans,f[(1<<n)-1][i]+dis[i][0]);
	printf("%lld\n",ans);
	return 0;
}

如果f数组开20就会MLE,但是开19的话最后一个测试点会RE,有没有dalao知道如何解决QAQ

2023/4/6 16:41
加载中...