Submission #525344

#TimeUsernameProblemLanguageResultExecution timeMemory
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); }

Compilation message (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...