/ Randle /

记录详情

Accepted

/in/foo.cc:12:6: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
 main()
      ^
# 状态 耗时 内存占用
#1 Accepted 6ms 4.305 MiB
#2 Accepted 5ms 4.301 MiB
#3 Accepted 3ms 4.32 MiB
#4 Accepted 4ms 4.426 MiB
#5 Accepted 6ms 4.305 MiB
#6 Accepted 4ms 4.301 MiB
#7 Accepted 4ms 4.301 MiB
#8 Accepted 8ms 4.301 MiB
#9 Accepted 5ms 4.32 MiB
#10 Accepted 4ms 4.301 MiB

代码

#include <bits/stdc++.h>
using namespace std;
int n,ans=99999999;
int s[16][16];
int f[1<<16][16];
int Min(int x,int y)
{
    if(x==-1) return y;
    if(y==-1) return x;
    return x<y? x:y;
}
main()
{
    int i,j,k;
    cin>>n;
    n++;
    for(i=0;i<n;i++)
    for(j=0;j<n;j++)
        cin>>s[i][j];
    for(k=0;k<n;k++)
    for(i=0;i<n;i++)
    for(j=0;j<n;j++)
    s[i][j]=min(s[i][j],s[i][k]+s[k][j]);
    memset(f,-1,sizeof(f));
    f[1][0]=0;
    for(i=1;i<(1<<n);i++)
    for(j=0;j<n;j++) 
        if(f[i][j]!=-1)
            for(k=0;k<n;k++) 
            if(!(i&(1<<k)))
            {
                f[i|(1<<k)][k]=Min(f[i|(1<<k)][k],f[i][j]+s[j][k]);
                if((i|(1<<k))==(1<<n)-1)
                ans=min(ans,f[i|(1<<k)][k]+s[k][0]);
            }
    cout<<ans;
    return 0;
}

信息

递交者
类型
递交
题目
送外卖
题目数据
下载
语言
C++
递交时间
2017-10-09 20:55:38
评测时间
2017-10-09 20:55:38
评测机
分数
100
总耗时
54ms
峰值内存
4.426 MiB