Advertisement
Guest User

Untitled

a guest
Apr 19th, 2019
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.53 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. #define fi first
  4. #define se second
  5. #define mp make_pair
  6. #define pb push_back
  7. #define ll long long
  8. #define ii pair<int, int>
  9. #define vi vector<int>
  10. #define ld long double
  11. #define vii vector<ii>
  12. #define vll vector<ll>
  13. #define maxn 12
  14. #define INF 100000000
  15.  
  16. int unset(int i, int mask){return ~(1<<i) & mask;}
  17. int zet(int i, int mask){return (1<<i) | mask;}
  18. int get(int i, int mask){return ((1<<i) & mask);}
  19.  
  20. template<typename T>
  21. void trace(T a){ cout << a << '\n';}
  22. template<typename T, typename... Args>
  23. void trace(T a, Args ...args){ cout << a << ' '; trace(args...);}
  24.  
  25. int n,m;
  26. int dp[maxn][1<<maxn];
  27. int g[maxn][maxn];
  28.  
  29. int solve(int x, int mask){
  30. if(!get(x,mask)) return INF;
  31.  
  32. if(dp[x][mask] != INF) return dp[x][mask];
  33.  
  34. // dp[x][mask]--;
  35.  
  36. for(int i = 0; i < n; i++){
  37. if(i == x) continue;
  38.  
  39. dp[x][mask] = min(dp[x][mask],
  40. solve(i, unset(x,mask)) + g[x][i]);
  41. }
  42. return dp[x][mask];
  43. }
  44.  
  45. int main(){
  46. cin >> n >> m;
  47. int x,y,z;
  48.  
  49. for(int i = 0; i < n; i++)
  50. for(int j = 0; j < n; j++)
  51. g[i][j] = INF;
  52.  
  53. for(int i = 0; i < m; i++){
  54. cin >> x >> y >> z;
  55. x--, y--;
  56. g[x][y] = g[y][x] = z;
  57. }
  58.  
  59. for(int j = 0; j < n; j++)
  60. for(int i = 0; i < (1 << n); i++)
  61. if((1<<j) == i) dp[j][i] = 0;
  62. else dp[j][i] = INF;
  63.  
  64. // int mx = (1<<n)-1;
  65. // for(int i = 0; i < n; i++)
  66. // trace(i, get(i, mx), mx);
  67.  
  68. int ans = INF;
  69. for(int i = 0; i < n; i++)
  70. ans = min(ans, solve(i, (1<<n)-1));
  71. cout << ans << '\n';
  72. return 0;
  73. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement