Advertisement
Guest User

TLE

a guest
Dec 8th, 2019
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.03 KB | None | 0 0
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. #include<ext/pb_ds/assoc_container.hpp>
  4. #include<ext/pb_ds/tree_policy.hpp>
  5. using namespace __gnu_pbds;
  6. template<typename T>
  7. using ordered_set = tree<T, null_type,less<T>, rb_tree_tag,tree_order_statistics_node_update>;
  8. #define ll long long
  9. #define ff first
  10. #define ss second
  11.  
  12. int n, a[20][20], dp[20][262144];
  13.  
  14. int bitmask(int x, int y)
  15. {
  16. if(x == n)
  17. return 0;
  18.  
  19. if(dp[x][y])
  20. return dp[x][y];
  21.  
  22. for(int i = 0; i < n; i++)
  23. {
  24. if(y&(1 << i))
  25. continue;
  26. y = y|(1 << i);
  27. dp[x][y] = max(dp[x][y], a[x][i] + bitmask(x+1, y));
  28. y = y^(1<<i);
  29. }
  30.  
  31. return dp[x][y];
  32. }
  33.  
  34. int main()
  35. {
  36. int i, j, t, caseno = 0;
  37. cin >> t;
  38. while(t--)
  39. {
  40. cin >> n;
  41. memset(dp, 0, sizeof(dp));
  42. for(i = 0; i < n; i++)
  43. {
  44. for(j = 0; j < n; j++)
  45. cin >> a[i][j];
  46. }
  47. cout << "Case " << ++caseno << ": " << bitmask(0, 0) << endl;
  48. }
  49. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement