比赛 二进制状态压缩 评测结果 AAAAA
题目名称 最短Hamilton路径 最终得分 100
用户昵称 宇战 运行时间 4.074 s
代码语言 C++ 内存使用 89.77 MiB
提交时间 2023-07-27 11:27:11
显示代码纯文本
#include<bits/stdc++.h>
    using namespace std;
    int n,m,s,a[100][100],ans=0x3f3f3f3f,v[1<<20][21];    
    int main(){
        freopen("ham.in","r",stdin);
        freopen("ham.out","w",stdout);
        cin>>n;
        for(int i=0;i<n;i++){
            for(int j=0;j<n;j++){
                 cin>>a[i][j]; 
            }
        }
        memset(v,1000000,sizeof(v));
        v[1][0]=0;
        for(int i=1;i<1<<n;i++){
                for(int j=0;j<n;j++){
                    if((i>>j)&1){
                        for(int k=0;k<n;k++){
                            if((i^1<<j)>>k&1){
                                v[i][j]=min(v[i^1<<j][k]+a[k][j],v[i][j]);
                            }
                        }
                    }
                }
        } 
        cout<<v[(1<<n)-1][n-1];
        return 0;
    }