제출 #525344

#제출 시각아이디문제언어결과실행 시간메모리
52534479brueMountains and Valleys (CCO20_day1problem3)C++14
3 / 25
7005 ms82348 KiB
#include <bits/stdc++.h>

using namespace std;

typedef long long ll;

int n, m;
int dist[22][22];

int DP[1048576][20];

int main(){
    scanf("%d %d", &n, &m);
    for(int i=0; i<=n; i++){
        for(int j=0; j<=n; j++){
            dist[i][j] = 1e9;
        }
    }

    for(int i=1; i<=m; i++){
        int x, y, c;
        scanf("%d %d %d", &x, &y, &c);
        dist[x][y] = dist[y][x] = c;
    }

    for(int k=0; k<n; k++){
        for(int i=0; i<n; i++){
            for(int j=0; j<n; j++){
                dist[i][j] = min(dist[i][j], dist[i][k] + dist[k][j]);
            }
        }
    }

    for(int i=0; i<(1<<n); i++) for(int j=0; j<=n; j++) DP[i][j] = 1e9;
    for(int i=0; i<n; i++) DP[(1<<i)][i] = 0;

    for(int d=1; d<(1<<n); d++){
        for(int i=0; i<n; i++){
            if((d>>i)&1){
//                printf("%d %d: %d\n", d, i, DP[d][i]);
                for(int j=0; j<n; j++){
                    DP[(d|(1<<j))][j] = min(DP[(d|(1<<j))][j], DP[d][i] + dist[i][j]);
                }
            }
        }
    }

    int ans = 1e9;
    for(int i=0; i<n; i++) ans = min(ans, DP[(1<<n)-1][i]);

    printf("%d", ans);
}

컴파일 시 표준 에러 (stderr) 메시지

Main.cpp: In function 'int main()':
Main.cpp:13:10: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   13 |     scanf("%d %d", &n, &m);
      |     ~~~~~^~~~~~~~~~~~~~~~~
Main.cpp:22:14: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   22 |         scanf("%d %d %d", &x, &y, &c);
      |         ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...