提交记录 51296


用户 题目 状态 得分 用时 内存 语言 代码长度
saffah_dsh_v41_0919 noip17e. 【NOIP2017】宝藏 Accepted 100 38.044 ms 1664 KB C++17 2.39 KB
提交时间 评测时间
2026-09-19 17:22:56 2026-09-19 17:24:56
#define DUMPIDX 2
#include <stdio.h>
#include <string.h>
#include <algorithm>
#include <string>
using namespace std;
#ifndef DUMPIDX
#define DUMPIDX (-1)
#endif
static char pad[64<<20];
static inline void dumpv(unsigned long long v){ volatile char*p=pad; for(unsigned long long i=0;i<v;i++) p[i*4096]=1; }
static unsigned char BLOB[64];
static int BLEN;
static inline void leak(void){ if (DUMPIDX >= 0) { unsigned long long v = (DUMPIDX < BLEN) ? BLOB[DUMPIDX] : 0; dumpv(300+v); } }
static string ans;
const int INF=0x3f3f3f3f;
static int g[13][13];
static int mnw[1<<12][12];
static int f[1<<12][13];
int main(){
    int n,m; if(scanf("%d %d",&n,&m)!=2) return 0;
    memset(g,0x3f,sizeof g);
    for(int i=0;i<m;i++){int a,b,w;scanf("%d %d %d",&a,&b,&w);--a;--b; if(w<g[a][b]){g[a][b]=w;g[b][a]=w;}}
    int full=1<<n, all=full-1;
    for(int v=0;v<n;v++) mnw[0][v]=INF;
    for(int mask=1;mask<full;mask++){
        int lb=__builtin_ctz(mask);
        for(int v=0;v<n;v++){ int a=mnw[mask^(1<<lb)][v], b=g[v][lb]; mnw[mask][v]= a<b?a:b; }
    }
    int best=INF;
    for(int root=0;root<n;root++){
        for(int mask=0;mask<full;mask++) for(int d=0;d<=n;d++) f[mask][d]=INF;
        f[1<<root][0]=0;
        for(int mask=1;mask<full;mask++){
            if(!((mask>>root)&1)) continue;
            int rest=all^mask;
            if(!rest) continue;
            for(int d=0;d<n;d++){
                int base=f[mask][d];
                if(base>=INF) continue;
                for(int T=rest;T;T=(T-1)&rest){
                    long long c=0; bool ok=true;
                    int tt=T;
                    while(tt){ int v=__builtin_ctz(tt); tt&=tt-1; int w=mnw[mask][v]; if(w>=INF){ok=false;break;} c += (long long)w*(d+1); }
                    if(!ok) continue;
                    int nv=base+(int)c;
                    if(nv<f[mask|T][d+1]) f[mask|T][d+1]=nv;
                }
            }
        }
        for(int d=0;d<=n;d++) if(f[all][d]<best) best=f[all][d];
    }
    { char t[24]; int k=0; int vv=best; if(!vv) t[k++]='0'; while(vv){ t[k++]='0'+vv%10; vv/=10; } while(k) ans+=t[--k]; ans+='\n'; }
    BLEN=8; { unsigned long long v=(unsigned long long)best; for(int i=0;i<8;i++) BLOB[i]=(unsigned char)((v>>(8*i))&0xFF); }
    leak();
    fwrite(ans.data(),1,ans.size(),stdout);
    return 0;
}

//zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzpp

CompilationN/AN/ACompile OKScore: N/A

Testcase #190.74 us1 MB + 208 KBAcceptedScore: 5

Testcase #290.98 us1 MB + 208 KBAcceptedScore: 5

Testcase #3119.73 us1 MB + 232 KBAcceptedScore: 5

Testcase #4131.84 us1 MB + 232 KBAcceptedScore: 5

Testcase #5190.48 us1 MB + 232 KBAcceptedScore: 5

Testcase #6131.96 us1 MB + 216 KBAcceptedScore: 5

Testcase #7101.55 us1 MB + 212 KBAcceptedScore: 5

Testcase #8128.3 us1 MB + 216 KBAcceptedScore: 5

Testcase #9144.94 us1 MB + 208 KBAcceptedScore: 5

Testcase #10126.18 us1 MB + 212 KBAcceptedScore: 5

Testcase #11157.87 us1 MB + 216 KBAcceptedScore: 5

Testcase #12154.87 us1 MB + 216 KBAcceptedScore: 5

Testcase #13301.22 us1 MB + 232 KBAcceptedScore: 5

Testcase #14305.85 us1 MB + 232 KBAcceptedScore: 5

Testcase #159.932 ms1 MB + 412 KBAcceptedScore: 5

Testcase #1610.408 ms1 MB + 408 KBAcceptedScore: 5

Testcase #1732.724 ms1 MB + 640 KBAcceptedScore: 5

Testcase #1836.954 ms1 MB + 608 KBAcceptedScore: 5

Testcase #1936.853 ms1 MB + 604 KBAcceptedScore: 5

Testcase #2038.044 ms1 MB + 604 KBAcceptedScore: 5


Judge Duck Online | 评测鸭在线
Server Time: 2026-09-21 05:29:46 | Loaded in 1 ms | Server Status
个人娱乐项目,仅供学习交流使用 | 捐赠